Initial provider implementation (#18)

This brings over the initial buildx prototype from pulumi/pulumi-docker
and fixes various build and release issues.
This commit is contained in:
Bryce Lampe
2024-04-25 11:03:59 -07:00
committed by GitHub
parent 2545dd3089
commit 26c144c916
398 changed files with 65361 additions and 1702 deletions

50
sdk/dotnet/Inputs/BuildContextArgs.cs generated Normal file
View File

@@ -0,0 +1,50 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class BuildContextArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// Resources to use for build context.
///
/// The location can be:
/// * A relative or absolute path to a local directory (`.`, `./app`,
/// `/app`, etc.).
/// * A remote URL of a Git repository, tarball, or plain text file
/// (`https://github.com/user/myrepo.git`, `http://server/context.tar.gz`,
/// etc.).
/// </summary>
[Input("location", required: true)]
public Input<string> Location { get; set; } = null!;
[Input("named")]
private InputMap<Inputs.ContextArgs>? _named;
/// <summary>
/// Additional build contexts to use.
///
/// These contexts are accessed with `FROM name` or `--from=name`
/// statements when using Dockerfile 1.4+ syntax.
///
/// Values can be local paths, HTTP URLs, or `docker-image://` images.
/// </summary>
public InputMap<Inputs.ContextArgs> Named
{
get => _named ?? (_named = new InputMap<Inputs.ContextArgs>());
set => _named = value;
}
public BuildContextArgs()
{
}
public static new BuildContextArgs Empty => new BuildContextArgs();
}
}

31
sdk/dotnet/Inputs/BuilderConfigArgs.cs generated Normal file
View File

@@ -0,0 +1,31 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class BuilderConfigArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// Name of an existing buildx builder to use.
///
/// Only `docker-container`, `kubernetes`, or `remote` drivers are
/// supported. The legacy `docker` driver is not supported.
///
/// Equivalent to Docker's `--builder` flag.
/// </summary>
[Input("name")]
public Input<string>? Name { get; set; }
public BuilderConfigArgs()
{
}
public static new BuilderConfigArgs Empty => new BuilderConfigArgs();
}
}

67
sdk/dotnet/Inputs/CacheFromArgs.cs generated Normal file
View File

@@ -0,0 +1,67 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class CacheFromArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// Upload build caches to Azure's blob storage service.
/// </summary>
[Input("azblob")]
public Input<Inputs.CacheFromAzureBlobArgs>? Azblob { get; set; }
/// <summary>
/// When `true` this entry will be excluded. Defaults to `false`.
/// </summary>
[Input("disabled")]
public Input<bool>? Disabled { get; set; }
/// <summary>
/// Recommended for use with GitHub Actions workflows.
///
/// An action like `crazy-max/ghaction-github-runtime` is recommended to
/// expose appropriate credentials to your GitHub workflow.
/// </summary>
[Input("gha")]
public Input<Inputs.CacheFromGitHubActionsArgs>? Gha { get; set; }
/// <summary>
/// A simple backend which caches images on your local filesystem.
/// </summary>
[Input("local")]
public Input<Inputs.CacheFromLocalArgs>? Local { get; set; }
/// <summary>
/// A raw string as you would provide it to the Docker CLI (e.g.,
/// `type=inline`).
/// </summary>
[Input("raw")]
public Input<string>? Raw { get; set; }
/// <summary>
/// Upload build caches to remote registries.
/// </summary>
[Input("registry")]
public Input<Inputs.CacheFromRegistryArgs>? Registry { get; set; }
/// <summary>
/// Upload build caches to AWS S3 or an S3-compatible services such as
/// MinIO.
/// </summary>
[Input("s3")]
public Input<Inputs.CacheFromS3Args>? S3 { get; set; }
public CacheFromArgs()
{
}
public static new CacheFromArgs Empty => new CacheFromArgs();
}
}

View File

@@ -0,0 +1,48 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class CacheFromAzureBlobArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// Base URL of the storage account.
/// </summary>
[Input("accountUrl")]
public Input<string>? AccountUrl { get; set; }
/// <summary>
/// The name of the cache image.
/// </summary>
[Input("name", required: true)]
public Input<string> Name { get; set; } = null!;
[Input("secretAccessKey")]
private Input<string>? _secretAccessKey;
/// <summary>
/// Blob storage account key.
/// </summary>
public Input<string>? SecretAccessKey
{
get => _secretAccessKey;
set
{
var emptySecret = Output.CreateSecret(0);
_secretAccessKey = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
}
}
public CacheFromAzureBlobArgs()
{
}
public static new CacheFromAzureBlobArgs Empty => new CacheFromAzureBlobArgs();
}
}

View File

