Embed sdk versions (#68)
Part of https://github.com/pulumi/ci-mgmt/issues/915 Install pulumi in standard way Use the same method as other providers to install the pulumi CLI. - Lock the version of the CLI and therefore codegen for consistent build results. - Ensure the local language plugins are using by disabling ambient plugins. Enable respect schema version Remove setting version at SDK build time --------- Co-authored-by: Bryce Lampe <bryce@pulumi.com>
This commit is contained in:
1
.pulumi.version
Normal file
1
.pulumi.version
Normal file
@@ -0,0 +1 @@
|
||||
3.116.1
|
||||
23
Makefile
23
Makefile
@@ -26,6 +26,8 @@ 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
|
||||
ensure:: tidy lint test_provider examples
|
||||
|
||||
@@ -83,6 +85,9 @@ examples/java: ${PULUMI} bin/${PROVIDER} ${WORKING_DIR}/examples/yaml/Pulumi.yam
|
||||
${PULUMI}: go.sum
|
||||
GOBIN=${WORKING_DIR}/bin go install github.com/pulumi/pulumi/pkg/v3/cmd/pulumi
|
||||
GOBIN=${WORKING_DIR}/bin go install github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3
|
||||
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
|
||||
GOBIN=${WORKING_DIR}/bin go install github.com/golangci/golangci-lint/cmd/golangci-lint
|
||||
@@ -125,7 +130,7 @@ devcontainer::
|
||||
cp -f .devcontainer/devcontainer.json .devcontainer.json
|
||||
|
||||
.PHONY: build
|
||||
build:: provider dotnet_sdk go_sdk nodejs_sdk python_sdk
|
||||
build:: provider sdk/dotnet sdk/go sdk/nodejs sdk/python sdk/java
|
||||
|
||||
# Required for the codegen action that runs in pulumi/pulumi
|
||||
only_build:: build
|
||||
@@ -192,7 +197,9 @@ go.sum: go.mod
|
||||
sdk: $(shell mkdir -p sdk)
|
||||
sdk: sdk/python sdk/nodejs sdk/java sdk/python sdk/go sdk/dotnet
|
||||
|
||||
sdk/python: PYPI_VERSION := $(shell pulumictl convert-version --language python -v "$(VERSION_GENERIC)")
|
||||
# Folders can't be used for up-to-date checks as they will be marked as up-to-date even if the step fails - leading to a broken state.
|
||||
.PHONY: sdk/*
|
||||
|
||||
sdk/python: TMPDIR := $(shell mktemp -d)
|
||||
sdk/python: $(PULUMI) bin/${PROVIDER}
|
||||
rm -rf sdk/python
|
||||
@@ -200,15 +207,12 @@ sdk/python: $(PULUMI) bin/${PROVIDER}
|
||||
cp README.md ${TMPDIR}/python/
|
||||
cd ${TMPDIR}/python/ && \
|
||||
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 && \
|
||||
./venv/bin/python -m pip install build && \
|
||||
cd ./bin && \
|
||||
../venv/bin/python -m build .
|
||||
mv -f ${TMPDIR}/python ${WORKING_DIR}/sdk/.
|
||||
|
||||
sdk/nodejs: NODE_VERSION := $(shell pulumictl convert-version --language javascript -v "$(VERSION_GENERIC)")
|
||||
sdk/nodejs: TMPDIR := $(shell mktemp -d)
|
||||
sdk/nodejs: $(PULUMI) bin/${PROVIDER}
|
||||
rm -rf sdk/nodejs
|
||||
@@ -217,9 +221,7 @@ sdk/nodejs: $(PULUMI) bin/${PROVIDER}
|
||||
cd ${TMPDIR}/nodejs/ && \
|
||||
yarn install && \
|
||||
yarn run tsc && \
|
||||
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
|
||||
cp README.md LICENSE package.json yarn.lock bin/
|
||||
mv -f ${TMPDIR}/nodejs ${WORKING_DIR}/sdk/.
|
||||
|
||||
sdk/go: TMPDIR := $(shell mktemp -d)
|
||||
@@ -233,14 +235,13 @@ sdk/go: $(PULUMI) bin/${PROVIDER}
|
||||
go mod tidy
|
||||
mv -f ${TMPDIR}/go ${WORKING_DIR}/sdk/go
|
||||
|
||||
sdk/dotnet: DOTNET_VERSION := $(shell pulumictl convert-version --language dotnet -v "$(VERSION_GENERIC)")
|
||||
sdk/dotnet: TMPDIR := $(shell mktemp -d)
|
||||
sdk/dotnet: $(PULUMI) bin/${PROVIDER}
|
||||
rm -rf sdk/dotnet
|
||||
$(PULUMI) package gen-sdk bin/${PROVIDER} --language dotnet -o ${TMPDIR}
|
||||
cd ${TMPDIR}/dotnet/ && \
|
||||
echo "$(DOTNET_VERSION)" > version.txt && \
|
||||
dotnet build /p:Version=${DOTNET_VERSION}
|
||||
echo "$(VERSION_GENERIC)" > version.txt && \
|
||||
dotnet build
|
||||
mv -f ${TMPDIR}/dotnet ${WORKING_DIR}/sdk/.
|
||||
|
||||
sdk/java: PACKAGE_VERSION := $(shell pulumictl convert-version --language generic -v "$(VERSION_GENERIC)")
|
||||
|
||||
204
bin/pulumi-language-python-exec
Executable file
204
bin/pulumi-language-python-exec
Executable file
@@ -0,0 +1,204 @@
|
||||
#!/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)
|
||||
56
go.mod
56
go.mod
@@ -15,11 +15,15 @@ require (
|
||||
github.com/muesli/reflow v0.3.0
|
||||
github.com/otiai10/copy v1.14.0
|
||||
github.com/pulumi/providertest v0.0.12
|
||||
github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet v0.0.0-20240429090326-810475295195
|
||||
github.com/pulumi/pulumi-go-provider v0.16.1-0.20240426163030-72606b1e6fb7
|
||||
github.com/pulumi/pulumi-java/pkg v0.10.0
|
||||
github.com/pulumi/pulumi/pkg/v3 v3.113.3
|
||||
github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3 v3.0.0-20240415162817-44c8de53d5d2
|
||||
github.com/pulumi/pulumi/sdk/v3 v3.113.3
|
||||
github.com/pulumi/pulumi-java/pkg v0.11.0
|
||||
github.com/pulumi/pulumi-yaml v1.7.0
|
||||
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/sirupsen/logrus v1.9.3
|
||||
github.com/spf13/afero v1.11.0
|
||||
@@ -27,7 +31,7 @@ require (
|
||||
github.com/theupdateframework/notary v0.7.0
|
||||
github.com/tonistiigi/fsutil v0.0.0-20240301111122-7525a1af2bb5
|
||||
go.uber.org/mock v0.3.0
|
||||
golang.org/x/crypto v0.21.0
|
||||
golang.org/x/crypto v0.23.0
|
||||
google.golang.org/protobuf v1.33.0
|
||||
gopkg.in/yaml.v3 v3.0.1
|
||||
)
|
||||
@@ -68,7 +72,7 @@ require (
|
||||
github.com/Microsoft/go-winio v0.6.1 // indirect
|
||||
github.com/Microsoft/hcsshim v0.11.4 // indirect
|
||||
github.com/OpenPeeDeeP/depguard/v2 v2.2.0 // indirect
|
||||
github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 // indirect
|
||||
github.com/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/alecthomas/chroma v0.10.0 // indirect
|
||||
@@ -78,8 +82,6 @@ require (
|
||||
github.com/alingse/asasalint v0.0.11 // indirect
|
||||
github.com/apparentlymart/go-cidr v1.1.0 // indirect
|
||||
github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect
|
||||
github.com/armon/go-metrics v0.4.1 // indirect
|
||||
github.com/armon/go-radix v1.0.0 // indirect
|
||||
github.com/ashanbrown/forbidigo v1.6.0 // indirect
|
||||
github.com/ashanbrown/makezero v1.1.1 // indirect
|
||||
github.com/atotto/clipboard v0.1.4 // indirect
|
||||
@@ -169,7 +171,8 @@ require (
|
||||
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/go-billy/v5 v5.5.0 // indirect
|
||||
github.com/go-git/go-git/v5 v5.11.0 // indirect
|
||||
github.com/go-git/go-git/v5 v5.12.0 // indirect
|
||||
github.com/go-jose/go-jose/v3 v3.0.3 // indirect
|
||||
github.com/go-logr/logr v1.4.1 // indirect
|
||||
github.com/go-logr/stdr v1.2.2 // indirect
|
||||
github.com/go-ole/go-ole v1.2.6 // indirect
|
||||
@@ -194,7 +197,6 @@ require (
|
||||
github.com/golang/glog v1.2.0 // indirect
|
||||
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
||||
github.com/golang/protobuf v1.5.4 // indirect
|
||||
github.com/golang/snappy v0.0.4 // indirect
|
||||
github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a // indirect
|
||||
github.com/golangci/gofmt v0.0.0-20231018234816-f50ced29576e // indirect
|
||||
github.com/golangci/misspell v0.4.1 // indirect
|
||||
@@ -227,23 +229,16 @@ require (
|
||||
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-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-plugin v1.6.0 // indirect
|
||||
github.com/hashicorp/go-retryablehttp v0.7.5 // indirect
|
||||
github.com/hashicorp/go-rootcerts v1.0.2 // indirect
|
||||
github.com/hashicorp/go-secure-stdlib/mlock v0.1.2 // indirect
|
||||
github.com/hashicorp/go-secure-stdlib/parseutil v0.1.7 // indirect
|
||||
github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 // indirect
|
||||
github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect
|
||||
github.com/hashicorp/go-sockaddr v1.0.2 // indirect
|
||||
github.com/hashicorp/go-uuid v1.0.3 // indirect
|
||||
github.com/hashicorp/go-sockaddr v1.0.6 // 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/v2 v2.19.1 // 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/hashicorp/vault/api v1.12.0 // indirect
|
||||
github.com/hexops/gotextdiff v1.0.3 // indirect
|
||||
github.com/iancoleman/strcase v0.2.0 // indirect
|
||||
github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd // indirect
|
||||
@@ -294,7 +289,6 @@ require (
|
||||
github.com/mitchellh/copystructure v1.2.0 // indirect
|
||||
github.com/mitchellh/go-homedir v1.1.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/mapstructure v1.5.0 // indirect
|
||||
github.com/mitchellh/reflectwalk v1.0.2 // indirect
|
||||
@@ -323,7 +317,6 @@ require (
|
||||
github.com/nishanths/predeclared v0.2.2 // 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/opencontainers/go-digest v1.0.0 // indirect
|
||||
github.com/opencontainers/image-spec v1.1.0-rc5 // indirect
|
||||
@@ -336,7 +329,6 @@ require (
|
||||
github.com/pgavlin/fx v0.1.6 // indirect
|
||||
github.com/pgavlin/goldmark v1.1.33-0.20200616210433-b5eb04559386 // indirect
|
||||
github.com/pgavlin/text v0.0.0-20230428184845-84c285f11d2f // indirect
|
||||
github.com/pierrec/lz4 v2.6.1+incompatible // indirect
|
||||
github.com/pjbgf/sha1cd v0.3.0 // indirect
|
||||
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
|
||||
github.com/pkg/errors v0.9.1 // indirect
|
||||
@@ -350,7 +342,6 @@ require (
|
||||
github.com/prometheus/procfs v0.12.0 // indirect
|
||||
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // 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/gogrep v0.5.0 // indirect
|
||||
github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 // indirect
|
||||
@@ -370,7 +361,7 @@ require (
|
||||
github.com/securego/gosec/v2 v2.19.0 // indirect
|
||||
github.com/segmentio/asm v1.1.3 // indirect
|
||||
github.com/segmentio/encoding v0.3.5 // indirect
|
||||
github.com/sergi/go-diff v1.3.1 // indirect
|
||||
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect
|
||||
github.com/serialx/hashring v0.0.0-20200727003509-22c0c7ab6b1b // indirect
|
||||
github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c // indirect
|
||||
github.com/shibumi/go-pathspec v1.3.0 // indirect
|
||||
@@ -380,7 +371,7 @@ require (
|
||||
github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546 // indirect
|
||||
github.com/sivchari/containedctx v1.0.3 // indirect
|
||||
github.com/sivchari/tenv v1.7.1 // indirect
|
||||
github.com/skeema/knownhosts v1.2.1 // indirect
|
||||
github.com/skeema/knownhosts v1.2.2 // indirect
|
||||
github.com/sonatard/noctx v0.0.2 // indirect
|
||||
github.com/sourcegraph/appdash-data v0.0.0-20151005221446-73f23eafcf67 // indirect
|
||||
github.com/sourcegraph/go-diff v0.7.0 // indirect
|
||||
@@ -450,16 +441,16 @@ require (
|
||||
go.uber.org/multierr v1.11.0 // indirect
|
||||
go.uber.org/zap v1.27.0 // indirect
|
||||
gocloud.dev v0.37.0 // indirect
|
||||
gocloud.dev/secrets/hashivault v0.28.0 // indirect
|
||||
gocloud.dev/secrets/hashivault v0.37.0 // indirect
|
||||
golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 // indirect
|
||||
golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f // indirect
|
||||
golang.org/x/mod v0.16.0 // indirect
|
||||
golang.org/x/net v0.23.0 // indirect
|
||||
golang.org/x/net v0.25.0 // indirect
|
||||
golang.org/x/oauth2 v0.18.0 // indirect
|
||||
golang.org/x/sync v0.6.0 // indirect
|
||||
golang.org/x/sys v0.18.0 // indirect
|
||||
golang.org/x/term v0.18.0 // indirect
|
||||
golang.org/x/text v0.14.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/time v0.5.0 // indirect
|
||||
golang.org/x/tools v0.19.0 // indirect
|
||||
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect
|
||||
@@ -468,10 +459,9 @@ require (
|
||||
google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7 // indirect
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20240311173647-c811ad7063a7 // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 // indirect
|
||||
google.golang.org/grpc v1.62.1 // indirect
|
||||
google.golang.org/grpc v1.63.2 // indirect
|
||||
gopkg.in/inf.v0 v0.9.1 // indirect
|
||||
gopkg.in/ini.v1 v1.67.0 // indirect
|
||||
gopkg.in/square/go-jose.v2 v2.6.0 // indirect
|
||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
|
||||
gopkg.in/warnings.v0 v0.1.2 // indirect
|
||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "docker-build",
|
||||
"displayName": "docker-build",
|
||||
"version": "0.0.2-alpha.1714063884+13fb5b61",
|
||||
"version": "1.0.0-alpha.0+dev",
|
||||
"description": "A Pulumi provider for building modern Docker images with buildx and BuildKit.",
|
||||
"keywords": [
|
||||
"docker",
|
||||
@@ -20,13 +20,15 @@
|
||||
"csharp": {
|
||||
"packageReferences": {
|
||||
"Pulumi": "3.*"
|
||||
}
|
||||
},
|
||||
"respectSchemaVersion": true
|
||||
},
|
||||
"go": {
|
||||
"importBasePath": "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild",
|
||||
"packageImportAliases": {
|
||||
"github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild": "dockerbuild"
|
||||
},
|
||||
"respectSchemaVersion": true,
|
||||
"generics": "side-by-side"
|
||||
},
|
||||
"java": {
|
||||
@@ -43,12 +45,14 @@
|
||||
"nodejs": {
|
||||
"dependencies": {
|
||||
"@pulumi/pulumi": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"respectSchemaVersion": true
|
||||
},
|
||||
"python": {
|
||||
"requires": {
|
||||
"pulumi": "\u003e=3.0.0,\u003c4.0.0"
|
||||
},
|
||||
"respectSchemaVersion": true,
|
||||
"pyproject": {
|
||||
"enabled": true
|
||||
}
|
||||
|
||||
@@ -79,13 +79,15 @@ func NewBuildxProvider() provider.Provider {
|
||||
LanguageMap: map[string]any{
|
||||
"go": gogen.GoPackageInfo{
|
||||
// GenerateResourceContainerTypes: true,
|
||||
Generics: gogen.GenericsSettingSideBySide,
|
||||
RespectSchemaVersion: true,
|
||||
Generics: gogen.GenericsSettingSideBySide,
|
||||
PackageImportAliases: map[string]string{
|
||||
"github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild": "dockerbuild",
|
||||
},
|
||||
ImportBasePath: "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild",
|
||||
},
|
||||
"csharp": csgen.CSharpPackageInfo{
|
||||
RespectSchemaVersion: true,
|
||||
PackageReferences: map[string]string{
|
||||
"Pulumi": "3.*",
|
||||
},
|
||||
@@ -100,11 +102,13 @@ func NewBuildxProvider() provider.Provider {
|
||||
},
|
||||
},
|
||||
"nodejs": tsgen.NodePackageInfo{
|
||||
RespectSchemaVersion: true,
|
||||
Dependencies: map[string]string{
|
||||
"@pulumi/pulumi": "^3.0.0",
|
||||
},
|
||||
},
|
||||
"python": pygen.PackageInfo{
|
||||
RespectSchemaVersion: true,
|
||||
PyProject: struct {
|
||||
Enabled bool `json:"enabled,omitempty"`
|
||||
}{Enabled: true},
|
||||
|
||||
1
sdk/dotnet/Pulumi.DockerBuild.csproj
generated
1
sdk/dotnet/Pulumi.DockerBuild.csproj
generated
@@ -9,6 +9,7 @@
|
||||
<PackageProjectUrl>https://pulumi.com</PackageProjectUrl>
|
||||
<RepositoryUrl>https://github.com/pulumi/pulumi-docker-build</RepositoryUrl>
|
||||
<PackageIcon>logo.png</PackageIcon>
|
||||
<Version>1.0.0-alpha.0+dev</Version>
|
||||
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
|
||||
3
sdk/dotnet/pulumi-plugin.json
generated
3
sdk/dotnet/pulumi-plugin.json
generated
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"resource": true,
|
||||
"name": "docker-build"
|
||||
"name": "docker-build",
|
||||
"version": "1.0.0-alpha.0+dev"
|
||||
}
|
||||
|
||||
25
sdk/go/dockerbuild/go.mod
generated
25
sdk/go/dockerbuild/go.mod
generated
@@ -4,13 +4,13 @@ go 1.21.7
|
||||
|
||||
require (
|
||||
github.com/blang/semver v3.5.1+incompatible
|
||||
github.com/pulumi/pulumi/sdk/v3 v3.113.3
|
||||
github.com/pulumi/pulumi/sdk/v3 v3.117.1-0.20240525040238-ee831fc5b644
|
||||
)
|
||||
|
||||
require (
|
||||
dario.cat/mergo v1.0.0 // indirect
|
||||
github.com/Microsoft/go-winio v0.6.1 // indirect
|
||||
github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 // 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
|
||||
@@ -29,11 +29,10 @@ require (
|
||||
github.com/frankban/quicktest v1.14.6 // 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.11.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/golang/protobuf v1.5.4 // 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
|
||||
@@ -66,12 +65,12 @@ require (
|
||||
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.1 // indirect
|
||||
github.com/skeema/knownhosts v1.2.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/stretchr/testify v1.9.0 // indirect
|
||||
github.com/stretchr/objx v0.5.2 // indirect
|
||||
github.com/texttheater/golang-levenshtein v1.0.1 // indirect
|
||||
github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 // indirect
|
||||
github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect
|
||||
@@ -79,17 +78,17 @@ require (
|
||||
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.21.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.23.0 // indirect
|
||||
golang.org/x/net v0.25.0 // indirect
|
||||
golang.org/x/sync v0.6.0 // indirect
|
||||
golang.org/x/sys v0.18.0 // indirect
|
||||
golang.org/x/term v0.18.0 // indirect
|
||||
golang.org/x/text v0.14.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.62.1 // 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
|
||||
|
||||
48
sdk/go/dockerbuild/go.sum
generated
48
sdk/go/dockerbuild/go.sum
generated
@@ -5,8 +5,8 @@ github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXY
|
||||
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 v0.0.0-20230828082145-3c4c8a2d2371 h1:kkhsdkhsCvIsutKu5zLMgWtgh9YxGCNAw8Ad8hjwfYg=
|
||||
github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0=
|
||||
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=
|
||||
@@ -55,16 +55,16 @@ 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.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY=
|
||||
github.com/gliderlabs/ssh v0.3.5/go.mod h1:8XB4KraRrX39qHhT6yxPsHedjA08I/uBVwj4xC+/+z4=
|
||||
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.11.0 h1:XIZc1p+8YzypNr34itUfSvYJcv+eYdTnTvOZ2vD3cA4=
|
||||
github.com/go-git/go-git/v5 v5.11.0/go.mod h1:6GFcX2P3NM7FPBfpePbpLd21XxsgdAt+lKqXmCUiUCY=
|
||||
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=
|
||||
@@ -154,8 +154,8 @@ github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435
|
||||
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/sdk/v3 v3.113.3 h1:ySNxoL+O9TtS9WiPa9SWu6mthJryryRzP0kyYaQlNaU=
|
||||
github.com/pulumi/pulumi/sdk/v3 v3.113.3/go.mod h1:JWSzKBoHd8rlncC1DhXLf7YdV+Bk/Qf+hSZOOQh0WwQ=
|
||||
github.com/pulumi/pulumi/sdk/v3 v3.117.1-0.20240525040238-ee831fc5b644 h1:bnW+nsI2xj6F5IRcCqpxd+XO7jfj5UFOWaJ5/h3rfZc=
|
||||
github.com/pulumi/pulumi/sdk/v3 v3.117.1-0.20240525040238-ee831fc5b644/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=
|
||||
@@ -168,11 +168,11 @@ github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 h1:OkMGxebDj
|
||||
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.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8=
|
||||
github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I=
|
||||
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.1 h1:SHWdIUa82uGZz+F+47k8SY4QhhI291cXCpopT1lK2AQ=
|
||||
github.com/skeema/knownhosts v1.2.1/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo=
|
||||
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=
|
||||
@@ -213,8 +213,8 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y
|
||||
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.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA=
|
||||
golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
|
||||
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=
|
||||
@@ -236,8 +236,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug
|
||||
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.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs=
|
||||
golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
|
||||
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=
|
||||
@@ -266,15 +266,15 @@ 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.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
|
||||
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
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.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8=
|
||||
golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58=
|
||||
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=
|
||||
@@ -282,8 +282,8 @@ 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.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
|
||||
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
||||
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=
|
||||
@@ -300,8 +300,8 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T
|
||||
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.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk=
|
||||
google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE=
|
||||
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=
|
||||
|
||||
4
sdk/go/dockerbuild/internal/pulumiUtilities.go
generated
4
sdk/go/dockerbuild/internal/pulumiUtilities.go
generated
@@ -165,7 +165,7 @@ func callPlainInner(
|
||||
func PkgResourceDefaultOpts(opts []pulumi.ResourceOption) []pulumi.ResourceOption {
|
||||
defaults := []pulumi.ResourceOption{}
|
||||
|
||||
version := SdkVersion
|
||||
version := semver.MustParse("1.0.0-alpha.0+dev")
|
||||
if !version.Equals(semver.Version{}) {
|
||||
defaults = append(defaults, pulumi.Version(version.String()))
|
||||
}
|
||||
@@ -176,7 +176,7 @@ func PkgResourceDefaultOpts(opts []pulumi.ResourceOption) []pulumi.ResourceOptio
|
||||
func PkgInvokeDefaultOpts(opts []pulumi.InvokeOption) []pulumi.InvokeOption {
|
||||
defaults := []pulumi.InvokeOption{}
|
||||
|
||||
version := SdkVersion
|
||||
version := semver.MustParse("1.0.0-alpha.0+dev")
|
||||
if !version.Equals(semver.Version{}) {
|
||||
defaults = append(defaults, pulumi.Version(version.String()))
|
||||
}
|
||||
|
||||
3
sdk/go/dockerbuild/pulumi-plugin.json
generated
3
sdk/go/dockerbuild/pulumi-plugin.json
generated
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"resource": true,
|
||||
"name": "docker-build"
|
||||
"name": "docker-build",
|
||||
"version": "1.0.0-alpha.0+dev"
|
||||
}
|
||||
|
||||
170
sdk/java/src/main/java/com/pulumi/dockerbuild/Image.java
generated
170
sdk/java/src/main/java/com/pulumi/dockerbuild/Image.java
generated
@@ -130,7 +130,8 @@ import javax.annotation.Nullable;
|
||||
*
|
||||
* ## Example Usage
|
||||
* ### Push to AWS ECR with caching
|
||||
* ```java
|
||||
* <pre>
|
||||
* {@code
|
||||
* package generated_program;
|
||||
*
|
||||
* import com.pulumi.Context;
|
||||
@@ -160,43 +161,45 @@ import javax.annotation.Nullable;
|
||||
* }
|
||||
*
|
||||
* public static void stack(Context ctx) {
|
||||
* var ecrRepository = new Repository("ecrRepository");
|
||||
* var ecrRepository = new Repository("ecrRepository");
|
||||
*
|
||||
* final var authToken = EcrFunctions.getAuthorizationToken(GetAuthorizationTokenArgs.builder()
|
||||
* .registryId(ecrRepository.registryId())
|
||||
* .build());
|
||||
*
|
||||
* var myImage = new Image("myImage", ImageArgs.builder()
|
||||
* var myImage = new Image("myImage", ImageArgs.builder()
|
||||
* .cacheFrom(CacheFromArgs.builder()
|
||||
* .registry(CacheFromRegistryArgs.builder()
|
||||
* .ref(ecrRepository.repositoryUrl().applyValue(repositoryUrl -> String.format("%s:cache", repositoryUrl)))
|
||||
* .ref(ecrRepository.repositoryUrl().applyValue(repositoryUrl -> String.format("%s:cache", repositoryUrl)))
|
||||
* .build())
|
||||
* .build())
|
||||
* .cacheTo(CacheToArgs.builder()
|
||||
* .registry(CacheToRegistryArgs.builder()
|
||||
* .imageManifest(true)
|
||||
* .ociMediaTypes(true)
|
||||
* .ref(ecrRepository.repositoryUrl().applyValue(repositoryUrl -> String.format("%s:cache", repositoryUrl)))
|
||||
* .ref(ecrRepository.repositoryUrl().applyValue(repositoryUrl -> String.format("%s:cache", repositoryUrl)))
|
||||
* .build())
|
||||
* .build())
|
||||
* .context(BuildContextArgs.builder()
|
||||
* .location("./app")
|
||||
* .location("./app")
|
||||
* .build())
|
||||
* .push(true)
|
||||
* .registries(RegistryArgs.builder()
|
||||
* .address(ecrRepository.repositoryUrl())
|
||||
* .password(authToken.applyValue(getAuthorizationTokenResult -> getAuthorizationTokenResult).applyValue(authToken -> authToken.applyValue(getAuthorizationTokenResult -> getAuthorizationTokenResult.password())))
|
||||
* .username(authToken.applyValue(getAuthorizationTokenResult -> getAuthorizationTokenResult).applyValue(authToken -> authToken.applyValue(getAuthorizationTokenResult -> getAuthorizationTokenResult.userName())))
|
||||
* .password(authToken.applyValue(getAuthorizationTokenResult -> getAuthorizationTokenResult).applyValue(authToken -> authToken.applyValue(getAuthorizationTokenResult -> getAuthorizationTokenResult.password())))
|
||||
* .username(authToken.applyValue(getAuthorizationTokenResult -> getAuthorizationTokenResult).applyValue(authToken -> authToken.applyValue(getAuthorizationTokenResult -> getAuthorizationTokenResult.userName())))
|
||||
* .build())
|
||||
* .tags(ecrRepository.repositoryUrl().applyValue(repositoryUrl -> String.format("%s:latest", repositoryUrl)))
|
||||
* .tags(ecrRepository.repositoryUrl().applyValue(repositoryUrl -> String.format("%s:latest", repositoryUrl)))
|
||||
* .build());
|
||||
*
|
||||
* ctx.export("ref", myImage.ref());
|
||||
* ctx.export("ref", myImage.ref());
|
||||
* }
|
||||
* }
|
||||
* ```
|
||||
* }
|
||||
* </pre>
|
||||
* ### Multi-platform image
|
||||
* ```java
|
||||
* <pre>
|
||||
* {@code
|
||||
* package generated_program;
|
||||
*
|
||||
* import com.pulumi.Context;
|
||||
@@ -218,21 +221,23 @@ import javax.annotation.Nullable;
|
||||
* }
|
||||
*
|
||||
* public static void stack(Context ctx) {
|
||||
* var image = new Image("image", ImageArgs.builder()
|
||||
* var image = new Image("image", ImageArgs.builder()
|
||||
* .context(BuildContextArgs.builder()
|
||||
* .location("app")
|
||||
* .location("app")
|
||||
* .build())
|
||||
* .platforms(
|
||||
* "plan9/amd64",
|
||||
* "plan9/386")
|
||||
* "plan9/amd64",
|
||||
* "plan9/386")
|
||||
* .push(false)
|
||||
* .build());
|
||||
*
|
||||
* }
|
||||
* }
|
||||
* ```
|
||||
* }
|
||||
* </pre>
|
||||
* ### Registry export
|
||||
* ```java
|
||||
* <pre>
|
||||
* {@code
|
||||
* package generated_program;
|
||||
*
|
||||
* import com.pulumi.Context;
|
||||
@@ -255,25 +260,27 @@ import javax.annotation.Nullable;
|
||||
* }
|
||||
*
|
||||
* public static void stack(Context ctx) {
|
||||
* var image = new Image("image", ImageArgs.builder()
|
||||
* var image = new Image("image", ImageArgs.builder()
|
||||
* .context(BuildContextArgs.builder()
|
||||
* .location("app")
|
||||
* .location("app")
|
||||
* .build())
|
||||
* .push(true)
|
||||
* .registries(RegistryArgs.builder()
|
||||
* .address("docker.io")
|
||||
* .address("docker.io")
|
||||
* .password(dockerHubPassword)
|
||||
* .username("pulumibot")
|
||||
* .username("pulumibot")
|
||||
* .build())
|
||||
* .tags("docker.io/pulumi/pulumi:3.107.0")
|
||||
* .tags("docker.io/pulumi/pulumi:3.107.0")
|
||||
* .build());
|
||||
*
|
||||
* ctx.export("ref", myImage.ref());
|
||||
* ctx.export("ref", myImage.ref());
|
||||
* }
|
||||
* }
|
||||
* ```
|
||||
* }
|
||||
* </pre>
|
||||
* ### Caching
|
||||
* ```java
|
||||
* <pre>
|
||||
* {@code
|
||||
* package generated_program;
|
||||
*
|
||||
* import com.pulumi.Context;
|
||||
@@ -299,29 +306,31 @@ import javax.annotation.Nullable;
|
||||
* }
|
||||
*
|
||||
* public static void stack(Context ctx) {
|
||||
* var image = new Image("image", ImageArgs.builder()
|
||||
* var image = new Image("image", ImageArgs.builder()
|
||||
* .cacheFrom(CacheFromArgs.builder()
|
||||
* .local(CacheFromLocalArgs.builder()
|
||||
* .src("tmp/cache")
|
||||
* .src("tmp/cache")
|
||||
* .build())
|
||||
* .build())
|
||||
* .cacheTo(CacheToArgs.builder()
|
||||
* .local(CacheToLocalArgs.builder()
|
||||
* .dest("tmp/cache")
|
||||
* .mode("max")
|
||||
* .dest("tmp/cache")
|
||||
* .mode("max")
|
||||
* .build())
|
||||
* .build())
|
||||
* .context(BuildContextArgs.builder()
|
||||
* .location("app")
|
||||
* .location("app")
|
||||
* .build())
|
||||
* .push(false)
|
||||
* .build());
|
||||
*
|
||||
* }
|
||||
* }
|
||||
* ```
|
||||
* }
|
||||
* </pre>
|
||||
* ### Docker Build Cloud
|
||||
* ```java
|
||||
* <pre>
|
||||
* {@code
|
||||
* package generated_program;
|
||||
*
|
||||
* import com.pulumi.Context;
|
||||
@@ -344,12 +353,12 @@ import javax.annotation.Nullable;
|
||||
* }
|
||||
*
|
||||
* public static void stack(Context ctx) {
|
||||
* var image = new Image("image", ImageArgs.builder()
|
||||
* var image = new Image("image", ImageArgs.builder()
|
||||
* .builder(BuilderConfigArgs.builder()
|
||||
* .name("cloud-builder-name")
|
||||
* .name("cloud-builder-name")
|
||||
* .build())
|
||||
* .context(BuildContextArgs.builder()
|
||||
* .location("app")
|
||||
* .location("app")
|
||||
* .build())
|
||||
* .exec(true)
|
||||
* .push(false)
|
||||
@@ -357,9 +366,11 @@ import javax.annotation.Nullable;
|
||||
*
|
||||
* }
|
||||
* }
|
||||
* ```
|
||||
* }
|
||||
* </pre>
|
||||
* ### Build arguments
|
||||
* ```java
|
||||
* <pre>
|
||||
* {@code
|
||||
* package generated_program;
|
||||
*
|
||||
* import com.pulumi.Context;
|
||||
@@ -381,19 +392,21 @@ import javax.annotation.Nullable;
|
||||
* }
|
||||
*
|
||||
* public static void stack(Context ctx) {
|
||||
* var image = new Image("image", ImageArgs.builder()
|
||||
* .buildArgs(Map.of("SET_ME_TO_TRUE", "true"))
|
||||
* var image = new Image("image", ImageArgs.builder()
|
||||
* .buildArgs(Map.of("SET_ME_TO_TRUE", "true"))
|
||||
* .context(BuildContextArgs.builder()
|
||||
* .location("app")
|
||||
* .location("app")
|
||||
* .build())
|
||||
* .push(false)
|
||||
* .build());
|
||||
*
|
||||
* }
|
||||
* }
|
||||
* ```
|
||||
* }
|
||||
* </pre>
|
||||
* ### Build target
|
||||
* ```java
|
||||
* <pre>
|
||||
* {@code
|
||||
* package generated_program;
|
||||
*
|
||||
* import com.pulumi.Context;
|
||||
@@ -415,19 +428,21 @@ import javax.annotation.Nullable;
|
||||
* }
|
||||
*
|
||||
* public static void stack(Context ctx) {
|
||||
* var image = new Image("image", ImageArgs.builder()
|
||||
* var image = new Image("image", ImageArgs.builder()
|
||||
* .context(BuildContextArgs.builder()
|
||||
* .location("app")
|
||||
* .location("app")
|
||||
* .build())
|
||||
* .push(false)
|
||||
* .target("build-me")
|
||||
* .target("build-me")
|
||||
* .build());
|
||||
*
|
||||
* }
|
||||
* }
|
||||
* ```
|
||||
* }
|
||||
* </pre>
|
||||
* ### Named contexts
|
||||
* ```java
|
||||
* <pre>
|
||||
* {@code
|
||||
* package generated_program;
|
||||
*
|
||||
* import com.pulumi.Context;
|
||||
@@ -449,19 +464,21 @@ import javax.annotation.Nullable;
|
||||
* }
|
||||
*
|
||||
* public static void stack(Context ctx) {
|
||||
* var image = new Image("image", ImageArgs.builder()
|
||||
* var image = new Image("image", ImageArgs.builder()
|
||||
* .context(BuildContextArgs.builder()
|
||||
* .location("app")
|
||||
* .named(Map.of("golang:latest", Map.of("location", "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984")))
|
||||
* .location("app")
|
||||
* .named(Map.of("golang:latest", Map.of("location", "docker-image://golang{@literal @}sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984")))
|
||||
* .build())
|
||||
* .push(false)
|
||||
* .build());
|
||||
*
|
||||
* }
|
||||
* }
|
||||
* ```
|
||||
* }
|
||||
* </pre>
|
||||
* ### Remote context
|
||||
* ```java
|
||||
* <pre>
|
||||
* {@code
|
||||
* package generated_program;
|
||||
*
|
||||
* import com.pulumi.Context;
|
||||
@@ -483,18 +500,20 @@ import javax.annotation.Nullable;
|
||||
* }
|
||||
*
|
||||
* public static void stack(Context ctx) {
|
||||
* var image = new Image("image", ImageArgs.builder()
|
||||
* var image = new Image("image", ImageArgs.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())
|
||||
* .push(false)
|
||||
* .build());
|
||||
*
|
||||
* }
|
||||
* }
|
||||
* ```
|
||||
* }
|
||||
* </pre>
|
||||
* ### Inline Dockerfile
|
||||
* ```java
|
||||
* <pre>
|
||||
* {@code
|
||||
* package generated_program;
|
||||
*
|
||||
* import com.pulumi.Context;
|
||||
@@ -517,24 +536,26 @@ import javax.annotation.Nullable;
|
||||
* }
|
||||
*
|
||||
* public static void stack(Context ctx) {
|
||||
* var image = new Image("image", ImageArgs.builder()
|
||||
* var image = new Image("image", ImageArgs.builder()
|
||||
* .context(BuildContextArgs.builder()
|
||||
* .location("app")
|
||||
* .location("app")
|
||||
* .build())
|
||||
* .dockerfile(DockerfileArgs.builder()
|
||||
* .inline("""
|
||||
* .inline("""
|
||||
* FROM busybox
|
||||
* COPY hello.c ./
|
||||
* """)
|
||||
* """)
|
||||
* .build())
|
||||
* .push(false)
|
||||
* .build());
|
||||
*
|
||||
* }
|
||||
* }
|
||||
* ```
|
||||
* }
|
||||
* </pre>
|
||||
* ### Remote context
|
||||
* ```java
|
||||
* <pre>
|
||||
* {@code
|
||||
* package generated_program;
|
||||
*
|
||||
* import com.pulumi.Context;
|
||||
@@ -557,21 +578,23 @@ import javax.annotation.Nullable;
|
||||
* }
|
||||
*
|
||||
* public static void stack(Context ctx) {
|
||||
* var image = new Image("image", ImageArgs.builder()
|
||||
* var image = new Image("image", ImageArgs.builder()
|
||||
* .context(BuildContextArgs.builder()
|
||||
* .location("https://github.com/docker-library/hello-world.git")
|
||||
* .location("https://github.com/docker-library/hello-world.git")
|
||||
* .build())
|
||||
* .dockerfile(DockerfileArgs.builder()
|
||||
* .location("app/Dockerfile")
|
||||
* .location("app/Dockerfile")
|
||||
* .build())
|
||||
* .push(false)
|
||||
* .build());
|
||||
*
|
||||
* }
|
||||
* }
|
||||
* ```
|
||||
* }
|
||||
* </pre>
|
||||
* ### Local export
|
||||
* ```java
|
||||
* <pre>
|
||||
* {@code
|
||||
* package generated_program;
|
||||
*
|
||||
* import com.pulumi.Context;
|
||||
@@ -595,9 +618,9 @@ import javax.annotation.Nullable;
|
||||
* }
|
||||
*
|
||||
* public static void stack(Context ctx) {
|
||||
* var image = new Image("image", ImageArgs.builder()
|
||||
* var image = new Image("image", ImageArgs.builder()
|
||||
* .context(BuildContextArgs.builder()
|
||||
* .location("app")
|
||||
* .location("app")
|
||||
* .build())
|
||||
* .exports(ExportArgs.builder()
|
||||
* .docker(ExportDockerArgs.builder()
|
||||
@@ -609,7 +632,8 @@ import javax.annotation.Nullable;
|
||||
*
|
||||
* }
|
||||
* }
|
||||
* ```
|
||||
* }
|
||||
* </pre>
|
||||
*
|
||||
*/
|
||||
@ResourceType(type="docker-build:index:Image")
|
||||
@@ -788,7 +812,7 @@ public class Image extends com.pulumi.resources.CustomResource {
|
||||
*
|
||||
* Empty if the image was not exported.
|
||||
*
|
||||
* Registry images can be referenced precisely as `<tag>@<digest>`. The
|
||||
* Registry images can be referenced precisely as `<tag>{@literal @}<digest>`. The
|
||||
* `ref` output provides one such reference as a convenience.
|
||||
*
|
||||
*/
|
||||
@@ -801,7 +825,7 @@ public class Image extends com.pulumi.resources.CustomResource {
|
||||
*
|
||||
* Empty if the image was not exported.
|
||||
*
|
||||
* Registry images can be referenced precisely as `<tag>@<digest>`. The
|
||||
* Registry images can be referenced precisely as `<tag>{@literal @}<digest>`. The
|
||||
* `ref` output provides one such reference as a convenience.
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -39,7 +39,8 @@ import javax.annotation.Nullable;
|
||||
*
|
||||
* ## Example Usage
|
||||
* ### Multi-platform registry caching
|
||||
* ```java
|
||||
* <pre>
|
||||
* {@code
|
||||
* package generated_program;
|
||||
*
|
||||
* import com.pulumi.Context;
|
||||
@@ -67,55 +68,56 @@ import javax.annotation.Nullable;
|
||||
* }
|
||||
*
|
||||
* public static void stack(Context ctx) {
|
||||
* var amd64 = new Image("amd64", ImageArgs.builder()
|
||||
* var amd64 = new Image("amd64", ImageArgs.builder()
|
||||
* .cacheFrom(CacheFromArgs.builder()
|
||||
* .registry(CacheFromRegistryArgs.builder()
|
||||
* .ref("docker.io/pulumi/pulumi:cache-amd64")
|
||||
* .ref("docker.io/pulumi/pulumi:cache-amd64")
|
||||
* .build())
|
||||
* .build())
|
||||
* .cacheTo(CacheToArgs.builder()
|
||||
* .registry(CacheToRegistryArgs.builder()
|
||||
* .mode("max")
|
||||
* .ref("docker.io/pulumi/pulumi:cache-amd64")
|
||||
* .mode("max")
|
||||
* .ref("docker.io/pulumi/pulumi:cache-amd64")
|
||||
* .build())
|
||||
* .build())
|
||||
* .context(BuildContextArgs.builder()
|
||||
* .location("app")
|
||||
* .location("app")
|
||||
* .build())
|
||||
* .platforms("linux/amd64")
|
||||
* .tags("docker.io/pulumi/pulumi:3.107.0-amd64")
|
||||
* .platforms("linux/amd64")
|
||||
* .tags("docker.io/pulumi/pulumi:3.107.0-amd64")
|
||||
* .build());
|
||||
*
|
||||
* var arm64 = new Image("arm64", ImageArgs.builder()
|
||||
* var arm64 = new Image("arm64", ImageArgs.builder()
|
||||
* .cacheFrom(CacheFromArgs.builder()
|
||||
* .registry(CacheFromRegistryArgs.builder()
|
||||
* .ref("docker.io/pulumi/pulumi:cache-arm64")
|
||||
* .ref("docker.io/pulumi/pulumi:cache-arm64")
|
||||
* .build())
|
||||
* .build())
|
||||
* .cacheTo(CacheToArgs.builder()
|
||||
* .registry(CacheToRegistryArgs.builder()
|
||||
* .mode("max")
|
||||
* .ref("docker.io/pulumi/pulumi:cache-arm64")
|
||||
* .mode("max")
|
||||
* .ref("docker.io/pulumi/pulumi:cache-arm64")
|
||||
* .build())
|
||||
* .build())
|
||||
* .context(BuildContextArgs.builder()
|
||||
* .location("app")
|
||||
* .location("app")
|
||||
* .build())
|
||||
* .platforms("linux/arm64")
|
||||
* .tags("docker.io/pulumi/pulumi:3.107.0-arm64")
|
||||
* .platforms("linux/arm64")
|
||||
* .tags("docker.io/pulumi/pulumi:3.107.0-arm64")
|
||||
* .build());
|
||||
*
|
||||
* var index = new Index("index", IndexArgs.builder()
|
||||
* var index = new Index("index", IndexArgs.builder()
|
||||
* .sources(
|
||||
* amd64.ref(),
|
||||
* arm64.ref())
|
||||
* .tag("docker.io/pulumi/pulumi:3.107.0")
|
||||
* .tag("docker.io/pulumi/pulumi:3.107.0")
|
||||
* .build());
|
||||
*
|
||||
* ctx.export("ref", index.ref());
|
||||
* ctx.export("ref", index.ref());
|
||||
* }
|
||||
* }
|
||||
* ```
|
||||
* }
|
||||
* </pre>
|
||||
*
|
||||
*/
|
||||
@ResourceType(type="docker-build:index:Index")
|
||||
|
||||
@@ -67,14 +67,14 @@ public final class ExportImageArgs extends com.pulumi.resources.ResourceArgs {
|
||||
}
|
||||
|
||||
/**
|
||||
* Name image with `prefix@<digest>`, used for anonymous images.
|
||||
* Name image with `prefix{@literal @}<digest>`, used for anonymous images.
|
||||
*
|
||||
*/
|
||||
@Import(name="danglingNamePrefix")
|
||||
private @Nullable Output<String> danglingNamePrefix;
|
||||
|
||||
/**
|
||||
* @return Name image with `prefix@<digest>`, used for anonymous images.
|
||||
* @return Name image with `prefix{@literal @}<digest>`, used for anonymous images.
|
||||
*
|
||||
*/
|
||||
public Optional<Output<String>> danglingNamePrefix() {
|
||||
@@ -112,14 +112,14 @@ public final class ExportImageArgs extends com.pulumi.resources.ResourceArgs {
|
||||
}
|
||||
|
||||
/**
|
||||
* Add additional canonical name (`name@<digest>`).
|
||||
* Add additional canonical name (`name{@literal @}<digest>`).
|
||||
*
|
||||
*/
|
||||
@Import(name="nameCanonical")
|
||||
private @Nullable Output<Boolean> nameCanonical;
|
||||
|
||||
/**
|
||||
* @return Add additional canonical name (`name@<digest>`).
|
||||
* @return Add additional canonical name (`name{@literal @}<digest>`).
|
||||
*
|
||||
*/
|
||||
public Optional<Output<Boolean>> nameCanonical() {
|
||||
@@ -330,7 +330,7 @@ public final class ExportImageArgs extends com.pulumi.resources.ResourceArgs {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param danglingNamePrefix Name image with `prefix@<digest>`, used for anonymous images.
|
||||
* @param danglingNamePrefix Name image with `prefix{@literal @}<digest>`, used for anonymous images.
|
||||
*
|
||||
* @return builder
|
||||
*
|
||||
@@ -341,7 +341,7 @@ public final class ExportImageArgs extends com.pulumi.resources.ResourceArgs {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param danglingNamePrefix Name image with `prefix@<digest>`, used for anonymous images.
|
||||
* @param danglingNamePrefix Name image with `prefix{@literal @}<digest>`, used for anonymous images.
|
||||
*
|
||||
* @return builder
|
||||
*
|
||||
@@ -393,7 +393,7 @@ public final class ExportImageArgs extends com.pulumi.resources.ResourceArgs {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param nameCanonical Add additional canonical name (`name@<digest>`).
|
||||
* @param nameCanonical Add additional canonical name (`name{@literal @}<digest>`).
|
||||
*
|
||||
* @return builder
|
||||
*
|
||||
@@ -404,7 +404,7 @@ public final class ExportImageArgs extends com.pulumi.resources.ResourceArgs {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param nameCanonical Add additional canonical name (`name@<digest>`).
|
||||
* @param nameCanonical Add additional canonical name (`name{@literal @}<digest>`).
|
||||
*
|
||||
* @return builder
|
||||
*
|
||||
|
||||
@@ -67,14 +67,14 @@ public final class ExportRegistryArgs extends com.pulumi.resources.ResourceArgs
|
||||
}
|
||||
|
||||
/**
|
||||
* Name image with `prefix@<digest>`, used for anonymous images.
|
||||
* Name image with `prefix{@literal @}<digest>`, used for anonymous images.
|
||||
*
|
||||
*/
|
||||
@Import(name="danglingNamePrefix")
|
||||
private @Nullable Output<String> danglingNamePrefix;
|
||||
|
||||
/**
|
||||
* @return Name image with `prefix@<digest>`, used for anonymous images.
|
||||
* @return Name image with `prefix{@literal @}<digest>`, used for anonymous images.
|
||||
*
|
||||
*/
|
||||
public Optional<Output<String>> danglingNamePrefix() {
|
||||
@@ -112,14 +112,14 @@ public final class ExportRegistryArgs extends com.pulumi.resources.ResourceArgs
|
||||
}
|
||||
|
||||
/**
|
||||
* Add additional canonical name (`name@<digest>`).
|
||||
* Add additional canonical name (`name{@literal @}<digest>`).
|
||||
*
|
||||
*/
|
||||
@Import(name="nameCanonical")
|
||||
private @Nullable Output<Boolean> nameCanonical;
|
||||
|
||||
/**
|
||||
* @return Add additional canonical name (`name@<digest>`).
|
||||
* @return Add additional canonical name (`name{@literal @}<digest>`).
|
||||
*
|
||||
*/
|
||||
public Optional<Output<Boolean>> nameCanonical() {
|
||||
@@ -330,7 +330,7 @@ public final class ExportRegistryArgs extends com.pulumi.resources.ResourceArgs
|
||||
}
|
||||
|
||||
/**
|
||||
* @param danglingNamePrefix Name image with `prefix@<digest>`, used for anonymous images.
|
||||
* @param danglingNamePrefix Name image with `prefix{@literal @}<digest>`, used for anonymous images.
|
||||
*
|
||||
* @return builder
|
||||
*
|
||||
@@ -341,7 +341,7 @@ public final class ExportRegistryArgs extends com.pulumi.resources.ResourceArgs
|
||||
}
|
||||
|
||||
/**
|
||||
* @param danglingNamePrefix Name image with `prefix@<digest>`, used for anonymous images.
|
||||
* @param danglingNamePrefix Name image with `prefix{@literal @}<digest>`, used for anonymous images.
|
||||
*
|
||||
* @return builder
|
||||
*
|
||||
@@ -393,7 +393,7 @@ public final class ExportRegistryArgs extends com.pulumi.resources.ResourceArgs
|
||||
}
|
||||
|
||||
/**
|
||||
* @param nameCanonical Add additional canonical name (`name@<digest>`).
|
||||
* @param nameCanonical Add additional canonical name (`name{@literal @}<digest>`).
|
||||
*
|
||||
* @return builder
|
||||
*
|
||||
@@ -404,7 +404,7 @@ public final class ExportRegistryArgs extends com.pulumi.resources.ResourceArgs
|
||||
}
|
||||
|
||||
/**
|
||||
* @param nameCanonical Add additional canonical name (`name@<digest>`).
|
||||
* @param nameCanonical Add additional canonical name (`name{@literal @}<digest>`).
|
||||
*
|
||||
* @return builder
|
||||
*
|
||||
|
||||
@@ -32,7 +32,7 @@ public final class ExportImage {
|
||||
*/
|
||||
private @Nullable Integer compressionLevel;
|
||||
/**
|
||||
* @return Name image with `prefix@<digest>`, used for anonymous images.
|
||||
* @return Name image with `prefix{@literal @}<digest>`, used for anonymous images.
|
||||
*
|
||||
*/
|
||||
private @Nullable String danglingNamePrefix;
|
||||
@@ -47,7 +47,7 @@ public final class ExportImage {
|
||||
*/
|
||||
private @Nullable Boolean insecure;
|
||||
/**
|
||||
* @return Add additional canonical name (`name@<digest>`).
|
||||
* @return Add additional canonical name (`name{@literal @}<digest>`).
|
||||
*
|
||||
*/
|
||||
private @Nullable Boolean nameCanonical;
|
||||
@@ -112,7 +112,7 @@ public final class ExportImage {
|
||||
return Optional.ofNullable(this.compressionLevel);
|
||||
}
|
||||
/**
|
||||
* @return Name image with `prefix@<digest>`, used for anonymous images.
|
||||
* @return Name image with `prefix{@literal @}<digest>`, used for anonymous images.
|
||||
*
|
||||
*/
|
||||
public Optional<String> danglingNamePrefix() {
|
||||
@@ -133,7 +133,7 @@ public final class ExportImage {
|
||||
return Optional.ofNullable(this.insecure);
|
||||
}
|
||||
/**
|
||||
* @return Add additional canonical name (`name@<digest>`).
|
||||
* @return Add additional canonical name (`name{@literal @}<digest>`).
|
||||
*
|
||||
*/
|
||||
public Optional<Boolean> nameCanonical() {
|
||||
|
||||
@@ -32,7 +32,7 @@ public final class ExportRegistry {
|
||||
*/
|
||||
private @Nullable Integer compressionLevel;
|
||||
/**
|
||||
* @return Name image with `prefix@<digest>`, used for anonymous images.
|
||||
* @return Name image with `prefix{@literal @}<digest>`, used for anonymous images.
|
||||
*
|
||||
*/
|
||||
private @Nullable String danglingNamePrefix;
|
||||
@@ -47,7 +47,7 @@ public final class ExportRegistry {
|
||||
*/
|
||||
private @Nullable Boolean insecure;
|
||||
/**
|
||||
* @return Add additional canonical name (`name@<digest>`).
|
||||
* @return Add additional canonical name (`name{@literal @}<digest>`).
|
||||
*
|
||||
*/
|
||||
private @Nullable Boolean nameCanonical;
|
||||
@@ -112,7 +112,7 @@ public final class ExportRegistry {
|
||||
return Optional.ofNullable(this.compressionLevel);
|
||||
}
|
||||
/**
|
||||
* @return Name image with `prefix@<digest>`, used for anonymous images.
|
||||
* @return Name image with `prefix{@literal @}<digest>`, used for anonymous images.
|
||||
*
|
||||
*/
|
||||
public Optional<String> danglingNamePrefix() {
|
||||
@@ -133,7 +133,7 @@ public final class ExportRegistry {
|
||||
return Optional.ofNullable(this.insecure);
|
||||
}
|
||||
/**
|
||||
* @return Add additional canonical name (`name@<digest>`).
|
||||
* @return Add additional canonical name (`name{@literal @}<digest>`).
|
||||
*
|
||||
*/
|
||||
public Optional<Boolean> nameCanonical() {
|
||||
|
||||
5
sdk/nodejs/package.json
generated
5
sdk/nodejs/package.json
generated
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@pulumi/docker-build",
|
||||
"version": "${VERSION}",
|
||||
"version": "1.0.0-alpha.0+dev",
|
||||
"keywords": [
|
||||
"docker",
|
||||
"buildkit",
|
||||
@@ -22,6 +22,7 @@
|
||||
},
|
||||
"pulumi": {
|
||||
"resource": true,
|
||||
"name": "docker-build"
|
||||
"name": "docker-build",
|
||||
"version": "1.0.0-alpha.0+dev"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"resource": true,
|
||||
"name": "docker-build"
|
||||
"name": "docker-build",
|
||||
"version": "1.0.0-alpha.0+dev"
|
||||
}
|
||||
|
||||
2
sdk/python/pyproject.toml
generated
2
sdk/python/pyproject.toml
generated
@@ -5,7 +5,7 @@
|
||||
keywords = ["docker", "buildkit", "buildx", "kind/native"]
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.8"
|
||||
version = "0.0.0"
|
||||
version = "1.0.0a0+dev"
|
||||
[project.license]
|
||||
text = "Apache-2.0"
|
||||
[project.urls]
|
||||
|
||||
@@ -6,6 +6,12 @@ package tools
|
||||
|
||||
import (
|
||||
_ "github.com/golangci/golangci-lint/cmd/golangci-lint"
|
||||
_ "github.com/pulumi/pulumi-dotnet/pulumi-language-dotnet"
|
||||
_ "github.com/pulumi/pulumi-java/pkg/cmd/pulumi-language-java"
|
||||
_ "github.com/pulumi/pulumi-yaml/cmd/pulumi-converter-yaml"
|
||||
_ "github.com/pulumi/pulumi-yaml/cmd/pulumi-language-yaml"
|
||||
_ "github.com/pulumi/pulumi/pkg/v3/cmd/pulumi"
|
||||
_ "github.com/pulumi/pulumi/sdk/go/pulumi-language-go/v3"
|
||||
_ "github.com/pulumi/pulumi/sdk/nodejs/cmd/pulumi-language-nodejs/v3"
|
||||
_ "github.com/pulumi/pulumi/sdk/python/cmd/pulumi-language-python/v3"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user