Skip to content

Commit

Permalink
Merge pull request #1 from F5Networks/devel
Browse files Browse the repository at this point in the history
adding bigip next provider changes
  • Loading branch information
RavinderReddyF5 committed Mar 29, 2024
2 parents edf4062 + 51e0c35 commit e6481e5
Show file tree
Hide file tree
Showing 2,716 changed files with 729,506 additions and 0 deletions.
43 changes: 43 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
*.dll
*.exe
.DS_Store
example.tf
terraform.tfplan
terraform.tfstate
*.tfvars
vendor/.DS_Store
terraform-provider-bigipnext
bin/
dist/
modules-dev/
/pkg/
website/.vagrant
website/.bundle
website/build
website/node_modules
.vagrant/
*.backup
./*.tfstate
.terraform/
*.log
*.bak
*~
.*.swp
.idea
*.iml
*.test
*.iml
*.tf
*.pem
*.pub
*.back
*.goback

website/vendor

# Test exclusions
!command/test-fixtures/**/*.tfstate
!command/test-fixtures/**/.terraform/

# Keep windows files with windows line endings
*.winfile eol=crlf
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## 0.1.0 (Unreleased)

FEATURES:
28 changes: 28 additions & 0 deletions docs/data-sources/cm_device_inventory.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "bigipnext_cm_device_inventory Data Source - terraform-provider-bigipnext"
subcategory: ""
description: |-
Get information about the VLANs on f5os platform.
Use this data source to get information, such as vlan
---

# bigipnext_cm_device_inventory (Data Source)

Get information about the VLANs on f5os platform.

Use this data source to get information, such as vlan

## Example Usage

```terraform
data "bigipnext_cm_device_inventory" "test" {}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Read-Only

- `device_inventory` (String) Unique identifier of this data source: hashing of the certificates in the chain.
- `id` (String) Unique identifier of this data source: hashing of the certificates in the chain.
31 changes: 31 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "bigipnext Provider"
subcategory: ""
description: |-
Provider plugin to interact with BIG-IP Next Central Manager(CM) Using OpenAPI
---

# bigipnext Provider

Provider plugin to interact with BIG-IP Next Central Manager(CM) Using OpenAPI

## Example Usage

```terraform
provider "bigipnext" {
username = "education"
password = "test123"
host = "http://localhost:19090"
}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Optional

- `host` (String) URI for BigipNext Device. May also be provided via `BIGIPNEXT_HOST` environment variable.
- `password` (String, Sensitive) Password for BigipNext Device. May also be provided via `BIGIPNEXT_PASSWORD` environment variable.
- `port` (Number) Port Number to be used to make API calls to HOST
- `username` (String) Username for BigipNext Device. May also be provided via `BIGIPNEXT_USERNAME` environment variable.
75 changes: 75 additions & 0 deletions docs/resources/cm_as3_deploy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "bigipnext_cm_as3_deploy Resource - terraform-provider-bigipnext"
subcategory: ""
description: |-
Deploy an AS3 declaration to a specified instance managed by BIG-IP Next Central Manager. If the deployment already exists on a different instance, the application service is removed from the existing instance before deploying to the new instance
---

# bigipnext_cm_as3_deploy (Resource)

Deploy an AS3 declaration to a specified instance managed by BIG-IP Next Central Manager. If the deployment already exists on a different instance, the application service is removed from the existing instance before deploying to the new instance

## Example Usage