@@ -0,0 +1,63 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class CacheFromGitHubActionsArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// The scope to use for cache keys. Defaults to `buildkit`.
///
/// This should be set if building and caching multiple images in one
/// workflow, otherwise caches will overwrite each other.
/// </summary>
[Input("scope")]
public Input<string>? Scope { get; set; }
[Input("token")]
private Input<string>? _token;
/// <summary>
/// The GitHub Actions token to use. This is not a personal access tokens
/// and is typically generated automatically as part of each job.
///
/// Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
/// `crazy-max/ghaction-github-runtime` is recommended to expose this
/// environment variable to your jobs.
/// </summary>
public Input<string>? Token
{
get => _token;
set
{
var emptySecret = Output.CreateSecret(0);
_token = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
}
}
/// <summary>
/// The cache server URL to use for artifacts.
///
/// Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
/// `crazy-max/ghaction-github-runtime` is recommended to expose this
/// environment variable to your jobs.
/// </summary>
[Input("url")]
public Input<string>? Url { get; set; }
public CacheFromGitHubActionsArgs()
{
Scope = Utilities.GetEnv("buildkit") ?? "";
Token = Utilities.GetEnv("ACTIONS_RUNTIME_TOKEN") ?? "";
Url = Utilities.GetEnv("ACTIONS_RUNTIME_URL") ?? "";
}
public static new CacheFromGitHubActionsArgs Empty => new CacheFromGitHubActionsArgs();
}
}

32
sdk/dotnet/Inputs/CacheFromLocalArgs.cs generated Normal file
View File

@@ -0,0 +1,32 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class CacheFromLocalArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// Digest of manifest to import.
/// </summary>
[Input("digest")]
public Input<string>? Digest { get; set; }
/// <summary>
/// Path of the local directory where cache gets imported from.
/// </summary>
[Input("src", required: true)]
public Input<string> Src { get; set; } = null!;
public CacheFromLocalArgs()
{
}
public static new CacheFromLocalArgs Empty => new CacheFromLocalArgs();
}
}

View File

@@ -0,0 +1,26 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class CacheFromRegistryArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// Fully qualified name of the cache image to import.
/// </summary>
[Input("ref", required: true)]
public Input<string> Ref { get; set; } = null!;
public CacheFromRegistryArgs()
{
}
public static new CacheFromRegistryArgs Empty => new CacheFromRegistryArgs();
}
}

104
sdk/dotnet/Inputs/CacheFromS3Args.cs generated Normal file
View File

@@ -0,0 +1,104 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class CacheFromS3Args : global::Pulumi.ResourceArgs
{
/// <summary>
/// Defaults to `$AWS_ACCESS_KEY_ID`.
/// </summary>
[Input("accessKeyId")]
public Input<string>? AccessKeyId { get; set; }
/// <summary>
/// Prefix to prepend to blob filenames.
/// </summary>
[Input("blobsPrefix")]
public Input<string>? BlobsPrefix { get; set; }
/// <summary>
/// Name of the S3 bucket.
/// </summary>
[Input("bucket", required: true)]
public Input<string> Bucket { get; set; } = null!;
/// <summary>
/// Endpoint of the S3 bucket.
/// </summary>
[Input("endpointUrl")]
public Input<string>? EndpointUrl { get; set; }
/// <summary>
/// Prefix to prepend on manifest filenames.
/// </summary>
[Input("manifestsPrefix")]
public Input<string>? ManifestsPrefix { get; set; }
/// <summary>
/// Name of the cache image.
/// </summary>
[Input("name")]
public Input<string>? Name { get; set; }
/// <summary>
/// The geographic location of the bucket. Defaults to `$AWS_REGION`.
/// </summary>
[Input("region", required: true)]
public Input<string> Region { get; set; } = null!;
[Input("secretAccessKey")]
private Input<string>? _secretAccessKey;
/// <summary>
/// Defaults to `$AWS_SECRET_ACCESS_KEY`.
/// </summary>
public Input<string>? SecretAccessKey
{
get => _secretAccessKey;
set
{
var emptySecret = Output.CreateSecret(0);
_secretAccessKey = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
}
}
[Input("sessionToken")]
private Input<string>? _sessionToken;
/// <summary>
/// Defaults to `$AWS_SESSION_TOKEN`.
/// </summary>
public Input<string>? SessionToken
{
get => _sessionToken;
set
{
var emptySecret = Output.CreateSecret(0);
_sessionToken = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
}
}
/// <summary>
/// Uses `bucket` in the URL instead of hostname when `true`.
/// </summary>
[Input("usePathStyle")]
public Input<bool>? UsePathStyle { get; set; }
public CacheFromS3Args()
{
AccessKeyId = Utilities.GetEnv("AWS_ACCESS_KEY_ID") ?? "";
Region = Utilities.GetEnv("AWS_REGION") ?? "";
SecretAccessKey = Utilities.GetEnv("AWS_SECRET_ACCESS_KEY") ?? "";
SessionToken = Utilities.GetEnv("AWS_SESSION_TOKEN") ?? "";
}
public static new CacheFromS3Args Empty => new CacheFromS3Args();
}
}

75
sdk/dotnet/Inputs/CacheToArgs.cs generated Normal file
View File

@@ -0,0 +1,75 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class CacheToArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// Push cache to Azure's blob storage service.
/// </summary>
[Input("azblob")]
public Input<Inputs.CacheToAzureBlobArgs>? Azblob { get; set; }
/// <summary>
/// When `true` this entry will be excluded. Defaults to `false`.
/// </summary>
[Input("disabled")]
public Input<bool>? Disabled { get; set; }
/// <summary>
/// Recommended for use with GitHub Actions workflows.
///
/// An action like `crazy-max/ghaction-github-runtime` is recommended to
/// expose appropriate credentials to your GitHub workflow.
/// </summary>
[Input("gha")]
public Input<Inputs.CacheToGitHubActionsArgs>? Gha { get; set; }
/// <summary>
/// The inline cache storage backend is the simplest implementation to get
/// started with, but it does not handle multi-stage builds. Consider the
/// `registry` cache backend instead.
/// </summary>
[Input("inline")]
public Input<Inputs.CacheToInlineArgs>? Inline { get; set; }
/// <summary>
/// A simple backend which caches imagines on your local filesystem.
/// </summary>
[Input("local")]
public Input<Inputs.CacheToLocalArgs>? Local { get; set; }
/// <summary>
/// A raw string as you would provide it to the Docker CLI (e.g.,
/// `type=inline`)
/// </summary>
[Input("raw")]
public Input<string>? Raw { get; set; }
/// <summary>
/// Push caches to remote registries. Incompatible with the `docker` build
/// driver.
/// </summary>
[Input("registry")]
public Input<Inputs.CacheToRegistryArgs>? Registry { get; set; }
/// <summary>
/// Push cache to AWS S3 or S3-compatible services such as MinIO.
/// </summary>
[Input("s3")]
public Input<Inputs.CacheToS3Args>? S3 { get; set; }
public CacheToArgs()
{
}
public static new CacheToArgs Empty => new CacheToArgs();
}
}

View File

@@ -0,0 +1,62 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class CacheToAzureBlobArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// Base URL of the storage account.
/// </summary>
[Input("accountUrl")]
public Input<string>? AccountUrl { get; set; }
/// <summary>
/// Ignore errors caused by failed cache exports.
/// </summary>
[Input("ignoreError")]
public Input<bool>? IgnoreError { get; set; }
/// <summary>
/// The cache mode to use. Defaults to `min`.
/// </summary>
[Input("mode")]
public Input<Pulumi.DockerBuild.CacheMode>? Mode { get; set; }
/// <summary>
/// The name of the cache image.
/// </summary>
[Input("name", required: true)]
public Input<string> Name { get; set; } = null!;
[Input("secretAccessKey")]
private Input<string>? _secretAccessKey;
/// <summary>
/// Blob storage account key.
/// </summary>
public Input<string>? SecretAccessKey
{
get => _secretAccessKey;
set
{
var emptySecret = Output.CreateSecret(0);
_secretAccessKey = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
}
}
public CacheToAzureBlobArgs()
{
IgnoreError = false;
Mode = Pulumi.DockerBuild.CacheMode.Min;
}
public static new CacheToAzureBlobArgs Empty => new CacheToAzureBlobArgs();
}
}

View File

@@ -0,0 +1,77 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class CacheToGitHubActionsArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// Ignore errors caused by failed cache exports.
/// </summary>
[Input("ignoreError")]
public Input<bool>? IgnoreError { get; set; }
/// <summary>
/// The cache mode to use. Defaults to `min`.
/// </summary>
[Input("mode")]
public Input<Pulumi.DockerBuild.CacheMode>? Mode { get; set; }
/// <summary>
/// The scope to use for cache keys. Defaults to `buildkit`.
///
/// This should be set if building and caching multiple images in one
/// workflow, otherwise caches will overwrite each other.
/// </summary>
[Input("scope")]
public Input<string>? Scope { get; set; }
[Input("token")]
private Input<string>? _token;
/// <summary>
/// The GitHub Actions token to use. This is not a personal access tokens
/// and is typically generated automatically as part of each job.
///
/// Defaults to `$ACTIONS_RUNTIME_TOKEN`, although a separate action like
/// `crazy-max/ghaction-github-runtime` is recommended to expose this
/// environment variable to your jobs.
/// </summary>
public Input<string>? Token
{
get => _token;
set
{
var emptySecret = Output.CreateSecret(0);
_token = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
}
}
/// <summary>
/// The cache server URL to use for artifacts.
///
/// Defaults to `$ACTIONS_RUNTIME_URL`, although a separate action like
/// `crazy-max/ghaction-github-runtime` is recommended to expose this
/// environment variable to your jobs.
/// </summary>
[Input("url")]
public Input<string>? Url { get; set; }
public CacheToGitHubActionsArgs()
{
IgnoreError = false;
Mode = Pulumi.DockerBuild.CacheMode.Min;
Scope = Utilities.GetEnv("buildkit") ?? "";
Token = Utilities.GetEnv("ACTIONS_RUNTIME_TOKEN") ?? "";
Url = Utilities.GetEnv("ACTIONS_RUNTIME_URL") ?? "";
}
public static new CacheToGitHubActionsArgs Empty => new CacheToGitHubActionsArgs();
}
}

23
sdk/dotnet/Inputs/CacheToInlineArgs.cs generated Normal file
View File

@@ -0,0 +1,23 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
/// <summary>
/// Include an inline cache with the exported image.
/// </summary>
public sealed class CacheToInlineArgs : global::Pulumi.ResourceArgs
{
public CacheToInlineArgs()
{
}
public static new CacheToInlineArgs Empty => new CacheToInlineArgs();
}
}

61
sdk/dotnet/Inputs/CacheToLocalArgs.cs generated Normal file
View File

@@ -0,0 +1,61 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class CacheToLocalArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// The compression type to use.
/// </summary>
[Input("compression")]
public Input<Pulumi.DockerBuild.CompressionType>? Compression { get; set; }
/// <summary>
/// Compression level from 0 to 22.
/// </summary>
[Input("compressionLevel")]
public Input<int>? CompressionLevel { get; set; }
/// <summary>
/// Path of the local directory to export the cache.
/// </summary>
[Input("dest", required: true)]
public Input<string> Dest { get; set; } = null!;
/// <summary>
/// Forcefully apply compression.
/// </summary>
[Input("forceCompression")]
public Input<bool>? ForceCompression { get; set; }
/// <summary>
/// Ignore errors caused by failed cache exports.
/// </summary>
[Input("ignoreError")]
public Input<bool>? IgnoreError { get; set; }
/// <summary>
/// The cache mode to use. Defaults to `min`.
/// </summary>
[Input("mode")]
public Input<Pulumi.DockerBuild.CacheMode>? Mode { get; set; }
public CacheToLocalArgs()
{
Compression = Pulumi.DockerBuild.CompressionType.Gzip;
CompressionLevel = 0;
ForceCompression = false;
IgnoreError = false;
Mode = Pulumi.DockerBuild.CacheMode.Min;
}
public static new CacheToLocalArgs Empty => new CacheToLocalArgs();
}
}

82
sdk/dotnet/Inputs/CacheToRegistryArgs.cs generated Normal file
View File

@@ -0,0 +1,82 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class CacheToRegistryArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// The compression type to use.
/// </summary>
[Input("compression")]
public Input<Pulumi.DockerBuild.CompressionType>? Compression { get; set; }
/// <summary>
/// Compression level from 0 to 22.
/// </summary>
[Input("compressionLevel")]
public Input<int>? CompressionLevel { get; set; }
/// <summary>
/// Forcefully apply compression.
/// </summary>
[Input("forceCompression")]
public Input<bool>? ForceCompression { get; set; }
/// <summary>
/// Ignore errors caused by failed cache exports.
/// </summary>
[Input("ignoreError")]
public Input<bool>? IgnoreError { get; set; }
/// <summary>
/// Export cache manifest as an OCI-compatible image manifest instead of a
/// manifest list. Requires `ociMediaTypes` to also be `true`.
///
/// Some registries like AWS ECR will not work with caching if this is
/// `false`.
///
/// Defaults to `false` to match Docker's default behavior.
/// </summary>
[Input("imageManifest")]
public Input<bool>? ImageManifest { get; set; }
/// <summary>
/// The cache mode to use. Defaults to `min`.
/// </summary>
[Input("mode")]
public Input<Pulumi.DockerBuild.CacheMode>? Mode { get; set; }
/// <summary>
/// Whether to use OCI media types in exported manifests. Defaults to
/// `true`.
/// </summary>
[Input("ociMediaTypes")]
public Input<bool>? OciMediaTypes { get; set; }
/// <summary>
/// Fully qualified name of the cache image to import.
/// </summary>
[Input("ref", required: true)]
public Input<string> Ref { get; set; } = null!;
public CacheToRegistryArgs()
{
Compression = Pulumi.DockerBuild.CompressionType.Gzip;
CompressionLevel = 0;
ForceCompression = false;
IgnoreError = false;
ImageManifest = false;
Mode = Pulumi.DockerBuild.CacheMode.Min;
OciMediaTypes = true;
}
public static new CacheToRegistryArgs Empty => new CacheToRegistryArgs();
}
}

118
sdk/dotnet/Inputs/CacheToS3Args.cs generated Normal file
View File

@@ -0,0 +1,118 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class CacheToS3Args : global::Pulumi.ResourceArgs
{
/// <summary>
/// Defaults to `$AWS_ACCESS_KEY_ID`.
/// </summary>
[Input("accessKeyId")]
public Input<string>? AccessKeyId { get; set; }
/// <summary>
/// Prefix to prepend to blob filenames.
/// </summary>
[Input("blobsPrefix")]
public Input<string>? BlobsPrefix { get; set; }
/// <summary>
/// Name of the S3 bucket.
/// </summary>
[Input("bucket", required: true)]
public Input<string> Bucket { get; set; } = null!;
/// <summary>
/// Endpoint of the S3 bucket.
/// </summary>
[Input("endpointUrl")]
public Input<string>? EndpointUrl { get; set; }
/// <summary>
/// Ignore errors caused by failed cache exports.
/// </summary>
[Input("ignoreError")]
public Input<bool>? IgnoreError { get; set; }
/// <summary>
/// Prefix to prepend on manifest filenames.
/// </summary>
[Input("manifestsPrefix")]
public Input<string>? ManifestsPrefix { get; set; }
/// <summary>
/// The cache mode to use. Defaults to `min`.
/// </summary>
[Input("mode")]
public Input<Pulumi.DockerBuild.CacheMode>? Mode { get; set; }
/// <summary>
/// Name of the cache image.
/// </summary>
[Input("name")]
public Input<string>? Name { get; set; }
/// <summary>
/// The geographic location of the bucket. Defaults to `$AWS_REGION`.
/// </summary>
[Input("region", required: true)]
public Input<string> Region { get; set; } = null!;
[Input("secretAccessKey")]
private Input<string>? _secretAccessKey;
/// <summary>
/// Defaults to `$AWS_SECRET_ACCESS_KEY`.
/// </summary>
public Input<string>? SecretAccessKey
{
get => _secretAccessKey;
set
{
var emptySecret = Output.CreateSecret(0);
_secretAccessKey = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
}
}
[Input("sessionToken")]
private Input<string>? _sessionToken;
/// <summary>
/// Defaults to `$AWS_SESSION_TOKEN`.
/// </summary>
public Input<string>? SessionToken
{
get => _sessionToken;
set
{
var emptySecret = Output.CreateSecret(0);
_sessionToken = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
}
}
/// <summary>
/// Uses `bucket` in the URL instead of hostname when `true`.
/// </summary>
[Input("usePathStyle")]
public Input<bool>? UsePathStyle { get; set; }
public CacheToS3Args()
{
AccessKeyId = Utilities.GetEnv("AWS_ACCESS_KEY_ID") ?? "";
IgnoreError = false;
Mode = Pulumi.DockerBuild.CacheMode.Min;
Region = Utilities.GetEnv("AWS_REGION") ?? "";
SecretAccessKey = Utilities.GetEnv("AWS_SECRET_ACCESS_KEY") ?? "";
SessionToken = Utilities.GetEnv("AWS_SESSION_TOKEN") ?? "";
}
public static new CacheToS3Args Empty => new CacheToS3Args();
}
}

33
sdk/dotnet/Inputs/ContextArgs.cs generated Normal file
View File

@@ -0,0 +1,33 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class ContextArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// Resources to use for build context.
///
/// The location can be:
/// * A relative or absolute path to a local directory (`.`, `./app`,
/// `/app`, etc.).
/// * A remote URL of a Git repository, tarball, or plain text file
/// (`https://github.com/user/myrepo.git`, `http://server/context.tar.gz`,
/// etc.).
/// </summary>
[Input("location", required: true)]
public Input<string> Location { get; set; } = null!;
public ContextArgs()
{
}
public static new ContextArgs Empty => new ContextArgs();
}
}

42
sdk/dotnet/Inputs/DockerfileArgs.cs generated Normal file
View File

@@ -0,0 +1,42 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class DockerfileArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// Raw Dockerfile contents.
///
/// Conflicts with `location`.
///
/// Equivalent to invoking Docker with `-f -`.
/// </summary>
[Input("inline")]
public Input<string>? Inline { get; set; }
/// <summary>
/// Location of the Dockerfile to use.
///
/// Can be a relative or absolute path to a local file, or a remote URL.
///
/// Defaults to `${context.location}/Dockerfile` if context is on-disk.
///
/// Conflicts with `inline`.
/// </summary>
[Input("location")]
public Input<string>? Location { get; set; }
public DockerfileArgs()
{
}
public static new DockerfileArgs Empty => new DockerfileArgs();
}
}

76
sdk/dotnet/Inputs/ExportArgs.cs generated Normal file
View File

