UNPKG

@pulumi/f5bigip

Version:

A Pulumi package for creating and managing F5 BigIP resources.

243 lines (242 loc) • 11.6 kB
import * as pulumi from "@pulumi/pulumi"; /** * `f5bigip.ltm.PoolAttachment` Manages nodes membership in pools * * ## Example Usage * * There are two ways to use `f5bigip.ltm.PoolAttachment` resource for `node` attribute * * * It can be reference from `f5bigip.ltm.Node` (or) * * It can be specify directly with `ipv4:port`/`fqdn:port`/`ipv6.port` which will also create node and attach member to pool. * * > For adding IPv6 node/member to pool it should be specific in `node` attribute in format like `ipv6_address.port`. * IPv4 should be specified as `ipv4_address:port` * * ### Usage Pool attachment with node/member directly attaching to pool. * * node can be specified in format `ipv4:port` / `fqdn:port` / `ipv6.port` * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as f5bigip from "@pulumi/f5bigip"; * * const monitor = new f5bigip.ltm.Monitor("monitor", { * name: "/Common/terraform_monitor", * parent: "/Common/http", * send: "GET /some/path\x0d\n", * timeout: 999, * interval: 998, * }); * const pool = new f5bigip.ltm.Pool("pool", { * name: "/Common/terraform-pool", * loadBalancingMode: "round-robin", * monitors: [monitor.name], * allowSnat: "yes", * allowNat: "yes", * }); * // attaching ipv4 address with service port * const ipv4NodeAttach = new f5bigip.ltm.PoolAttachment("ipv4_node_attach", { * pool: pool.name, * node: "1.1.1.1:80", * }); * // attaching ipv6 address with service port * const ipv6NodeAttach = new f5bigip.ltm.PoolAttachment("ipv6_node_attach", { * pool: pool.name, * node: "2003::4.80", * }); * ``` * * ### Usage Pool attachment with node referenced from `f5bigip.ltm.Node` * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as f5bigip from "@pulumi/f5bigip"; * * const monitor = new f5bigip.ltm.Monitor("monitor", { * name: "/Common/terraform_monitor", * parent: "/Common/http", * send: "GET /some/path\x0d\n", * timeout: 999, * interval: 998, * }); * const pool = new f5bigip.ltm.Pool("pool", { * name: "/Common/terraform-pool", * loadBalancingMode: "round-robin", * monitors: [monitor.name], * allowSnat: "yes", * allowNat: "yes", * }); * const node = new f5bigip.ltm.Node("node", { * name: "/Common/terraform_node", * address: "192.168.30.2", * }); * const attachNode = new f5bigip.ltm.PoolAttachment("attach_node", { * pool: pool.name, * node: pulumi.interpolate`${node.name}:80`, * }); * ``` * * ## Importing * * An existing pool attachment (i.e. pool membership) can be imported into this resource by supplying both the pool full path, and the node full path with the relevant port. If the pool or node membership is not found, an error will be returned. An example is below: * * ```sh * $ terraform import bigip_ltm_pool_attachment.node-pool-attach \ * '{"pool": "/Common/terraform-pool", "node": "/Common/node1:80"}' * ``` */ export declare class PoolAttachment extends pulumi.CustomResource { /** * Get an existing PoolAttachment 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?: PoolAttachmentState, opts?: pulumi.CustomResourceOptions): PoolAttachment; /** * Returns true if the given object is an instance of PoolAttachment. 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 PoolAttachment; /** * Specifies a maximum established connection limit for a pool member or node.The default is 0, meaning that there is no limit to the number of connections. */ readonly connectionLimit: pulumi.Output<number>; /** * Specifies the maximum number of connections-per-second allowed for a pool member,The default is 0. */ readonly connectionRateLimit: pulumi.Output<string>; /** * Specifies the fixed ratio value used for a node during ratio load balancing. */ readonly dynamicRatio: pulumi.Output<number>; /** * Specifies whether the system automatically creates ephemeral nodes using the IP addresses returned by the resolution of a DNS query for a node defined by an FQDN. The default is enabled */ readonly fqdnAutopopulate: pulumi.Output<string | undefined>; /** * Specifies the health monitors that the system uses to monitor this pool member,value can be `none` (or) `default` (or) list of monitors joined with and ( ex: `/Common/test_monitor_pa_tc1 and /Common/gateway_icmp`). */ readonly monitor: pulumi.Output<string>; /** * Pool member address/fqdn with service port, (ex: `1.1.1.1:80/www.google.com:80`). (Note: Member will be in same partition of Pool) */ readonly node: pulumi.Output<string>; /** * Name of the pool to which members should be attached,it should be "full path".The full path is the combination of the partition + name of the pool.(For example `/Common/my-pool`) or partition + directory + name of the pool (For example `/Common/test/my-pool`).When including directory in fullpath we have to make sure it is created in the given partition before using it. */ readonly pool: pulumi.Output<string>; /** * Specifies a number representing the priority group for the pool member. The default is 0, meaning that the member has no priority */ readonly priorityGroup: pulumi.Output<number>; /** * "Specifies the ratio weight to assign to the pool member. Valid values range from 1 through 65535. The default is 1, which means that each pool member has an equal ratio proportion.". */ readonly ratio: pulumi.Output<number>; /** * Specifies the state the pool member should be in,value can be `enabled` (or) `disabled` (or) `forcedOffline`). */ readonly state: pulumi.Output<string | undefined>; /** * Create a PoolAttachment 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: PoolAttachmentArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering PoolAttachment resources. */ export interface PoolAttachmentState { /** * Specifies a maximum established connection limit for a pool member or node.The default is 0, meaning that there is no limit to the number of connections. */ connectionLimit?: pulumi.Input<number>; /** * Specifies the maximum number of connections-per-second allowed for a pool member,The default is 0. */ connectionRateLimit?: pulumi.Input<string>; /** * Specifies the fixed ratio value used for a node during ratio load balancing. */ dynamicRatio?: pulumi.Input<number>; /** * Specifies whether the system automatically creates ephemeral nodes using the IP addresses returned by the resolution of a DNS query for a node defined by an FQDN. The default is enabled */ fqdnAutopopulate?: pulumi.Input<string>; /** * Specifies the health monitors that the system uses to monitor this pool member,value can be `none` (or) `default` (or) list of monitors joined with and ( ex: `/Common/test_monitor_pa_tc1 and /Common/gateway_icmp`). */ monitor?: pulumi.Input<string>; /** * Pool member address/fqdn with service port, (ex: `1.1.1.1:80/www.google.com:80`). (Note: Member will be in same partition of Pool) */ node?: pulumi.Input<string>; /** * Name of the pool to which members should be attached,it should be "full path".The full path is the combination of the partition + name of the pool.(For example `/Common/my-pool`) or partition + directory + name of the pool (For example `/Common/test/my-pool`).When including directory in fullpath we have to make sure it is created in the given partition before using it. */ pool?: pulumi.Input<string>; /** * Specifies a number representing the priority group for the pool member. The default is 0, meaning that the member has no priority */ priorityGroup?: pulumi.Input<number>; /** * "Specifies the ratio weight to assign to the pool member. Valid values range from 1 through 65535. The default is 1, which means that each pool member has an equal ratio proportion.". */ ratio?: pulumi.Input<number>; /** * Specifies the state the pool member should be in,value can be `enabled` (or) `disabled` (or) `forcedOffline`). */ state?: pulumi.Input<string>; } /** * The set of arguments for constructing a PoolAttachment resource. */ export interface PoolAttachmentArgs { /** * Specifies a maximum established connection limit for a pool member or node.The default is 0, meaning that there is no limit to the number of connections. */ connectionLimit?: pulumi.Input<number>; /** * Specifies the maximum number of connections-per-second allowed for a pool member,The default is 0. */ connectionRateLimit?: pulumi.Input<string>; /** * Specifies the fixed ratio value used for a node during ratio load balancing. */ dynamicRatio?: pulumi.Input<number>; /** * Specifies whether the system automatically creates ephemeral nodes using the IP addresses returned by the resolution of a DNS query for a node defined by an FQDN. The default is enabled */ fqdnAutopopulate?: pulumi.Input<string>; /** * Specifies the health monitors that the system uses to monitor this pool member,value can be `none` (or) `default` (or) list of monitors joined with and ( ex: `/Common/test_monitor_pa_tc1 and /Common/gateway_icmp`). */ monitor?: pulumi.Input<string>; /** * Pool member address/fqdn with service port, (ex: `1.1.1.1:80/www.google.com:80`). (Note: Member will be in same partition of Pool) */ node: pulumi.Input<string>; /** * Name of the pool to which members should be attached,it should be "full path".The full path is the combination of the partition + name of the pool.(For example `/Common/my-pool`) or partition + directory + name of the pool (For example `/Common/test/my-pool`).When including directory in fullpath we have to make sure it is created in the given partition before using it. */ pool: pulumi.Input<string>; /** * Specifies a number representing the priority group for the pool member. The default is 0, meaning that the member has no priority */ priorityGroup?: pulumi.Input<number>; /** * "Specifies the ratio weight to assign to the pool member. Valid values range from 1 through 65535. The default is 1, which means that each pool member has an equal ratio proportion.". */ ratio?: pulumi.Input<number>; /** * Specifies the state the pool member should be in,value can be `enabled` (or) `disabled` (or) `forcedOffline`). */ state?: pulumi.Input<string>; }