```terraform
resource "bigipnext_cm_as3_deploy" "test" {
target_address = "10.xxx.xxx.xxx"
as3_json = <<EOT
{
"class": "ADC",
"schemaVersion": "3.45.0",
"id": "example-declaration-01",
"label": "Sample 1",
"remark": "Simple HTTP application with round robin pool",
"next-cm-tenant01": {
"class": "Tenant",
"next-cm-app01": {
"class": "Application",
"template": "http",
"serviceMain": {
"class": "Service_HTTP",
"virtualAddresses": [
"10.0.12.10"
],
"pool": "next-cm-pool01"
},
"next-cm-pool01": {
"class": "Pool",
"monitors": [
"http"
],
"members": [
{
"servicePort": 80,
"serverAddresses": [
"192.0.2.100",
"192.0.2.110"
]
}
]
}
}
}
}
EOT
}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `as3_json` (String) AS3 Json Declaration to be post onto BIG-IP Next
- `target_address` (String) Target Address of the Device Inventory on BIG-IP Next CM.

### Optional

- `timeout` (Number) The number of seconds to wait for instance deployment to finish.

### Read-Only

- `deploy_id` (String) Deploy ID of the AS3 declaration on BIG-IP CM Next
- `draft_id` (String) Draft ID of the AS3 declaration on BIG-IP CM Next
- `id` (String) Unique Identifier for the resource
36 changes: 36 additions & 0 deletions docs/resources/cm_backup_restore.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "bigipnext_cm_backup_restore Resource - terraform-provider-bigipnext"
subcategory: ""
description: |-
Resource used to manage(CRUD) backup and restore of BIG-IP Next instances on BIG-IP CM.
---

# bigipnext_cm_backup_restore (Resource)

Resource used to manage(CRUD) backup and restore of BIG-IP Next instances on BIG-IP CM.



<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `backup_password` (String, Sensitive) User password for the backup file.
- `file_name` (String) Name of the backup file to create, or use.
- `operation` (String) Type of operation to perform.

### Optional

- `device_hostname` (String) Hostname of the device managed by BIG-IP Next CM.
Parameter required for create operations.
- `device_ip` (String) IP Address of the device managed by BIG-IP Next CM.
Parameter required for create operations.
- `timeout` (Number) The number of seconds to wait for backup or restore operation to complete.

### Read-Only

- `backup_date` (String) The timestamp when backup file was created. In ISO 8601 format
- `instance_id` (String) UUID of the NEXT instance which config was backed up or restored.
- `restore_date` (String) The timestamp when restore operation was performed. In ISO 8601 format
64 changes: 64 additions & 0 deletions docs/resources/cm_certificate.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "bigipnext_cm_certificate Resource - terraform-provider-bigipnext"
subcategory: ""
description: |-
Resource used to manage(CRUD) certificate management resources onto BIG-IP Next CM.
---

# bigipnext_cm_certificate (Resource)

Resource used to manage(CRUD) certificate management resources onto BIG-IP Next CM.

## Example Usage

```terraform
resource "bigipnext_cm_certitficate" "test" {
name = "test"
cert_text = "-----BEGIN CERTIFICATE-----MIIFYjCCA0oCCQCEqd7Lp8dxVDANBgkqhkiG9w0BAQsFADBzMQswCQYDVQQGEwJSVTELMAkGA1UECAwCTFUxDjAMBgNVBAcMBVBhdGNoMQ8wDQYDVQQKDAZVcGRhdGUxDzANBgNVBAsMBlVwZGF0ZTELMAkGA1UEAwwCdXAxGDAWBgkqhkiG9w0BCQEWCWlwQHVwLmNvbTAeFw0yMzExMDMwNTUwNDNaFw0yNDExMDIwNTUwNDNaMHMxCzAJBgNVBAYTAlJVMQswCQYDVQQIDAJMVTEOMAwGA1UEBwwFUGF0Y2gxDzANBgNVBAoMBlVwZGF0ZTEPMA0GA1UECwwGVXBkYXRlMQswCQYDVQQDDAJ1cDEYMBYGCSqGSIb3DQEJARYJaXBAdXAuY29tMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5M0EI59m0so215qeWFfalwikf0jlcKqiIdCsnRVml1RVgxUC3/CQrmkfot6UJKq62UITQlrIXPCt3eRERa5JuAxayducq0ygPxnE+qMGPb+C4vSuRnhQj9U8OmgPKp4OIidjkb2UJ1hLcqdMQzh4gyBTYUPoKYGHHIgQ/bTUq13zqaT/HtXdnO+OQmeyCuPaSPBU-----END CERTIFICATE-----"
key_text = "-----BEGIN ENCRYPTED PRIVATE KEY-----MIIJnzBJBgkqhkiG9w0BBQ0wPDAbBgkqhkiG9w0BBQwwDgQIqx+JNssqck0CAggAMB0GCWCGSAFlAwQBKgQQqw1PviHJvexXVB8ewne6GQSCCVA7Htfh73O1bmwh8Dkt2sjQXrDhSpLadDp35qMgUvcMvJFicxEfiX+/ON98//lIa9bbF0CN12jM1R0cmY24/6lYgMMgFpRSN2tIxOTcF2Q8pucxN8TZDZWC04kuMyJDTWUxmVOm2/yJGL4a4LH11ExHPkspeWviyUFv44vCIu/R4kfxjb+/dn6MzfiDNK4rS75YnpcvvsS4NHWxQLEFzr+bEMZq2YRWrZ3gHoiF53JHac2OKur/bIH0ylH6AzIkg2sPo+JFtWlu9SK1t9QQ6XNh/4O2ovnL3FiOp9JzKgGRgwRxwJm8jXHXec4AbkzAMYIcL6NmpBoXEIQBSP1lGoe3r6tj+E0MCM+51MilAfbY4wlyf7doTbZRjIWW7zxwA5sT275DDPl7DPXisdIijq6XjYXMPD5u1oxqRNbFRynNIly1JOwD5gKtd/Lcp3c8zXT3XRUzkfCudNjcqdIVu4zRdRmaPCCQmlkB1WBYNuzVtNCCGbSQSQfvfLyZs7LjLSkt/ZYVVUwySI+drF//DqF+NjL2RKjs1xibbrWv2sgW1Q==-----END ENCRYPTED PRIVATE KEY-----"
key_passphrase = "P@ss"
cert_passphrase = "P@ssss"
import_type = "PKCS12"
}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `common_name` (String) The fully qualified domain name of your server. The common_name of the certificate cannot be empty
- `duration_in_days` (Number) duration in days
- `name` (String) The unique user-given name of the certificate. Certificate names cannot contain spaces or special characters. The allowed characters are a-z, A-Z, 0-9, dot(.), dash (-) and underscore (_). Names starting with only a-z, A-Z.