@@ -0,0 +1,76 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class ExportArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// A no-op export. Helpful for silencing the 'no exports' warning if you
/// just want to populate caches.
/// </summary>
[Input("cacheonly")]
public Input<Inputs.ExportCacheOnlyArgs>? Cacheonly { get; set; }
/// <summary>
/// When `true` this entry will be excluded. Defaults to `false`.
/// </summary>
[Input("disabled")]
public Input<bool>? Disabled { get; set; }
/// <summary>
/// Export as a Docker image layout.
/// </summary>
[Input("docker")]
public Input<Inputs.ExportDockerArgs>? Docker { get; set; }
/// <summary>
/// Outputs the build result into a container image format.
/// </summary>
[Input("image")]
public Input<Inputs.ExportImageArgs>? Image { get; set; }
/// <summary>
/// Export to a local directory as files and directories.
/// </summary>
[Input("local")]
public Input<Inputs.ExportLocalArgs>? Local { get; set; }
/// <summary>
/// Identical to the Docker exporter but uses OCI media types by default.
/// </summary>
[Input("oci")]
public Input<Inputs.ExportOCIArgs>? Oci { get; set; }
/// <summary>
/// A raw string as you would provide it to the Docker CLI (e.g.,
/// `type=docker`)
/// </summary>
[Input("raw")]
public Input<string>? Raw { get; set; }
/// <summary>
/// Identical to the Image exporter, but pushes by default.
/// </summary>
[Input("registry")]
public Input<Inputs.ExportRegistryArgs>? Registry { get; set; }
/// <summary>
/// Export to a local directory as a tarball.
/// </summary>
[Input("tar")]
public Input<Inputs.ExportTarArgs>? Tar { get; set; }
public ExportArgs()
{
}
public static new ExportArgs Empty => new ExportArgs();
}
}

20
sdk/dotnet/Inputs/ExportCacheOnlyArgs.cs generated Normal file
View File

@@ -0,0 +1,20 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class ExportCacheOnlyArgs : global::Pulumi.ResourceArgs
{
public ExportCacheOnlyArgs()
{
}
public static new ExportCacheOnlyArgs Empty => new ExportCacheOnlyArgs();
}
}

85
sdk/dotnet/Inputs/ExportDockerArgs.cs generated Normal file
View File

@@ -0,0 +1,85 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class ExportDockerArgs : global::Pulumi.ResourceArgs
{
[Input("annotations")]
private InputMap<string>? _annotations;
/// <summary>
/// Attach an arbitrary key/value annotation to the image.
/// </summary>
public InputMap<string> Annotations
{
get => _annotations ?? (_annotations = new InputMap<string>());
set => _annotations = value;
}
/// <summary>
/// The compression type to use.
/// </summary>
[Input("compression")]
public Input<Pulumi.DockerBuild.CompressionType>? Compression { get; set; }
/// <summary>
/// Compression level from 0 to 22.
/// </summary>
[Input("compressionLevel")]
public Input<int>? CompressionLevel { get; set; }
/// <summary>
/// The local export path.
/// </summary>
[Input("dest")]
public Input<string>? Dest { get; set; }
/// <summary>
/// Forcefully apply compression.
/// </summary>
[Input("forceCompression")]
public Input<bool>? ForceCompression { get; set; }
[Input("names")]
private InputList<string>? _names;
/// <summary>
/// Specify images names to export. This is overridden if tags are already specified.
/// </summary>
public InputList<string> Names
{
get => _names ?? (_names = new InputList<string>());
set => _names = value;
}
/// <summary>
/// Use OCI media types in exporter manifests.
/// </summary>
[Input("ociMediaTypes")]
public Input<bool>? OciMediaTypes { get; set; }
/// <summary>
/// Bundle the output into a tarball layout.
/// </summary>
[Input("tar")]
public Input<bool>? Tar { get; set; }
public ExportDockerArgs()
{
Compression = Pulumi.DockerBuild.CompressionType.Gzip;
CompressionLevel = 0;
ForceCompression = false;
OciMediaTypes = false;
Tar = true;
}
public static new ExportDockerArgs Empty => new ExportDockerArgs();
}
}

122
sdk/dotnet/Inputs/ExportImageArgs.cs generated Normal file
View File

