@pulumi/consul
Version:
A Pulumi package for creating and managing consul resources.
293 lines (292 loc) • 12.6 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "./types/input";
import * as outputs from "./types/output";
/**
* The `consul.ConfigEntryServiceDefaults` resource configures a [service defaults](https://developer.hashicorp.com/consul/docs/connect/config-entries/service-defaults) config entry that contains common configuration settings for service mesh services, such as upstreams and gateways.
*
* ## Example Usage
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as consul from "@pulumi/consul";
*
* const dashboard = new consul.ConfigEntryServiceDefaults("dashboard", {
* name: "dashboard",
* upstreamConfigs: [{
* defaults: {
* meshGateways: {
* mode: "local",
* },
* limits: {
* maxConnections: 512,
* maxPendingRequests: 512,
* maxConcurrentRequests: 512,
* },
* },
* overrides: [{
* name: "counting",
* meshGateways: [{
* mode: "remote",
* }],
* }],
* }],
* });
* ```
*/
export declare class ConfigEntryServiceDefaults extends pulumi.CustomResource {
/**
* Get an existing ConfigEntryServiceDefaults resource's state with the given name, ID, and optional extra
* properties used to qualify the lookup.
*
* @param name The _unique_ name of the resulting resource.
* @param id The _unique_ provider ID of the resource to lookup.
* @param state Any extra arguments used during the lookup.
* @param opts Optional settings to control the behavior of the CustomResource.
*/
static get(name: string, id: pulumi.Input<pulumi.ID>, state?: ConfigEntryServiceDefaultsState, opts?: pulumi.CustomResourceOptions): ConfigEntryServiceDefaults;
/**
* Returns true if the given object is an instance of ConfigEntryServiceDefaults. This is designed to work even
* when multiple copies of the Pulumi SDK have been loaded into the same process.
*/
static isInstance(obj: any): obj is ConfigEntryServiceDefaults;
/**
* Specifies the strategy for allocating inbound connections to the service across Envoy proxy threads.
*/
readonly balanceInboundConnections: pulumi.Output<string | undefined>;
/**
* Configures the destination for service traffic through terminating gateways.
*/
readonly destinations: pulumi.Output<outputs.ConfigEntryServiceDefaultsDestination[] | undefined>;
/**
* List of extensions to modify Envoy proxy configuration.
*/
readonly envoyExtensions: pulumi.Output<outputs.ConfigEntryServiceDefaultsEnvoyExtension[] | undefined>;
/**
* Specifies default configurations for exposing HTTP paths through Envoy.
*/
readonly exposes: pulumi.Output<outputs.ConfigEntryServiceDefaultsExpose[]>;
/**
* Specifies the TLS server name indication (SNI) when federating with an external system.
*/
readonly externalSni: pulumi.Output<string | undefined>;
/**
* Specifies the number of milliseconds allowed for establishing connections to the local application instance before timing out.
*/
readonly localConnectTimeoutMs: pulumi.Output<number | undefined>;
/**
* Specifies the timeout for HTTP requests to the local application instance.
*/
readonly localRequestTimeoutMs: pulumi.Output<number | undefined>;
/**
* Specifies the maximum number of concurrent inbound connections to each service instance.
*/
readonly maxInboundConnections: pulumi.Output<number | undefined>;
/**
* Specifies the default mesh gateway mode field for the service.
*/
readonly meshGateways: pulumi.Output<outputs.ConfigEntryServiceDefaultsMeshGateway[] | undefined>;
/**
* Specifies a set of custom key-value pairs to add to the Consul KV store.
*/
readonly meta: pulumi.Output<{
[key: string]: string;
} | undefined>;
/**
* Specifies a mode for how the service directs inbound and outbound traffic.
*/
readonly mode: pulumi.Output<string | undefined>;
/**
* Controls whether mutual TLS is required for incoming connections to this service. This setting is only supported for services with transparent proxy enabled.
*/
readonly mutualTlsMode: pulumi.Output<string | undefined>;
/**
* Specifies the name of the service you are setting the defaults for.
*/
readonly name: pulumi.Output<string>;
/**
* Specifies the Consul namespace that the configuration entry applies to.
*/
readonly namespace: pulumi.Output<string | undefined>;
/**
* Specifies the name of the name of the Consul admin partition that the configuration entry applies to. Refer to Admin Partitions for additional information.
*/
readonly partition: pulumi.Output<string | undefined>;
/**
* Specifies the default protocol for the service.
*/
readonly protocol: pulumi.Output<string>;
/**
* Controls configurations specific to proxies in transparent mode. Refer to Transparent Proxy Mode for additional information.
*/
readonly transparentProxies: pulumi.Output<outputs.ConfigEntryServiceDefaultsTransparentProxy[] | undefined>;
/**
* Controls default upstream connection settings and custom overrides for individual upstream services.
*/
readonly upstreamConfigs: pulumi.Output<outputs.ConfigEntryServiceDefaultsUpstreamConfig[] | undefined>;
/**
* Create a ConfigEntryServiceDefaults resource with the given unique name, arguments, and options.
*
* @param name The _unique_ name of the resource.
* @param args The arguments to use to populate this resource's properties.
* @param opts A bag of options that control this resource's behavior.
*/
constructor(name: string, args: ConfigEntryServiceDefaultsArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering ConfigEntryServiceDefaults resources.
*/
export interface ConfigEntryServiceDefaultsState {
/**
* Specifies the strategy for allocating inbound connections to the service across Envoy proxy threads.
*/
balanceInboundConnections?: pulumi.Input<string>;
/**
* Configures the destination for service traffic through terminating gateways.
*/
destinations?: pulumi.Input<pulumi.Input<inputs.ConfigEntryServiceDefaultsDestination>[]>;
/**
* List of extensions to modify Envoy proxy configuration.
*/
envoyExtensions?: pulumi.Input<pulumi.Input<inputs.ConfigEntryServiceDefaultsEnvoyExtension>[]>;
/**
* Specifies default configurations for exposing HTTP paths through Envoy.
*/
exposes?: pulumi.Input<pulumi.Input<inputs.ConfigEntryServiceDefaultsExpose>[]>;
/**
* Specifies the TLS server name indication (SNI) when federating with an external system.
*/
externalSni?: pulumi.Input<string>;
/**
* Specifies the number of milliseconds allowed for establishing connections to the local application instance before timing out.
*/
localConnectTimeoutMs?: pulumi.Input<number>;
/**
* Specifies the timeout for HTTP requests to the local application instance.
*/
localRequestTimeoutMs?: pulumi.Input<number>;
/**
* Specifies the maximum number of concurrent inbound connections to each service instance.
*/
maxInboundConnections?: pulumi.Input<number>;
/**
* Specifies the default mesh gateway mode field for the service.
*/
meshGateways?: pulumi.Input<pulumi.Input<inputs.ConfigEntryServiceDefaultsMeshGateway>[]>;
/**
* Specifies a set of custom key-value pairs to add to the Consul KV store.
*/
meta?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Specifies a mode for how the service directs inbound and outbound traffic.
*/
mode?: pulumi.Input<string>;
/**
* Controls whether mutual TLS is required for incoming connections to this service. This setting is only supported for services with transparent proxy enabled.
*/
mutualTlsMode?: pulumi.Input<string>;
/**
* Specifies the name of the service you are setting the defaults for.
*/
name?: pulumi.Input<string>;
/**
* Specifies the Consul namespace that the configuration entry applies to.
*/
namespace?: pulumi.Input<string>;
/**
* Specifies the name of the name of the Consul admin partition that the configuration entry applies to. Refer to Admin Partitions for additional information.
*/
partition?: pulumi.Input<string>;
/**
* Specifies the default protocol for the service.
*/
protocol?: pulumi.Input<string>;
/**
* Controls configurations specific to proxies in transparent mode. Refer to Transparent Proxy Mode for additional information.
*/
transparentProxies?: pulumi.Input<pulumi.Input<inputs.ConfigEntryServiceDefaultsTransparentProxy>[]>;
/**
* Controls default upstream connection settings and custom overrides for individual upstream services.
*/
upstreamConfigs?: pulumi.Input<pulumi.Input<inputs.ConfigEntryServiceDefaultsUpstreamConfig>[]>;
}
/**
* The set of arguments for constructing a ConfigEntryServiceDefaults resource.
*/
export interface ConfigEntryServiceDefaultsArgs {
/**
* Specifies the strategy for allocating inbound connections to the service across Envoy proxy threads.
*/
balanceInboundConnections?: pulumi.Input<string>;
/**
* Configures the destination for service traffic through terminating gateways.
*/
destinations?: pulumi.Input<pulumi.Input<inputs.ConfigEntryServiceDefaultsDestination>[]>;
/**
* List of extensions to modify Envoy proxy configuration.
*/
envoyExtensions?: pulumi.Input<pulumi.Input<inputs.ConfigEntryServiceDefaultsEnvoyExtension>[]>;
/**
* Specifies default configurations for exposing HTTP paths through Envoy.
*/
exposes: pulumi.Input<pulumi.Input<inputs.ConfigEntryServiceDefaultsExpose>[]>;
/**
* Specifies the TLS server name indication (SNI) when federating with an external system.
*/
externalSni?: pulumi.Input<string>;
/**
* Specifies the number of milliseconds allowed for establishing connections to the local application instance before timing out.
*/
localConnectTimeoutMs?: pulumi.Input<number>;
/**
* Specifies the timeout for HTTP requests to the local application instance.
*/
localRequestTimeoutMs?: pulumi.Input<number>;
/**
* Specifies the maximum number of concurrent inbound connections to each service instance.
*/
maxInboundConnections?: pulumi.Input<number>;
/**
* Specifies the default mesh gateway mode field for the service.
*/
meshGateways?: pulumi.Input<pulumi.Input<inputs.ConfigEntryServiceDefaultsMeshGateway>[]>;
/**
* Specifies a set of custom key-value pairs to add to the Consul KV store.
*/
meta?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Specifies a mode for how the service directs inbound and outbound traffic.
*/
mode?: pulumi.Input<string>;
/**
* Controls whether mutual TLS is required for incoming connections to this service. This setting is only supported for services with transparent proxy enabled.
*/
mutualTlsMode?: pulumi.Input<string>;
/**
* Specifies the name of the service you are setting the defaults for.
*/
name?: pulumi.Input<string>;
/**
* Specifies the Consul namespace that the configuration entry applies to.
*/
namespace?: pulumi.Input<string>;
/**
* Specifies the name of the name of the Consul admin partition that the configuration entry applies to. Refer to Admin Partitions for additional information.
*/
partition?: pulumi.Input<string>;
/**
* Specifies the default protocol for the service.
*/
protocol: pulumi.Input<string>;
/**
* Controls configurations specific to proxies in transparent mode. Refer to Transparent Proxy Mode for additional information.
*/
transparentProxies?: pulumi.Input<pulumi.Input<inputs.ConfigEntryServiceDefaultsTransparentProxy>[]>;
/**
* Controls default upstream connection settings and custom overrides for individual upstream services.
*/
upstreamConfigs?: pulumi.Input<pulumi.Input<inputs.ConfigEntryServiceDefaultsUpstreamConfig>[]>;
}