### Optional

- `administrator_email` (String) An administrator email to contact your organization
- `challenge_password` (String) challenge password
- `country` (List of String) The country where your organization is located. An SSL certificate country code is a two-letter code that's used when you generate a CSR. It is Array of strings
- `division` (List of String) The division of your organization handling the certificate. It is Array of strings
- `email` (List of String) An email address to contact your organization. It is Array of strings
- `issuer` (String) issuer details
- `key_curve_name` (String) Supported curve names for ECDSA- secp384r1, prime256v1
- `key_passphrase` (String) key passphrase, A passphrase is a word or phrase that protects private key files, It prevents unauthorized users from encrypting them. Usually it's just the secret encryption/decryption key used for Ciphers.
- `key_security_type` (String) Specifies whether key is password protected
- `key_size` (Number) Size of key - the number of bits in a key used by a cryptographic algorithm. Supported key size for RSA - 2048, 3072, 4096
- `key_type` (String) Specifies Key type to be either `RSA` or `ECDSA`
- `locality` (List of String) The locality where your organization is located. It is Array of strings
- `organization` (List of String) The legal name of your organization. It is Array of strings
- `state` (List of String) The state where your organization is located. It is Array of strings
- `subject_alternative_name` (String) A SAN or subject alternative name is a structured way to indicate all of the domain names and IP addresses that are secured by the certificate

### Read-Only

- `id` (String) Unique Identifier for the resource

## Import

Import is supported using the following syntax:

```shell
# Certificate can be imported by specifying the numeric identifier.
terraform import bigipnext_cm_import_certitficate.test d4d9ad2f-182c-89a2-0c2a-29838b328ad0
```
81 changes: 81 additions & 0 deletions docs/resources/cm_deploy_f5os.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
---
# generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "bigipnext_cm_deploy_f5os Resource - terraform-provider-bigipnext"
subcategory: ""
description: |-
Resource used to Deploy New BIG-IP-Next Instance on F5OS platforms like rSeries/velos using Next Image available on F5OS Platform
---

# bigipnext_cm_deploy_f5os (Resource)

Resource used to Deploy New `BIG-IP-Next` Instance on F5OS platforms like rSeries/velos using Next Image available on F5OS Platform

## Example Usage

```terraform
resource "bigipnext_cm_deploy_f5os" "rseries01" {
f5os_provider = {
provider_name = "myrseries"
provider_type = "rseries"
}
instance = {
instance_hostname = "rseriesravitest04"
management_address = "10.xxx.xxx.xxx"
management_prefix = 24
management_gateway = "10.xxx.xxx.xxx"
management_user = "admin-cm"
management_password = "F5test@123"
vlan_ids = [27, 28, 29]
tenant_deployment_file = "BIG-IP-Next-20.1.0-2.279.0+0.0.18.yaml"
tenant_image_name = "BIG-IP-Next-20.1.0-2.279.0+0.0.18"
}
}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `f5os_provider` (Attributes) (see [below for nested schema](#nestedatt--f5os_provider))
- `instance` (Attributes) (see [below for nested schema](#nestedatt--instance))

### Optional

- `timeout` (Number) The number of seconds to wait for instance deployment to finish.

### Read-Only

- `id` (String) Unique Identifier for the resource
- `provider_id` (String) Unique Identifier for the F5OS provider

<a id="nestedatt--f5os_provider"></a>
### Nested Schema for `f5os_provider`

Required:

- `provider_name` (String) Name of F5OS provider to be used for deploying Instances
- `provider_type` (String) The Type of F5OS provider(rseries/velos)


<a id="nestedatt--instance"></a>
### Nested Schema for `instance`

Required:

- `instance_hostname` (String) Name of BIG-IP-Next Instance to be Deployed on F5OS(velos/rSeries),it should be `unique` string value
- `management_address` (String) Management address to be used for deployed BIG-IP Next instance in F5OS Provider
- `management_gateway` (String) Management gateway address to be used for deployed BIG-IP Next instance in F5OS Provider
- `management_password` (String, Sensitive) Management password of deployed BIG-IP Next instance in F5OS Provider
- `management_prefix` (Number) Management address prefix to be used for deployed BIG-IP Next instance in F5OS Provider.
- `management_user` (String) Management username of deployed BIG-IP Next instance in F5OS Provider
- `tenant_deployment_file` (String) Name of the tenant deployment file to be used to deploy instance in F5OS Provider
- `tenant_image_name` (String) Name of tenant image to be used to deployinstance in F5OS Provider

Optional:

- `cpu_cores` (Number) The number of virtual processor cores to configure on the BIG-IP-Next Instance.Default is `4`.
- `disk_size` (Number) The amount of disk size in GigBytes to configure on the BIG-IP-Next Instance.Default is `30`.
- `vlan_ids` (List of Number) List of integers. Specifies on which blades nodes the tenants are deployed.
Required for create operations.
For single blade platforms like rSeries only the value of 1 should be provided.
Loading

0 comments on commit e6481e5

Please sign in to comment.