@@ -0,0 +1,122 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class ExportImageArgs : global::Pulumi.ResourceArgs
{
[Input("annotations")]
private InputMap<string>? _annotations;
/// <summary>
/// Attach an arbitrary key/value annotation to the image.
/// </summary>
public InputMap<string> Annotations
{
get => _annotations ?? (_annotations = new InputMap<string>());
set => _annotations = value;
}
/// <summary>
/// The compression type to use.
/// </summary>
[Input("compression")]
public Input<Pulumi.DockerBuild.CompressionType>? Compression { get; set; }
/// <summary>
/// Compression level from 0 to 22.
/// </summary>
[Input("compressionLevel")]
public Input<int>? CompressionLevel { get; set; }
/// <summary>
/// Name image with `prefix@&lt;digest&gt;`, used for anonymous images.
/// </summary>
[Input("danglingNamePrefix")]
public Input<string>? DanglingNamePrefix { get; set; }
/// <summary>
/// Forcefully apply compression.
/// </summary>
[Input("forceCompression")]
public Input<bool>? ForceCompression { get; set; }
/// <summary>
/// Allow pushing to an insecure registry.
/// </summary>
[Input("insecure")]
public Input<bool>? Insecure { get; set; }
/// <summary>
/// Add additional canonical name (`name@&lt;digest&gt;`).
/// </summary>
[Input("nameCanonical")]
public Input<bool>? NameCanonical { get; set; }
[Input("names")]
private InputList<string>? _names;
/// <summary>
/// Specify images names to export. This is overridden if tags are already specified.
/// </summary>
public InputList<string> Names
{
get => _names ?? (_names = new InputList<string>());
set => _names = value;
}
/// <summary>
/// Use OCI media types in exporter manifests.
/// </summary>
[Input("ociMediaTypes")]
public Input<bool>? OciMediaTypes { get; set; }
/// <summary>
/// Push after creating the image. Defaults to `false`.
/// </summary>
[Input("push")]
public Input<bool>? Push { get; set; }
/// <summary>
/// Push image without name.
/// </summary>
[Input("pushByDigest")]
public Input<bool>? PushByDigest { get; set; }
/// <summary>
/// Store resulting images to the worker's image store and ensure all of
/// its blobs are in the content store.
///
/// Defaults to `true`.
///
/// Ignored if the worker doesn't have image store (when using OCI workers,
/// for example).
/// </summary>
[Input("store")]
public Input<bool>? Store { get; set; }
/// <summary>
/// Unpack image after creation (for use with containerd). Defaults to
/// `false`.
/// </summary>
[Input("unpack")]
public Input<bool>? Unpack { get; set; }
public ExportImageArgs()
{
Compression = Pulumi.DockerBuild.CompressionType.Gzip;
CompressionLevel = 0;
ForceCompression = false;
OciMediaTypes = false;
Store = true;
}
public static new ExportImageArgs Empty => new ExportImageArgs();
}
}

26
sdk/dotnet/Inputs/ExportLocalArgs.cs generated Normal file
View File

@@ -0,0 +1,26 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class ExportLocalArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// Output path.
/// </summary>
[Input("dest", required: true)]
public Input<string> Dest { get; set; } = null!;
public ExportLocalArgs()
{
}
public static new ExportLocalArgs Empty => new ExportLocalArgs();
}
}

85
sdk/dotnet/Inputs/ExportOCIArgs.cs generated Normal file
View File

@@ -0,0 +1,85 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class ExportOCIArgs : global::Pulumi.ResourceArgs
{
[Input("annotations")]
private InputMap<string>? _annotations;
/// <summary>
/// Attach an arbitrary key/value annotation to the image.
/// </summary>
public InputMap<string> Annotations
{
get => _annotations ?? (_annotations = new InputMap<string>());
set => _annotations = value;
}
/// <summary>
/// The compression type to use.
/// </summary>
[Input("compression")]
public Input<Pulumi.DockerBuild.CompressionType>? Compression { get; set; }
/// <summary>
/// Compression level from 0 to 22.
/// </summary>
[Input("compressionLevel")]
public Input<int>? CompressionLevel { get; set; }
/// <summary>
/// The local export path.
/// </summary>
[Input("dest")]
public Input<string>? Dest { get; set; }
/// <summary>
/// Forcefully apply compression.
/// </summary>
[Input("forceCompression")]
public Input<bool>? ForceCompression { get; set; }
[Input("names")]
private InputList<string>? _names;
/// <summary>
/// Specify images names to export. This is overridden if tags are already specified.
/// </summary>
public InputList<string> Names
{
get => _names ?? (_names = new InputList<string>());
set => _names = value;
}
/// <summary>
/// Use OCI media types in exporter manifests.
/// </summary>
[Input("ociMediaTypes")]
public Input<bool>? OciMediaTypes { get; set; }
/// <summary>
/// Bundle the output into a tarball layout.
/// </summary>
[Input("tar")]
public Input<bool>? Tar { get; set; }
public ExportOCIArgs()
{
Compression = Pulumi.DockerBuild.CompressionType.Gzip;
CompressionLevel = 0;
ForceCompression = false;
OciMediaTypes = true;
Tar = true;
}
public static new ExportOCIArgs Empty => new ExportOCIArgs();
}
}

123
sdk/dotnet/Inputs/ExportRegistryArgs.cs generated Normal file
View File

