We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Friction in developing native providers is a blocker to growing beyond our 14 native providers in the registry today.
Create a multi-arch containerized provider build environment to satisfy the many dependencies required to build multi language providers.
Adding a containerized build image simplifies future enhancements including:
~/pulumi-provider-boilerplate ❯ docker build -t provider -f docker/Dockerfile . [+] Building 1.1s (14/14) FINISHED => [internal] load .dockerignore 0.0s => => transferring context: 653B 0.0s => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 4.91kB 0.0s => [internal] load metadata for docker.io/library/ubuntu:22.04 1.1s => [auth] library/ubuntu:pull token for registry-1.docker.io 0.0s => [internal] load build context 0.0s => => transferring context: 742B 0.0s => [1/8] FROM docker.io/library/ubuntu:22.04@sha256:9b8dec3bf938bc80fbe758d856e96fdfab5f56c39d44b0cff351e847bb1b01ea 0.0s => CACHED [2/8] ADD docker/rootfs / 0.0s => CACHED [3/8] RUN set -ex && apt-get update && apt-get install git curl gnupg python3 python3-pip dotnet-sdk-7.0 ca-certificates build-essential dotnet-runtime-7.0 && update-alternatives --install /usr/bin/python python /usr/bin/python3 1 0.0s => CACHED [4/8] RUN set -ex && export arch=$(uname -m | awk '{print ($1 == "x86_64") ? "amd64" : ($1 == "aarch64" ? "arm64" : "unknown")}') && export goversion="$(curl -s https://go.dev/dl/?mode=json | awk -F'[":go]' '/ "version"/{print $8}' | head -n1)" 0.0s => CACHED [5/8] RUN set -ex && export NODE_MAJOR=20 && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.co 0.0s => CACHED [6/8] RUN set -ex && export arch=$(uname -m | awk '{print ($1 == "x86_64") ? "x64" : ($1 == "aarch64" ? "arm64" : "unknown")}') && export urlPulumiRelease="https://api.github.com/repos/pulumi/pulumi/releases/latest" && export urlPulumiVersion=$(curl -s ${ur 0.0s => CACHED [7/8] RUN set -ex && export arch=$(uname -m | awk '{print ($1 == "x86_64") ? "amd64" : ($1 == "aarch64" ? "arm64" : "unknown")}') && export urlPulumiRelease="https://api.github.com/repos/pulumi/pulumictl/releases/latest" && export urlPulumiVersion=$(curl -s 0.0s => CACHED [8/8] WORKDIR /provider 0.0s => exporting to image 0.0s => => exporting layers 0.0s => => writing image sha256:2375457dd3a19fbf32aa59226bfae190a621c4b15fa5c48fed8c659f14e6c7e9 0.0s => => naming to docker.io/library/provider:latest 0.0s ~/pulumi-provider-boilerplate ❯ docker run -it --rm -v $PWD:/provider provider (cd provider && go build -o /provider/bin/pulumi-resource-xyz -ldflags "-X github.com/pulumi/pulumi-xyz/provider.Version=0.0.1-alpha.1697065379+97813b07.dirty" github.com/pulumi/pulumi-xyz/provider/cmd/pulumi-resource-xyz) go: downloading github.com/pulumi/pulumi-go-provider v0.11.1 go: downloading github.com/pulumi/pulumi/sdk/v3 v3.79.0 go: downloading github.com/hashicorp/go-multierror v1.1.1 go: downloading github.com/pulumi/pulumi/pkg/v3 v3.79.0 go: downloading google.golang.org/grpc v1.57.0 go: downloading google.golang.org/protobuf v1.31.0 go: downloading github.com/hashicorp/errwrap v1.1.0 go: downloading github.com/golang/protobuf v1.5.3 go: downloading github.com/pkg/errors v0.9.1 go: downloading github.com/blang/semver v3.5.1+incompatible go: downloading golang.org/x/net v0.14.0 go: downloading lukechampine.com/frand v1.4.2 go: downloading github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 go: downloading github.com/hashicorp/hcl/v2 v2.18.0 go: downloading github.com/opentracing/opentracing-go v1.2.0 go: downloading github.com/rivo/uniseg v0.4.4 go: downloading github.com/spf13/cobra v1.7.0 go: downloading github.com/uber/jaeger-client-go v2.30.0+incompatible go: downloading golang.org/x/term v0.11.0 go: downloading sourcegraph.com/sourcegraph/appdash v0.0.0-20211028080628-e2786a622600 go: downloading github.com/golang/glog v1.1.2 go: downloading github.com/pkg/term v1.1.0 go: downloading google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d go: downloading github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da go: downloading gopkg.in/yaml.v3 v3.0.1 go: downloading golang.org/x/crypto v0.12.0 go: downloading github.com/cheggaaa/pb v1.0.29 go: downloading github.com/djherbis/times v1.5.0 go: downloading github.com/go-git/go-git/v5 v5.8.1 go: downloading github.com/rogpeppe/go-internal v1.11.0 go: downloading github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 go: downloading github.com/texttheater/golang-levenshtein v1.0.1 go: downloading github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 go: downloading github.com/agext/levenshtein v1.2.3 go: downloading github.com/apparentlymart/go-textseg/v15 v15.0.0 go: downloading github.com/mitchellh/go-wordwrap v1.0.1 go: downloading github.com/zclconf/go-cty v1.14.0 go: downloading github.com/spf13/pflag v1.0.5 go: downloading golang.org/x/sys v0.11.0 go: downloading github.com/uber/jaeger-lib v2.4.1+incompatible go: downloading go.uber.org/atomic v1.11.0 go: downloading github.com/gogo/protobuf v1.3.2 go: downloading github.com/opentracing/basictracer-go v1.1.0 go: downloading github.com/mattn/go-runewidth v0.0.15 go: downloading github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 go: downloading github.com/kevinburke/ssh_config v1.2.0 go: downloading dario.cat/mergo v1.0.0 go: downloading github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 go: downloading github.com/go-git/go-billy/v5 v5.4.1 go: downloading github.com/sergi/go-diff v1.3.1 go: downloading github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da go: downloading github.com/skeema/knownhosts v1.2.0 go: downloading github.com/xanzy/ssh-agent v0.3.3 go: downloading github.com/pjbgf/sha1cd v0.3.0 go: downloading github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 go: downloading github.com/emirpasic/gods v1.18.1 go: downloading github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 go: downloading golang.org/x/text v0.12.0 go: downloading github.com/cloudflare/circl v1.3.3 go: downloading gopkg.in/warnings.v0 v0.1.2 go: downloading github.com/pgavlin/goldmark v1.1.33-0.20200616210433-b5eb04559386 go: downloading github.com/natefinch/atomic v1.0.1 go: downloading github.com/edsrzf/mmap-go v1.1.0 go: downloading github.com/segmentio/encoding v0.3.6 go: downloading github.com/segmentio/asm v1.2.0 rm -rf sdk/dotnet pulumi package gen-sdk /provider/bin/pulumi-resource-xyz --language dotnet cd sdk/dotnet/&& \ echo "0.0.1-alpha.1697065379+97813b07.dirty" >version.txt && \ dotnet build /p:Version=0.0.1-alpha.1697065379+97813b07.dirty Welcome to .NET 7.0! --------------------- SDK Version: 7.0.112 ---------------- Installed an ASP.NET Core HTTPS development certificate. To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). Learn about HTTPS: https://aka.ms/dotnet-https ---------------- Write your first app: https://aka.ms/dotnet-hello-world Find out what's new: https://aka.ms/dotnet-whats-new Explore documentation: https://aka.ms/dotnet-docs Report issues and find source on GitHub: https://github.com/dotnet/core Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli ----------------------------------------------------------------------------- MSBuild version 17.4.8+6918b863a for .NET Determining projects to restore... Restored /provider/sdk/dotnet/Pulumi.Xyz.csproj (in 3.81 sec). Pulumi.Xyz -> /provider/sdk/dotnet/bin/Debug/net6.0/Pulumi.Xyz.dll Successfully created package '/provider/sdk/dotnet/bin/Debug/Pulumi.Xyz.0.0.1-alpha.1697065379.nupkg'. Build succeeded. 0 Warning(s) 0 Error(s) Time Elapsed 00:00:06.02 rm -rf sdk/go pulumi package gen-sdk /provider/bin/pulumi-resource-xyz --language go rm -rf sdk/nodejs pulumi package gen-sdk /provider/bin/pulumi-resource-xyz --language nodejs cd sdk/nodejs/ && \ yarn install && \ yarn run tsc && \ cp ../../README.md ../../LICENSE package.json yarn.lock bin/ && \ sed -i.bak 's/${VERSION}/v0.0.1-alpha.1697065379+97813b07.dirty/g' bin/package.json && \ rm ./bin/package.json.bak yarn install v1.22.19 warning package.json: No license field info No lockfile found. warning @pulumi/xyz@${VERSION}: No license field [1/4] Resolving packages... warning @pulumi/pulumi > [email protected]: The functionality that this package provided is now in @npmcli/arborist warning @pulumi/pulumi > @opentelemetry/instrumentation > @opentelemetry/[email protected]: Please use @opentelemetry/api >= 1.3.0 warning @pulumi/pulumi > @opentelemetry/instrumentation-grpc > @opentelemetry/[email protected]: Please use @opentelemetry/api >= 1.3.0 warning @pulumi/pulumi > read-package-tree > [email protected]: This functionality has been moved to @npmcli/fs warning @pulumi/pulumi > read-package-tree > readdir-scoped-modules > [email protected]: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. [2/4] Fetching packages... [3/4] Linking dependencies... [4/4] Building fresh packages... success Saved lockfile. Done in 10.55s. yarn run v1.22.19 warning package.json: No license field $ /provider/sdk/nodejs/node_modules/.bin/tsc Done in 1.82s. rm -rf sdk/python pulumi package gen-sdk /provider/bin/pulumi-resource-xyz --language python cp README.md sdk/python/ cd sdk/python/ && \ python3 setup.py clean --all 2>/dev/null && \ rm -rf ./bin/ ../python.bin/ && cp -R . ../python.bin && mv ../python.bin ./bin && \ sed -i.bak -e 's/^VERSION = .*/VERSION = "0.0.1a1697065379+dirty"/g' -e 's/^PLUGIN_VERSION = .*/PLUGIN_VERSION = "0.0.1-alpha.1697065379+97813b07.dirty"/g' ./bin/setup.py && \ rm ./bin/setup.py.bak && \ cd ./bin && python3 setup.py build sdist running clean running build running build_py creating build creating build/lib creating build/lib/pulumi_xyz copying pulumi_xyz/provider.py -> build/lib/pulumi_xyz copying pulumi_xyz/__init__.py -> build/lib/pulumi_xyz copying pulumi_xyz/random.py -> build/lib/pulumi_xyz copying pulumi_xyz/_utilities.py -> build/lib/pulumi_xyz copying pulumi_xyz/py.typed -> build/lib/pulumi_xyz copying pulumi_xyz/pulumi-plugin.json -> build/lib/pulumi_xyz running sdist running egg_info creating pulumi_xyz.egg-info writing pulumi_xyz.egg-info/PKG-INFO writing dependency_links to pulumi_xyz.egg-info/dependency_links.txt writing requirements to pulumi_xyz.egg-info/requires.txt writing top-level names to pulumi_xyz.egg-info/top_level.txt writing manifest file 'pulumi_xyz.egg-info/SOURCES.txt' reading manifest file 'pulumi_xyz.egg-info/SOURCES.txt' writing manifest file 'pulumi_xyz.egg-info/SOURCES.txt' running check warning: check: missing required meta-data: url warning: check: missing meta-data: either (author and author_email) or (maintainer and maintainer_email) should be supplied creating pulumi_xyz-0.0.1a1697065379+dirty creating pulumi_xyz-0.0.1a1697065379+dirty/pulumi_xyz creating pulumi_xyz-0.0.1a1697065379+dirty/pulumi_xyz.egg-info copying files to pulumi_xyz-0.0.1a1697065379+dirty... copying README.md -> pulumi_xyz-0.0.1a1697065379+dirty copying setup.py -> pulumi_xyz-0.0.1a1697065379+dirty copying pulumi_xyz/__init__.py -> pulumi_xyz-0.0.1a1697065379+dirty/pulumi_xyz copying pulumi_xyz/_utilities.py -> pulumi_xyz-0.0.1a1697065379+dirty/pulumi_xyz copying pulumi_xyz/provider.py -> pulumi_xyz-0.0.1a1697065379+dirty/pulumi_xyz copying pulumi_xyz/pulumi-plugin.json -> pulumi_xyz-0.0.1a1697065379+dirty/pulumi_xyz copying pulumi_xyz/py.typed -> pulumi_xyz-0.0.1a1697065379+dirty/pulumi_xyz copying pulumi_xyz/random.py -> pulumi_xyz-0.0.1a1697065379+dirty/pulumi_xyz copying pulumi_xyz.egg-info/PKG-INFO -> pulumi_xyz-0.0.1a1697065379+dirty/pulumi_xyz.egg-info copying pulumi_xyz.egg-info/SOURCES.txt -> pulumi_xyz-0.0.1a1697065379+dirty/pulumi_xyz.egg-info copying pulumi_xyz.egg-info/dependency_links.txt -> pulumi_xyz-0.0.1a1697065379+dirty/pulumi_xyz.egg-info copying pulumi_xyz.egg-info/not-zip-safe -> pulumi_xyz-0.0.1a1697065379+dirty/pulumi_xyz.egg-info copying pulumi_xyz.egg-info/requires.txt -> pulumi_xyz-0.0.1a1697065379+dirty/pulumi_xyz.egg-info copying pulumi_xyz.egg-info/top_level.txt -> pulumi_xyz-0.0.1a1697065379+dirty/pulumi_xyz.egg-info Writing pulumi_xyz-0.0.1a1697065379+dirty/setup.cfg creating dist Creating tar archive removing 'pulumi_xyz-0.0.1a1697065379+dirty' (and everything under it)
The text was updated successfully, but these errors were encountered:
Successfully merging a pull request may close this issue.
Problem
Friction in developing native providers is a blocker to growing beyond our 14 native providers in the registry today.
Affected area/feature
Recommendation
Create a multi-arch containerized provider build environment to satisfy the many dependencies required to build multi language providers.
Future Opportunities
Adding a containerized build image simplifies future enhancements including:
Additional Information
LOGS: Click To Expand
The text was updated successfully, but these errors were encountered: