1. Packages
  2. Bigip Provider
f5 BIG-IP v3.17.6 published on Monday, Oct 28, 2024 by Pulumi

Bigip Provider

f5bigip logo
f5 BIG-IP v3.17.6 published on Monday, Oct 28, 2024 by Pulumi

    Installation

    The bigip provider is available as a package in all Pulumi languages:

    Overview

    Use the F5 BIG-IP Pulumi Provider to manage and provision your BIG-IP configurations in Pulumi. Using BIG-IP Provider you can manage LTM(Local Traffic Manager),Network,System objects and it also supports AS3/DO integration.

    Requirements

    This provider uses the iControlREST API. All the resources are validated with BigIP v12.1.1 and above.

    NOTE For AWAF resources, F5 BIG-IP version should be > v16.x , and ASM need to be provisioned.

    Example Usage

    # Pulumi.yaml provider configuration file
    name: configuration-example
    runtime: nodejs
    config:
        bigip:address:
            value: 'TODO: var.hostname'
        bigip:password:
            value: 'TODO: var.password'
        bigip:username:
            value: 'TODO: var.username'
    
    import * as pulumi from "@pulumi/pulumi";
    
    const config = new pulumi.Config();
    const hostname = config.requireObject("hostname");
    const username = config.requireObject("username");
    const password = config.requireObject("password");
    
    # Pulumi.yaml provider configuration file
    name: configuration-example
    runtime: python
    config:
        bigip:address:
            value: 'TODO: var.hostname'
        bigip:password:
            value: 'TODO: var.password'
        bigip:username:
            value: 'TODO: var.username'
    
    import pulumi
    
    config = pulumi.Config()
    hostname = config.require_object("hostname")
    username = config.require_object("username")
    password = config.require_object("password")
    
    # Pulumi.yaml provider configuration file
    name: configuration-example
    runtime: dotnet
    config:
        bigip:address:
            value: 'TODO: var.hostname'
        bigip:password:
            value: 'TODO: var.password'
        bigip:username:
            value: 'TODO: var.username'
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    
    return await Deployment.RunAsync(() =>
    {
        var config = new Config();
        var hostname = config.RequireObject<dynamic>("hostname");
        var username = config.RequireObject<dynamic>("username");
        var password = config.RequireObject<dynamic>("password");
    });
    
    # Pulumi.yaml provider configuration file
    name: configuration-example
    runtime: go
    config:
        bigip:address:
            value: 'TODO: var.hostname'
        bigip:password:
            value: 'TODO: var.password'
        bigip:username:
            value: 'TODO: var.username'
    
    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		cfg := config.New(ctx, "")
    		hostname := cfg.RequireObject("hostname")
    		username := cfg.RequireObject("username")
    		password := cfg.RequireObject("password")
    		return nil
    	})
    }
    
    # Pulumi.yaml provider configuration file
    name: configuration-example
    runtime: yaml
    config:
        bigip:address:
            value: 'TODO: var.hostname'
        bigip:password:
            value: 'TODO: var.password'
        bigip:username:
            value: 'TODO: var.username'
    
    configuration:
      hostname:
        type: dynamic
      username:
        type: dynamic
      password:
        type: dynamic
    
    # Pulumi.yaml provider configuration file
    name: configuration-example
    runtime: java
    config:
        bigip:address:
            value: 'TODO: var.hostname'
        bigip:password:
            value: 'TODO: var.password'
        bigip:username:
            value: 'TODO: var.username'
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            final var config = ctx.config();
            final var hostname = config.get("hostname");
            final var username = config.get("username");
            final var password = config.get("password");
        }
    }
    

    Configuration Reference

    • address - (type string) Domain name or IP address of the BIG-IP. Can be set via the BIGIP_HOST environment variable.
    • username - (type string) BIG-IP Username for authentication. Can be set via the BIGIP_USER environment variable.
    • password - (type string) BIG-IP Password for authentication. Can be set via the BIGIP_PASSWORD environment variable.
    • tokenAuth - (Optional, Default true) Enable to use token authentication. Can be set via the BIGIP_TOKEN_AUTH environment variable.
    • tokenValue - (Optional) A token generated outside the provider, in place of password
    • apiTimeout - (Optional, type int) A timeout for AS3 requests, represented as a number of seconds.
    • tokenTimeout - (Optional, type int) A lifespan to request for the AS3 auth token, represented as a number of seconds.
    • apiRetries - (Optional, type int) Amount of times to retry AS3 API requests.
    • loginRef - (Optional,Default tmos) Login reference for token authentication (see BIG-IP REST docs for details). May be set via the BIGIP_LOGIN_REF environment variable.
    • port - (Optional) Management Port to connect to BIG-IP,this is mainly required if we have single nic BIG-IP in AWS/Azure/GCP (or) Management port other than 443. Can be set via BIGIP_PORT environment variable.
    • validateCertsDisable - (Optional, Default true) If set to true, Disables TLS certificate check on BIG-IP. Can be set via the BIGIP_VERIFY_CERT_DISABLE environment variable.
    • trustedCertPath - (type string) Provides Certificate Path to be used TLS Validate.It will be required only if validateCertsDisable set to false.Can be set via the BIGIP_TRUSTED_CERT_PATH environment variable.

    Note For BIG-IQ resources these provider credentials address,username,password can be set to BIG-IQ credentials.

    Note The F5 BIG-IP provider gathers non-identifiable usage data for the purposes of improving the product as outlined in the end user license agreement for BIG-IP. To opt out of data collection, use the following : export TEEM_DISABLE=true

    f5bigip logo
    f5 BIG-IP v3.17.6 published on Monday, Oct 28, 2024 by Pulumi