@@ -0,0 +1,123 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class ExportRegistryArgs : global::Pulumi.ResourceArgs
{
[Input("annotations")]
private InputMap<string>? _annotations;
/// <summary>
/// Attach an arbitrary key/value annotation to the image.
/// </summary>
public InputMap<string> Annotations
{
get => _annotations ?? (_annotations = new InputMap<string>());
set => _annotations = value;
}
/// <summary>
/// The compression type to use.
/// </summary>
[Input("compression")]
public Input<Pulumi.DockerBuild.CompressionType>? Compression { get; set; }
/// <summary>
/// Compression level from 0 to 22.
/// </summary>
[Input("compressionLevel")]
public Input<int>? CompressionLevel { get; set; }
/// <summary>
/// Name image with `prefix@&lt;digest&gt;`, used for anonymous images.
/// </summary>
[Input("danglingNamePrefix")]
public Input<string>? DanglingNamePrefix { get; set; }
/// <summary>
/// Forcefully apply compression.
/// </summary>
[Input("forceCompression")]
public Input<bool>? ForceCompression { get; set; }
/// <summary>
/// Allow pushing to an insecure registry.
/// </summary>
[Input("insecure")]
public Input<bool>? Insecure { get; set; }
/// <summary>
/// Add additional canonical name (`name@&lt;digest&gt;`).
/// </summary>
[Input("nameCanonical")]
public Input<bool>? NameCanonical { get; set; }
[Input("names")]
private InputList<string>? _names;
/// <summary>
/// Specify images names to export. This is overridden if tags are already specified.
/// </summary>
public InputList<string> Names
{
get => _names ?? (_names = new InputList<string>());
set => _names = value;
}
/// <summary>
/// Use OCI media types in exporter manifests.
/// </summary>
[Input("ociMediaTypes")]
public Input<bool>? OciMediaTypes { get; set; }
/// <summary>
/// Push after creating the image. Defaults to `true`.
/// </summary>
[Input("push")]
public Input<bool>? Push { get; set; }
/// <summary>
/// Push image without name.
/// </summary>
[Input("pushByDigest")]
public Input<bool>? PushByDigest { get; set; }
/// <summary>
/// Store resulting images to the worker's image store and ensure all of
/// its blobs are in the content store.
///
/// Defaults to `true`.
///
/// Ignored if the worker doesn't have image store (when using OCI workers,
/// for example).
/// </summary>
[Input("store")]
public Input<bool>? Store { get; set; }
/// <summary>
/// Unpack image after creation (for use with containerd). Defaults to
/// `false`.
/// </summary>
[Input("unpack")]
public Input<bool>? Unpack { get; set; }
public ExportRegistryArgs()
{
Compression = Pulumi.DockerBuild.CompressionType.Gzip;
CompressionLevel = 0;
ForceCompression = false;
OciMediaTypes = false;
Push = true;
Store = true;
}
public static new ExportRegistryArgs Empty => new ExportRegistryArgs();
}
}

26
sdk/dotnet/Inputs/ExportTarArgs.cs generated Normal file
View File

@@ -0,0 +1,26 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class ExportTarArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// Output path.
/// </summary>
[Input("dest", required: true)]
public Input<string> Dest { get; set; } = null!;
public ExportTarArgs()
{
}
public static new ExportTarArgs Empty => new ExportTarArgs();
}
}

48
sdk/dotnet/Inputs/RegistryArgs.cs generated Normal file
View File

@@ -0,0 +1,48 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class RegistryArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// The registry's address (e.g. "docker.io").
/// </summary>
[Input("address", required: true)]
public Input<string> Address { get; set; } = null!;
[Input("password")]
private Input<string>? _password;
/// <summary>
/// Password or token for the registry.
/// </summary>
public Input<string>? Password
{
get => _password;
set
{
var emptySecret = Output.CreateSecret(0);
_password = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
}
}
/// <summary>
/// Username for the registry.
/// </summary>
[Input("username")]
public Input<string>? Username { get; set; }
public RegistryArgs()
{
}
public static new RegistryArgs Empty => new RegistryArgs();
}
}

48
sdk/dotnet/Inputs/SSHArgs.cs generated Normal file
View File

@@ -0,0 +1,48 @@
// *** WARNING: this file was generated by pulumi. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
namespace Pulumi.DockerBuild.Inputs
{
public sealed class SSHArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// Useful for distinguishing different servers that are part of the same
/// build.
///
/// A value of `default` is appropriate if only dealing with a single host.
/// </summary>
[Input("id", required: true)]
public Input<string> Id { get; set; } = null!;
[Input("paths")]
private InputList<string>? _paths;
/// <summary>
/// SSH agent socket or private keys to expose to the build under the given
/// identifier.
///
/// Defaults to `[$SSH_AUTH_SOCK]`.
///
/// Note that your keys are **not** automatically added when using an
/// agent. Run `ssh-add -l` locally to confirm which public keys are
/// visible to the agent; these will be exposed to your build.
/// </summary>
public InputList<string> Paths
{
get => _paths ?? (_paths = new InputList<string>());
set => _paths = value;
}
public SSHArgs()
{
}
public static new SSHArgs Empty => new SSHArgs();
}
}