From 49e48a13489eb6a0fa77b0bd02a79f64360a0282 Mon Sep 17 00:00:00 2001 From: Bryce Lampe Date: Tue, 6 Aug 2024 13:29:31 -0700 Subject: [PATCH 1/5] Update container templates to use docker-build provider --- container-azure-csharp/${PROJECT}.csproj | 2 +- container-azure-csharp/Program.cs | 32 ++++++++++++++++-------- container-azure-go/go.mod | 2 +- container-azure-go/main.go | 22 ++++++++-------- container-azure-python/__main__.py | 18 ++++++------- container-azure-python/requirements.txt | 2 +- container-azure-typescript/index.ts | 18 ++++++------- container-azure-typescript/package.json | 2 +- container-gcp-csharp/${PROJECT}.csproj | 2 +- container-gcp-csharp/Program.cs | 19 +++++++++----- container-gcp-go/main.go | 17 ++++++------- container-gcp-python/__main__.py | 16 ++++++------ container-gcp-python/requirements.txt | 2 +- container-gcp-typescript/index.ts | 19 ++++++-------- container-gcp-typescript/package.json | 2 +- 15 files changed, 96 insertions(+), 79 deletions(-) diff --git a/container-azure-csharp/${PROJECT}.csproj b/container-azure-csharp/${PROJECT}.csproj index cf1337143..ff34d7be4 100644 --- a/container-azure-csharp/${PROJECT}.csproj +++ b/container-azure-csharp/${PROJECT}.csproj @@ -11,7 +11,7 @@ - + diff --git a/container-azure-csharp/Program.cs b/container-azure-csharp/Program.cs index 2399b518d..a6cc7122d 100644 --- a/container-azure-csharp/Program.cs +++ b/container-azure-csharp/Program.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using Pulumi; using AzureNative = Pulumi.AzureNative; -using Docker = Pulumi.Docker; +using DockerBuild = Pulumi.DockerBuild; using Random = Pulumi.Random; return await Pulumi.Deployment.RunAsync(() => @@ -39,17 +39,29 @@ var registryPassword = credentials.Apply(result => result.Passwords[0]!.Value!); // Create a container image for the service. - var image = new Docker.Image("image", new() + var image = new DockerBuild.Image("image", new() { - ImageName = Pulumi.Output.Format($"{registry.LoginServer}/{imageName}:{imageTag}"), - Build = new Docker.Inputs.DockerBuildArgs { - Context = appPath, - Platform = "linux/amd64", + Tags = new[] + { + Pulumi.Output.Format($"{registry.LoginServer}/{imageName}:{imageTag}"), }, - Registry = new Docker.Inputs.RegistryArgs { - Server = registry.LoginServer, - Username = registryUsername, - Password = registryPassword, + Context = new DockerBuild.Inputs.BuildContextArgs + { + Location = appPath, + }, + Platforms = new[] + { + "linux/amd64", + + } + Registries = new[] + { + new DockerBuild.Inputs.RegistryArgs + { + Address = registry.LoginServer, + Password = registryPassword, + Username = registryUsername, + }, }, }); diff --git a/container-azure-go/go.mod b/container-azure-go/go.mod index 246f2ee97..4963a173a 100644 --- a/container-azure-go/go.mod +++ b/container-azure-go/go.mod @@ -7,6 +7,6 @@ require ( github.com/pulumi/pulumi-azure-native-sdk/containerregistry/v2 v2.1.1 github.com/pulumi/pulumi-azure-native-sdk/resources/v2 v2.0.0 github.com/pulumi/pulumi-random/sdk/v4 v4.8.2 - github.com/pulumi/pulumi-docker/sdk/v4 v4.2.3 + github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.4 github.com/pulumi/pulumi/sdk/v3 v3.96.1 ) diff --git a/container-azure-go/main.go b/container-azure-go/main.go index a539a42d4..ef545dde7 100644 --- a/container-azure-go/main.go +++ b/container-azure-go/main.go @@ -7,7 +7,7 @@ import ( "github.com/pulumi/pulumi-azure-native-sdk/containerinstance/v2" "github.com/pulumi/pulumi-azure-native-sdk/containerregistry/v2" "github.com/pulumi/pulumi-azure-native-sdk/resources/v2" - "github.com/pulumi/pulumi-docker/sdk/v4/go/docker" + "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild" "github.com/pulumi/pulumi-random/sdk/v4/go/random" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" "github.com/pulumi/pulumi/sdk/v3/go/pulumi/config" @@ -70,16 +70,18 @@ func main() { registryPassword := credentials.Passwords().Index(pulumi.Int(0)).Value().Elem() // Create a container image for the service. - image, err := docker.NewImage(ctx, "image", &docker.ImageArgs{ - ImageName: pulumi.Sprintf("%s/%s:%s", registry.LoginServer, imageName, imageTag), - Build: docker.DockerBuildArgs{ - Context: pulumi.String(appPath), - Platform: pulumi.String("linux/amd64"), + image, err := dockerbuild.NewImage(ctx, "image", &dockerbuild.ImageArgs{ + Tags: pulumi.StringArray{pulumi.Sprintf("%s/%s:%s", registry.LoginServer, imageName, imageTag)}, + Context: &dockerbuild.BuildContextArgs{ + Location: pulumi.String(appPath), }, - Registry: docker.RegistryArgs{ - Server: registry.LoginServer, - Username: registryUsername, - Password: registryPassword, + Platforms: dockerbuild.PlatformArray{dockerbuild.Platform_Linux_amd64}, + Registries: dockerbuild.RegistryArray{ + &dockerbuild.RegistryArgs{ + Address: registry.LoginServer, + Username: registryUsername, + Password: registryPassword, + } }, }) if err != nil { diff --git a/container-azure-python/__main__.py b/container-azure-python/__main__.py index 87154c38c..b1c59062f 100644 --- a/container-azure-python/__main__.py +++ b/container-azure-python/__main__.py @@ -1,5 +1,5 @@ import pulumi -import pulumi_docker as docker +import pulumi_docker_build as docker_build import pulumi_random as random from pulumi_azure_native import resources, containerregistry, containerinstance @@ -37,18 +37,18 @@ registry_password = credentials.apply(lambda creds: creds.passwords[0].value) # Create a container image for the service. -image = docker.Image( +image = docker_build.Image( "image", - image_name=pulumi.Output.concat(registry.login_server, f"/{image_name}:{image_tag}"), - build=docker.DockerBuildArgs( - context=app_path, - platform="linux/amd64", + tags=[pulumi.Output.concat(registry.login_server, f"/{image_name}:{image_tag}")], + context=docker_build.BuildContextArgs( + location=app_path, ), - registry=docker.RegistryArgs( - server=registry.login_server, + platforms=[docker_build.Platform.LINUX_AMD64], + registries=[docker_build.RegistryArgs( + address=registry.login_server, username=registry_username, password=registry_password, - ), + )], ) # Use a random string to give the service a unique DNS name. diff --git a/container-azure-python/requirements.txt b/container-azure-python/requirements.txt index 2affa6491..104707bc7 100644 --- a/container-azure-python/requirements.txt +++ b/container-azure-python/requirements.txt @@ -1,4 +1,4 @@ pulumi>=3.0.0,<4.0.0 pulumi-azure-native>=2.0.0,<3.0.0 pulumi-random>=4.0.0,<5.0.0 -pulumi-docker>=4.0.0,<5.0.0 +pulumi-docker-build>=0.0.0,<1.0.0 diff --git a/container-azure-typescript/index.ts b/container-azure-typescript/index.ts index 331df6f8a..9e1c16537 100644 --- a/container-azure-typescript/index.ts +++ b/container-azure-typescript/index.ts @@ -3,7 +3,7 @@ import * as resources from "@pulumi/azure-native/resources"; import * as containerregistry from "@pulumi/azure-native/containerregistry"; import * as containerinstance from "@pulumi/azure-native/containerinstance"; import * as random from "@pulumi/random"; -import * as docker from "@pulumi/docker"; +import * as dockerbuild from "@pulumi/docker-build"; // Import the program's configuration settings. const config = new pulumi.Config(); @@ -38,17 +38,17 @@ const credentials = containerregistry.listRegistryCredentialsOutput({ }); // Create a container image for the service. -const image = new docker.Image("image", { - imageName: pulumi.interpolate`${registry.loginServer}/${imageName}:${imageTag}`, - build: { - context: appPath, - platform: "linux/amd64", +const image = new dockerbuild.Image("image", { + tags: [pulumi.interpolate`${registry.loginServer}/${imageName}:${imageTag}`], + context: { + location: appPath, }, - registry: { - server: registry.loginServer, + platforms: ["linux/amd64"], + registries: [{ + address: registry.loginServer, username: credentials.username, password: credentials.password, - }, + }], }); // Use a random string to give the service a unique DNS name. diff --git a/container-azure-typescript/package.json b/container-azure-typescript/package.json index 910629c6b..2e658e6e0 100644 --- a/container-azure-typescript/package.json +++ b/container-azure-typescript/package.json @@ -6,7 +6,7 @@ }, "dependencies": { "@pulumi/azure-native": "^2.0.0", - "@pulumi/docker": "^4.2.3", + "@pulumi/docker-build": "^0.0.4", "@pulumi/random": "^4.8.2", "@pulumi/pulumi": "^3.113.0" } diff --git a/container-gcp-csharp/${PROJECT}.csproj b/container-gcp-csharp/${PROJECT}.csproj index ce8f83aa9..e028b4d84 100644 --- a/container-gcp-csharp/${PROJECT}.csproj +++ b/container-gcp-csharp/${PROJECT}.csproj @@ -11,7 +11,7 @@ - + diff --git a/container-gcp-csharp/Program.cs b/container-gcp-csharp/Program.cs index 177fbc66a..0e1b20470 100644 --- a/container-gcp-csharp/Program.cs +++ b/container-gcp-csharp/Program.cs @@ -1,6 +1,6 @@ using Pulumi; using Gcp = Pulumi.Gcp; -using Docker = Pulumi.Docker; +using DockerBuild = Pulumi.DockerBuild; using System.Collections.Generic; using Random = Pulumi.Random; using Output = Pulumi.Output; @@ -47,14 +47,21 @@ // Create a container image for the service. // Before running `pulumi up`, configure Docker for Artifact Registry authentication // as described here: https://cloud.google.com/artifact-registry/docs/docker/authentication - var image = new Docker.Image("image", new() + var image = new DockerBuild.Image("image", new() { - ImageName = Output.Format($"{repoUrl}/{imageName}"), - Build = new Docker.Inputs.DockerBuildArgs { - Context = appPath, + Tags = new[] + { + Output.Format($"{repoUrl}/{imageName}"), + }, + Context = new DockerBuild.Inputs.BuildContextArgs + { + Location = appPath, + }, + Platforms = new[] + { // Cloud Run currently requires x86_64 images // https://cloud.google.com/run/docs/container-contract#languages - Platform = "linux/amd64", + "linux/amd64", }, }); diff --git a/container-gcp-go/main.go b/container-gcp-go/main.go index d283ec3de..be2eec5e6 100644 --- a/container-gcp-go/main.go +++ b/container-gcp-go/main.go @@ -3,7 +3,7 @@ package main import ( "strconv" - "github.com/pulumi/pulumi-docker/sdk/v4/go/docker" + "github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild" "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/artifactregistry" "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudrun" "github.com/pulumi/pulumi-random/sdk/v4/go/random" @@ -76,15 +76,14 @@ func main() { // Create a container image for the service. // Before running `pulumi up`, configure Docker for authentication to Artifact Registry as // described here: https://cloud.google.com/artifact-registry/docs/docker/authentication - image, err := docker.NewImage(ctx, "image", &docker.ImageArgs{ - Registry: docker.RegistryArgs{}, - ImageName: pulumi.Sprintf("%s/%s", repoUrl, imageName), - Build: docker.DockerBuildArgs{ - Context: pulumi.String(appPath), - // Cloud Run currently requires x86_64 images - // https://cloud.google.com/run/docs/container-contract#languages - Platform: pulumi.String("linux/amd64"), + image, err := dockerbuild.NewImage(ctx, "image", &dockerbuild.ImageArgs{ + Tags: pulumi.StringArray{pulumi.Sprintf("%s/%s", repoUrl, imageName)}, + Context: &dockerbuild.BuildContextArgs{ + Location: pulumi.String(appPath), }, + // Cloud Run currently requires x86_64 images + // https://cloud.google.com/run/docs/container-contract#languages + Platforms: dockerbuild.PlatformArray{"linux/amd64"}, }) if err != nil { return err diff --git a/container-gcp-python/__main__.py b/container-gcp-python/__main__.py index 57f575d1e..2cd03abf4 100644 --- a/container-gcp-python/__main__.py +++ b/container-gcp-python/__main__.py @@ -1,5 +1,5 @@ import pulumi -import pulumi_docker as docker +import pulumi_docker_build as docker_build from pulumi_gcp import cloudrun, config as gcp_config from pulumi_gcp import artifactregistry import pulumi_random as random @@ -53,15 +53,15 @@ # Create a container image for the service. # Before running `pulumi up`, configure Docker for Artifact Registry authentication # as described here: https://cloud.google.com/artifact-registry/docs/docker/authentication -image = docker.Image( +image = docker_build.Image( "image", - image_name=pulumi.Output.concat(repo_url, "/", image_name), - build=docker.DockerBuildArgs( - context=app_path, - # Cloud Run currently requires x86_64 images - # https://cloud.google.com/run/docs/container-contract#languages - platform="linux/amd64" + tags=[pulumi.Output.concat(repo_url, "/", image_name)], + context=docker_build.BuildContextArgs( + location=app_path, ), + # Cloud Run currently requires x86_64 images + # https://cloud.google.com/run/docs/container-contract#languages + platforms=[docker_build.Platform.LINUX_AMD64], ) # Create a Cloud Run service definition. diff --git a/container-gcp-python/requirements.txt b/container-gcp-python/requirements.txt index a7bdf9c4c..ada37e8ec 100644 --- a/container-gcp-python/requirements.txt +++ b/container-gcp-python/requirements.txt @@ -1,4 +1,4 @@ pulumi>=3.0.0,<4.0.0 pulumi-gcp>=7.0.0,<8.0.0 -pulumi-docker>=4.0.0,<5.0.0 +pulumi-docker-build>=0.0.0,<1.0.0 pulumi-random >=4.0.0,<5.0.0 diff --git a/container-gcp-typescript/index.ts b/container-gcp-typescript/index.ts index a824c2473..b381c27f7 100644 --- a/container-gcp-typescript/index.ts +++ b/container-gcp-typescript/index.ts @@ -1,6 +1,6 @@ import * as pulumi from "@pulumi/pulumi"; import * as gcp from "@pulumi/gcp"; -import * as docker from "@pulumi/docker"; +import * as dockerbuild from "@pulumi/docker-build"; import * as random from "@pulumi/random"; // Import the program's configuration settings. @@ -41,17 +41,14 @@ let repoUrl = pulumi.concat(location, "-docker.pkg.dev/", project, "/", reposito // Create a container image for the service. // Before running `pulumi up`, configure Docker for authentication to Artifact Registry // as described here: https://cloud.google.com/artifact-registry/docs/docker/authentication -const image = new docker.Image("image", { - imageName: pulumi.concat(repoUrl, "/", imageName), - build: { - context: appPath, - platform: "linux/amd64", - args: { - // Cloud Run currently requires x86_64 images - // https://cloud.google.com/run/docs/container-contract#languages - DOCKER_DEFAULT_PLATFORM: "linux/amd64", - }, +const image = new dockerbuild.Image("image", { + tags: [pulumi.concat(repoUrl, "/", imageName)], + context: { + location: appPath, }, + // Cloud Run currently requires x86_64 images + // https://cloud.google.com/run/docs/container-contract#languages + platforms: ["linux/amd64"], }); // Create a Cloud Run service definition. diff --git a/container-gcp-typescript/package.json b/container-gcp-typescript/package.json index 54b5d9ab7..650b15adf 100644 --- a/container-gcp-typescript/package.json +++ b/container-gcp-typescript/package.json @@ -6,7 +6,7 @@ "typescript": "^5.0.0" }, "dependencies": { - "@pulumi/docker": "^4.2.3", + "@pulumi/docker-build": "^0.0.4", "@pulumi/gcp": "^7.0.0", "@pulumi/random": "^4.0.0", "@pulumi/pulumi": "^3.113.0" From 77c466fdea071563c1a276ce8d362c2b7ccc591a Mon Sep 17 00:00:00 2001 From: Bryce Lampe Date: Tue, 6 Aug 2024 15:33:08 -0700 Subject: [PATCH 2/5] fix go build --- container-azure-csharp/Program.cs | 2 +- container-azure-go/go.mod | 94 ++++++++++++++++++++++++++++++- container-azure-go/main.go | 4 +- container-gcp-csharp/Program.cs | 4 +- container-gcp-go/go.mod | 92 +++++++++++++++++++++++++++++- container-gcp-go/main.go | 2 +- 6 files changed, 187 insertions(+), 11 deletions(-) diff --git a/container-azure-csharp/Program.cs b/container-azure-csharp/Program.cs index a6cc7122d..75e54d1af 100644 --- a/container-azure-csharp/Program.cs +++ b/container-azure-csharp/Program.cs @@ -53,7 +53,7 @@ { "linux/amd64", - } + }, Registries = new[] { new DockerBuild.Inputs.RegistryArgs diff --git a/container-azure-go/go.mod b/container-azure-go/go.mod index 4963a173a..a92cbc0af 100644 --- a/container-azure-go/go.mod +++ b/container-azure-go/go.mod @@ -1,12 +1,100 @@ module ${PROJECT} -go 1.20 +go 1.21.7 + +toolchain go1.22.1 require ( github.com/pulumi/pulumi-azure-native-sdk/containerinstance/v2 v2.1.1 github.com/pulumi/pulumi-azure-native-sdk/containerregistry/v2 v2.1.1 github.com/pulumi/pulumi-azure-native-sdk/resources/v2 v2.0.0 + github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.3 github.com/pulumi/pulumi-random/sdk/v4 v4.8.2 - github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.4 - github.com/pulumi/pulumi/sdk/v3 v3.96.1 + github.com/pulumi/pulumi/sdk/v3 v3.128.0 +) + +require ( + dario.cat/mergo v1.0.0 // indirect + github.com/BurntSushi/toml v1.2.1 // 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.25.0 // 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.9.1 // indirect + github.com/pulumi/pulumi-azure-native-sdk/v2 v2.1.1 // 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.24.0 // indirect + golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect + golang.org/x/mod v0.18.0 // indirect + golang.org/x/net v0.26.0 // indirect + golang.org/x/sync v0.7.0 // indirect + golang.org/x/sys v0.21.0 // indirect + golang.org/x/term v0.21.0 // indirect + golang.org/x/text v0.16.0 // indirect + golang.org/x/tools v0.22.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 ) diff --git a/container-azure-go/main.go b/container-azure-go/main.go index ef545dde7..60def3a1b 100644 --- a/container-azure-go/main.go +++ b/container-azure-go/main.go @@ -81,7 +81,7 @@ func main() { Address: registry.LoginServer, Username: registryUsername, Password: registryPassword, - } + }, }, }) if err != nil { @@ -115,7 +115,7 @@ func main() { Containers: containerinstance.ContainerArray{ containerinstance.ContainerArgs{ Name: pulumi.String(imageName), - Image: image.ImageName, + Image: image.Ref, Ports: containerinstance.ContainerPortArray{ containerinstance.ContainerPortArgs{ Port: pulumi.Int(containerPort), diff --git a/container-gcp-csharp/Program.cs b/container-gcp-csharp/Program.cs index 0e1b20470..d3352849f 100644 --- a/container-gcp-csharp/Program.cs +++ b/container-gcp-csharp/Program.cs @@ -61,7 +61,7 @@ { // Cloud Run currently requires x86_64 images // https://cloud.google.com/run/docs/container-contract#languages - "linux/amd64", + DockerBuild.Platform.Linux_amd64, }, }); @@ -77,7 +77,7 @@ { new Gcp.CloudRun.Inputs.ServiceTemplateSpecContainerArgs { - Image = image.RepoDigest, + Image = image.Ref, Resources = new Gcp.CloudRun.Inputs.ServiceTemplateSpecContainerResourcesArgs { Limits = { diff --git a/container-gcp-go/go.mod b/container-gcp-go/go.mod index 340888c5c..ecfcea8c8 100644 --- a/container-gcp-go/go.mod +++ b/container-gcp-go/go.mod @@ -1,9 +1,97 @@ module ${PROJECT} -go 1.20 +go 1.21.7 + +toolchain go1.22.1 require ( + github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.3 github.com/pulumi/pulumi-gcp/sdk/v7 v7.0.0 github.com/pulumi/pulumi-random/sdk/v4 v4.13.2 - github.com/pulumi/pulumi/sdk/v3 v3.91.1 + github.com/pulumi/pulumi/sdk/v3 v3.128.0 +) + +require ( + dario.cat/mergo v1.0.0 // indirect + github.com/BurntSushi/toml v1.2.1 // 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.25.0 // 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.9.1 // 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.24.0 // indirect + golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect + golang.org/x/mod v0.18.0 // indirect + golang.org/x/net v0.26.0 // indirect + golang.org/x/sync v0.7.0 // indirect + golang.org/x/sys v0.21.0 // indirect + golang.org/x/term v0.21.0 // indirect + golang.org/x/text v0.16.0 // indirect + golang.org/x/tools v0.22.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 ) diff --git a/container-gcp-go/main.go b/container-gcp-go/main.go index be2eec5e6..26caf4c57 100644 --- a/container-gcp-go/main.go +++ b/container-gcp-go/main.go @@ -96,7 +96,7 @@ func main() { Spec: cloudrun.ServiceTemplateSpecArgs{ Containers: cloudrun.ServiceTemplateSpecContainerArray{ cloudrun.ServiceTemplateSpecContainerArgs{ - Image: image.RepoDigest.Elem(), + Image: image.Ref.Elem(), Resources: cloudrun.ServiceTemplateSpecContainerResourcesArgs{ Limits: pulumi.ToStringMap(map[string]string{ "memory": memory, From bd3ed887a83c5c01c86561fcd930f33146dc415a Mon Sep 17 00:00:00 2001 From: Bryce Lampe Date: Wed, 7 Aug 2024 10:36:37 -0700 Subject: [PATCH 3/5] fix azure-csharp --- container-azure-csharp/Program.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/container-azure-csharp/Program.cs b/container-azure-csharp/Program.cs index 75e54d1af..14fdaec8b 100644 --- a/container-azure-csharp/Program.cs +++ b/container-azure-csharp/Program.cs @@ -51,7 +51,7 @@ }, Platforms = new[] { - "linux/amd64", + DockerBuild.Platform.Linux_amd64, }, Registries = new[] @@ -87,7 +87,7 @@ { new AzureNative.ContainerInstance.Inputs.ContainerArgs { Name = imageName, - Image = image.ImageName, + Image = image.Ref, Ports = new[] { new AzureNative.ContainerInstance.Inputs.ContainerPortArgs { From ed23cdd2dcfbcdc48e7cbec91dbbb2decc4ef7b2 Mon Sep 17 00:00:00 2001 From: Bryce Lampe Date: Wed, 7 Aug 2024 12:07:48 -0700 Subject: [PATCH 4/5] reduce go.mod noise --- container-azure-go/go.mod | 86 --------------------------------------- container-gcp-go/go.mod | 85 -------------------------------------- 2 files changed, 171 deletions(-) diff --git a/container-azure-go/go.mod b/container-azure-go/go.mod index a92cbc0af..c20cd5928 100644 --- a/container-azure-go/go.mod +++ b/container-azure-go/go.mod @@ -12,89 +12,3 @@ require ( github.com/pulumi/pulumi-random/sdk/v4 v4.8.2 github.com/pulumi/pulumi/sdk/v3 v3.128.0 ) - -require ( - dario.cat/mergo v1.0.0 // indirect - github.com/BurntSushi/toml v1.2.1 // 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.25.0 // 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.9.1 // indirect - github.com/pulumi/pulumi-azure-native-sdk/v2 v2.1.1 // 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.24.0 // indirect - golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect - golang.org/x/mod v0.18.0 // indirect - golang.org/x/net v0.26.0 // indirect - golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect - golang.org/x/text v0.16.0 // indirect - golang.org/x/tools v0.22.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 -) diff --git a/container-gcp-go/go.mod b/container-gcp-go/go.mod index ecfcea8c8..0e9750ff9 100644 --- a/container-gcp-go/go.mod +++ b/container-gcp-go/go.mod @@ -10,88 +10,3 @@ require ( github.com/pulumi/pulumi-random/sdk/v4 v4.13.2 github.com/pulumi/pulumi/sdk/v3 v3.128.0 ) - -require ( - dario.cat/mergo v1.0.0 // indirect - github.com/BurntSushi/toml v1.2.1 // 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.25.0 // 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.9.1 // 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.24.0 // indirect - golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect - golang.org/x/mod v0.18.0 // indirect - golang.org/x/net v0.26.0 // indirect - golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect - golang.org/x/text v0.16.0 // indirect - golang.org/x/tools v0.22.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 -) From eb4ad539a7cdac67fa9473bcc747551d9c6ec311 Mon Sep 17 00:00:00 2001 From: Bryce Lampe Date: Wed, 21 Aug 2024 14:53:04 -0700 Subject: [PATCH 5/5] update pins --- container-azure-go/go.mod | 2 +- container-azure-typescript/package.json | 2 +- container-gcp-go/go.mod | 2 +- container-gcp-typescript/package.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/container-azure-go/go.mod b/container-azure-go/go.mod index c20cd5928..04332c1a6 100644 --- a/container-azure-go/go.mod +++ b/container-azure-go/go.mod @@ -8,7 +8,7 @@ require ( github.com/pulumi/pulumi-azure-native-sdk/containerinstance/v2 v2.1.1 github.com/pulumi/pulumi-azure-native-sdk/containerregistry/v2 v2.1.1 github.com/pulumi/pulumi-azure-native-sdk/resources/v2 v2.0.0 - github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.3 + github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.6 github.com/pulumi/pulumi-random/sdk/v4 v4.8.2 github.com/pulumi/pulumi/sdk/v3 v3.128.0 ) diff --git a/container-azure-typescript/package.json b/container-azure-typescript/package.json index 2e658e6e0..06d38ab0e 100644 --- a/container-azure-typescript/package.json +++ b/container-azure-typescript/package.json @@ -6,7 +6,7 @@ }, "dependencies": { "@pulumi/azure-native": "^2.0.0", - "@pulumi/docker-build": "^0.0.4", + "@pulumi/docker-build": "^0.0.6", "@pulumi/random": "^4.8.2", "@pulumi/pulumi": "^3.113.0" } diff --git a/container-gcp-go/go.mod b/container-gcp-go/go.mod index 0e9750ff9..51f1915ab 100644 --- a/container-gcp-go/go.mod +++ b/container-gcp-go/go.mod @@ -5,7 +5,7 @@ go 1.21.7 toolchain go1.22.1 require ( - github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.3 + github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.6 github.com/pulumi/pulumi-gcp/sdk/v7 v7.0.0 github.com/pulumi/pulumi-random/sdk/v4 v4.13.2 github.com/pulumi/pulumi/sdk/v3 v3.128.0 diff --git a/container-gcp-typescript/package.json b/container-gcp-typescript/package.json index 650b15adf..ee06def83 100644 --- a/container-gcp-typescript/package.json +++ b/container-gcp-typescript/package.json @@ -6,7 +6,7 @@ "typescript": "^5.0.0" }, "dependencies": { - "@pulumi/docker-build": "^0.0.4", + "@pulumi/docker-build": "^0.0.6", "@pulumi/gcp": "^7.0.0", "@pulumi/random": "^4.0.0", "@pulumi/pulumi": "^3.113.0"