@robinmordasiewicz/f5xc-terraform-mcp 3.11.0 → 3.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/docs/data-sources/bgp.md +2 -2
- package/dist/docs/data-sources/certificate.md +2 -2
- package/dist/docs/data-sources/discovery.md +2 -2
- package/dist/docs/data-sources/log_receiver.md +2 -2
- package/dist/docs/data-sources/namespace.md +141 -0
- package/dist/docs/data-sources/site.md +2 -2
- package/dist/docs/data-sources/workload.md +2 -2
- package/dist/docs/index.md +241 -117
- package/dist/docs/resources/bgp.md +4 -238
- package/dist/docs/resources/certificate.md +56 -4
- package/dist/docs/resources/discovery.md +8 -259
- package/dist/docs/resources/log_receiver.md +825 -44
- package/dist/docs/resources/namespace.md +170 -0
- package/dist/docs/resources/site.md +911 -200
- package/dist/docs/resources/workload.md +9 -2951
- package/dist/metadata/resource-metadata.json +371 -177
- package/dist/metadata/validation-patterns.json +1 -1
- package/package.json +1 -1
- package/dist/docs/data-sources/index.md +0 -25
- package/dist/docs/functions/index.md +0 -39
- package/dist/docs/guides/index.md +0 -22
- package/dist/docs/resources/index.md +0 -27
package/README.md
CHANGED
|
@@ -70,7 +70,7 @@ docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:v1.0.0
|
|
|
70
70
|
docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:main-20250906-abc123d
|
|
71
71
|
```
|
|
72
72
|
|
|
73
|
-
**Available tags:**
|
|
73
|
+
**Available tags:**
|
|
74
74
|
- **Releases**: `latest`, `v1.0.0`, `v1.1.0`, etc.
|
|
75
75
|
- **Continuous**: `main` (latest main branch build)
|
|
76
76
|
- **Development**: `main-<date>-<sha>` (specific commit builds)
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
page_title: "f5xc_bgp Data Source - terraform-provider-f5xc"
|
|
3
3
|
subcategory: "Networking"
|
|
4
4
|
description: |-
|
|
5
|
-
Manages
|
|
5
|
+
Manages bgp_asn_set creates a new object in the storage backend for metadata.namespace. in F5 Distributed Cloud.
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# f5xc_bgp (Data Source)
|
|
9
9
|
|
|
10
|
-
Manages
|
|
10
|
+
Manages bgp_asn_set creates a new object in the storage backend for metadata.namespace. in F5 Distributed Cloud.
|
|
11
11
|
|
|
12
12
|
~> **Note** For more information about this data source, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
|
|
13
13
|
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
page_title: "f5xc_certificate Data Source - terraform-provider-f5xc"
|
|
3
3
|
subcategory: "Certificates"
|
|
4
4
|
description: |-
|
|
5
|
-
Manages a Certificate resource in F5 Distributed Cloud for
|
|
5
|
+
Manages a Certificate resource in F5 Distributed Cloud for certificate. configuration.
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# f5xc_certificate (Data Source)
|
|
9
9
|
|
|
10
|
-
Manages a Certificate resource in F5 Distributed Cloud for
|
|
10
|
+
Manages a Certificate resource in F5 Distributed Cloud for certificate. configuration.
|
|
11
11
|
|
|
12
12
|
~> **Note** For more information about this data source, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
|
|
13
13
|
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
page_title: "f5xc_discovery Data Source - terraform-provider-f5xc"
|
|
3
3
|
subcategory: "Applications"
|
|
4
4
|
description: |-
|
|
5
|
-
Manages
|
|
5
|
+
Manages API discovery creates a new object in the storage backend for metadata.namespace. in F5 Distributed Cloud.
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# f5xc_discovery (Data Source)
|
|
9
9
|
|
|
10
|
-
Manages
|
|
10
|
+
Manages API discovery creates a new object in the storage backend for metadata.namespace. in F5 Distributed Cloud.
|
|
11
11
|
|
|
12
12
|
~> **Note** For more information about this data source, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
|
|
13
13
|
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
page_title: "f5xc_log_receiver Data Source - terraform-provider-f5xc"
|
|
3
3
|
subcategory: "Monitoring"
|
|
4
4
|
description: |-
|
|
5
|
-
Manages new Log Receiver object. in F5 Distributed Cloud.
|
|
5
|
+
Manages new Global Log Receiver object. in F5 Distributed Cloud.
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# f5xc_log_receiver (Data Source)
|
|
9
9
|
|
|
10
|
-
Manages new Log Receiver object. in F5 Distributed Cloud.
|
|
10
|
+
Manages new Global Log Receiver object. in F5 Distributed Cloud.
|
|
11
11
|
|
|
12
12
|
~> **Note** For more information about this data source, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
|
|
13
13
|
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
---
|
|
2
|
+
page_title: "f5xc_namespace Data Source - terraform-provider-f5xc"
|
|
3
|
+
subcategory: "Organization"
|
|
4
|
+
description: |-
|
|
5
|
+
Manages new namespace. Name of the object is name of the name space. in F5 Distributed Cloud.
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# f5xc_namespace (Data Source)
|
|
9
|
+
|
|
10
|
+
Manages new namespace. Name of the object is name of the name space. in F5 Distributed Cloud.
|
|
11
|
+
|
|
12
|
+
~> **Note** For more information about this data source, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
|
|
13
|
+
|
|
14
|
+
## Example Usage
|
|
15
|
+
|
|
16
|
+
```terraform
|
|
17
|
+
# Namespace Data Source Example
|
|
18
|
+
# Retrieves information about an existing Namespace
|
|
19
|
+
|
|
20
|
+
# Look up an existing Namespace by name
|
|
21
|
+
data "f5xc_namespace" "example" {
|
|
22
|
+
name = "example-namespace"
|
|
23
|
+
namespace = "system"
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
# Example: Use the data source in another resource
|
|
27
|
+
# output "namespace_id" {
|
|
28
|
+
# value = data.f5xc_namespace.example.id
|
|
29
|
+
# }
|
|
30
|
+
|
|
31
|
+
# Example: Create resources in a namespace discovered via data source
|
|
32
|
+
# resource "f5xc_origin_pool" "example" {
|
|
33
|
+
# name = "example-pool"
|
|
34
|
+
# namespace = data.f5xc_namespace.example.name
|
|
35
|
+
# # ... other configuration
|
|
36
|
+
# }
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
<!-- schema generated by tfplugindocs -->
|
|
40
|
+
## Argument Reference
|
|
41
|
+
|
|
42
|
+
### Metadata Argument Reference
|
|
43
|
+
|
|
44
|
+
<a id="name"></a>• [`name`](#name) - Required String<br>Name of the Namespace
|
|
45
|
+
|
|
46
|
+
<a id="namespace"></a>• [`namespace`](#namespace) - Required String<br>Namespace where the Namespace exists
|
|
47
|
+
|
|
48
|
+
### Attributes Reference
|
|
49
|
+
|
|
50
|
+
In addition to all arguments above, the following attributes are exported:
|
|
51
|
+
|
|
52
|
+
<a id="annotations"></a>• [`annotations`](#annotations) - Optional Map<br>Annotations applied to this resource
|
|
53
|
+
|
|
54
|
+
<a id="description"></a>• [`description`](#description) - Optional String<br>Description of the Namespace
|
|
55
|
+
|
|
56
|
+
<a id="id"></a>• [`id`](#id) - Optional String<br>Unique identifier for the resource
|
|
57
|
+
|
|
58
|
+
<a id="labels"></a>• [`labels`](#labels) - Optional Map<br>Labels applied to this resource
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Common Types
|
|
63
|
+
|
|
64
|
+
The following type definitions are used throughout this resource. See the full definition here rather than repeated inline.
|
|
65
|
+
|
|
66
|
+
### Object Reference {#common-object-reference}
|
|
67
|
+
|
|
68
|
+
Object references establish a direct reference from one configuration object to another in F5 Distributed Cloud. References use the format `tenant/namespace/name`.
|
|
69
|
+
|
|
70
|
+
| Field | Type | Description |
|
|
71
|
+
| ----- | ---- | ----------- |
|
|
72
|
+
| `name` | String | Name of the referenced object |
|
|
73
|
+
| `namespace` | String | Namespace containing the referenced object |
|
|
74
|
+
| `tenant` | String | Tenant of the referenced object (system-managed) |
|
|
75
|
+
|
|
76
|
+
### Transformers {#common-transformers}
|
|
77
|
+
|
|
78
|
+
Transformers apply transformations to input values before matching. Multiple transformers can be applied in order.
|
|
79
|
+
|
|
80
|
+
| Value | Description |
|
|
81
|
+
| ----- | ----------- |
|
|
82
|
+
| `LOWER_CASE` | Convert to lowercase |
|
|
83
|
+
| `UPPER_CASE` | Convert to uppercase |
|
|
84
|
+
| `BASE64_DECODE` | Decode base64 content |
|
|
85
|
+
| `NORMALIZE_PATH` | Normalize URL path |
|
|
86
|
+
| `REMOVE_WHITESPACE` | Remove whitespace characters |
|
|
87
|
+
| `URL_DECODE` | Decode URL-encoded characters |
|
|
88
|
+
| `TRIM_LEFT` | Trim leading whitespace |
|
|
89
|
+
| `TRIM_RIGHT` | Trim trailing whitespace |
|
|
90
|
+
| `TRIM` | Trim both leading and trailing whitespace |
|
|
91
|
+
|
|
92
|
+
### HTTP Methods {#common-http-methods}
|
|
93
|
+
|
|
94
|
+
HTTP methods used for request matching.
|
|
95
|
+
|
|
96
|
+
| Value | Description |
|
|
97
|
+
| ----- | ----------- |
|
|
98
|
+
| `ANY` | Match any HTTP method |
|
|
99
|
+
| `GET` | HTTP GET request |
|
|
100
|
+
| `HEAD` | HTTP HEAD request |
|
|
101
|
+
| `POST` | HTTP POST request |
|
|
102
|
+
| `PUT` | HTTP PUT request |
|
|
103
|
+
| `DELETE` | HTTP DELETE request |
|
|
104
|
+
| `CONNECT` | HTTP CONNECT request |
|
|
105
|
+
| `OPTIONS` | HTTP OPTIONS request |
|
|
106
|
+
| `TRACE` | HTTP TRACE request |
|
|
107
|
+
| `PATCH` | HTTP PATCH request |
|
|
108
|
+
| `COPY` | HTTP COPY request (WebDAV) |
|
|
109
|
+
|
|
110
|
+
### TLS Fingerprints {#common-tls-fingerprints}
|
|
111
|
+
|
|
112
|
+
TLS fingerprint categories for malicious client detection.
|
|
113
|
+
|
|
114
|
+
| Value | Description |
|
|
115
|
+
| ----- | ----------- |
|
|
116
|
+
| `TLS_FINGERPRINT_NONE` | No fingerprint matching |
|
|
117
|
+
| `ANY_MALICIOUS_FINGERPRINT` | Match any known malicious fingerprint |
|
|
118
|
+
| `ADWARE` | Adware-associated fingerprints |
|
|
119
|
+
| `DRIDEX` | Dridex malware fingerprints |
|
|
120
|
+
| `GOOTKIT` | Gootkit malware fingerprints |
|
|
121
|
+
| `RANSOMWARE` | Ransomware-associated fingerprints |
|
|
122
|
+
| `TRICKBOT` | Trickbot malware fingerprints |
|
|
123
|
+
|
|
124
|
+
### IP Threat Categories {#common-ip-threat-categories}
|
|
125
|
+
|
|
126
|
+
IP address threat categories for security filtering.
|
|
127
|
+
|
|
128
|
+
| Value | Description |
|
|
129
|
+
| ----- | ----------- |
|
|
130
|
+
| `SPAM_SOURCES` | Known spam sources |
|
|
131
|
+
| `WINDOWS_EXPLOITS` | Windows exploit sources |
|
|
132
|
+
| `WEB_ATTACKS` | Web attack sources |
|
|
133
|
+
| `BOTNETS` | Known botnet IPs |
|
|
134
|
+
| `SCANNERS` | Network scanner IPs |
|
|
135
|
+
| `REPUTATION` | Poor reputation IPs |
|
|
136
|
+
| `PHISHING` | Phishing-related IPs |
|
|
137
|
+
| `PROXY` | Anonymous proxy IPs |
|
|
138
|
+
| `MOBILE_THREATS` | Mobile threat sources |
|
|
139
|
+
| `TOR_PROXY` | Tor exit nodes |
|
|
140
|
+
| `DENIAL_OF_SERVICE` | DoS attack sources |
|
|
141
|
+
| `NETWORK` | Known bad network ranges |
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
page_title: "f5xc_site Data Source - terraform-provider-f5xc"
|
|
3
3
|
subcategory: "Uncategorized"
|
|
4
4
|
description: |-
|
|
5
|
-
Manages a Site resource in F5 Distributed Cloud for
|
|
5
|
+
Manages a Site resource in F5 Distributed Cloud for azure vnet site specification. configuration.
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# f5xc_site (Data Source)
|
|
9
9
|
|
|
10
|
-
Manages a Site resource in F5 Distributed Cloud for
|
|
10
|
+
Manages a Site resource in F5 Distributed Cloud for azure vnet site specification. configuration.
|
|
11
11
|
|
|
12
12
|
~> **Note** For more information about this data source, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
|
|
13
13
|
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
page_title: "f5xc_workload Data Source - terraform-provider-f5xc"
|
|
3
3
|
subcategory: "Kubernetes"
|
|
4
4
|
description: |-
|
|
5
|
-
Manages
|
|
5
|
+
Manages workload_flavor. in F5 Distributed Cloud.
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# f5xc_workload (Data Source)
|
|
9
9
|
|
|
10
|
-
Manages
|
|
10
|
+
Manages workload_flavor. in F5 Distributed Cloud.
|
|
11
11
|
|
|
12
12
|
~> **Note** For more information about this data source, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
|
|
13
13
|
|
package/dist/docs/index.md
CHANGED
|
@@ -1,152 +1,276 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
page_title: "F5XC Provider"
|
|
3
|
+
description: |-
|
|
4
|
+
Terraform provider for F5 Distributed Cloud (F5XC) enabling infrastructure as code for load balancers, security policies, sites, and networking. Community-maintained provider built from public F5 API documentation.
|
|
3
5
|
---
|
|
4
6
|
|
|
5
|
-
#
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
##
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
7
|
+
# F5XC Provider
|
|
8
|
+
|
|
9
|
+
The F5XC Terraform provider enables infrastructure as code management for F5 Distributed Cloud (F5XC) resources. Configure HTTP/TCP load balancers, origin pools, application firewalls, service policies, cloud sites, and more through declarative Terraform configurations.
|
|
10
|
+
|
|
11
|
+
This is a community-maintained provider built from public F5 API documentation.
|
|
12
|
+
|
|
13
|
+
## Requirements
|
|
14
|
+
|
|
15
|
+
| Name | Version |
|
|
16
|
+
|-----------|---------|
|
|
17
|
+
| terraform | >= 1.8 |
|
|
18
|
+
|
|
19
|
+
-> **Note:** This provider uses provider-defined functions which require Terraform 1.8 or later. For details, see the [Functions](/docs/functions) documentation.
|
|
20
|
+
|
|
21
|
+
## Authenticating to F5 Distributed Cloud
|
|
22
|
+
|
|
23
|
+
The F5XC Terraform provider supports multiple authentication methods:
|
|
24
|
+
|
|
25
|
+
1. **API Token** - Simplest method using a personal API token
|
|
26
|
+
2. **P12 Certificate** - Certificate-based authentication using PKCS#12 bundle
|
|
27
|
+
3. **PEM Certificate** - Certificate-based authentication using separate cert/key files
|
|
28
|
+
|
|
29
|
+
Learn more about [how to generate API credentials](https://docs.cloud.f5.com/docs/how-to/user-mgmt/credentials).
|
|
30
|
+
|
|
31
|
+
## Example Usage
|
|
32
|
+
|
|
33
|
+
```terraform
|
|
34
|
+
# Configure the F5XC Provider with API Token Authentication
|
|
35
|
+
provider "f5xc" {
|
|
36
|
+
api_url = "https://your-tenant.console.ves.volterra.io"
|
|
37
|
+
api_token = var.f5xc_api_token
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
# Alternatively, use environment variables:
|
|
41
|
+
# export F5XC_API_URL="https://your-tenant.console.ves.volterra.io"
|
|
42
|
+
# export F5XC_API_TOKEN="your-api-token"
|
|
43
|
+
|
|
44
|
+
variable "f5xc_api_token" {
|
|
45
|
+
description = "F5 Distributed Cloud API Token"
|
|
46
|
+
type = string
|
|
47
|
+
sensitive = true
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
# Or use P12 Certificate Authentication:
|
|
51
|
+
# provider "f5xc" {
|
|
52
|
+
# api_url = "https://your-tenant.console.ves.volterra.io"
|
|
53
|
+
# api_p12_file = "/path/to/certificate.p12"
|
|
54
|
+
# p12_password = var.f5xc_p12_password
|
|
55
|
+
# }
|
|
56
|
+
#
|
|
57
|
+
# Environment variables for P12 authentication:
|
|
58
|
+
# export F5XC_API_URL="https://your-tenant.console.ves.volterra.io"
|
|
59
|
+
# export F5XC_P12_FILE="/path/to/certificate.p12"
|
|
60
|
+
# export F5XC_P12_PASSWORD="your-p12-password"
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Argument Reference
|
|
64
|
+
|
|
65
|
+
### Required (one of the following authentication methods)
|
|
66
|
+
|
|
67
|
+
* `api_token` - F5 Distributed Cloud API Token (`String`, Sensitive). Can also be set via `F5XC_API_TOKEN` environment variable.
|
|
68
|
+
|
|
69
|
+
* `api_p12_file` - Path to PKCS#12 certificate bundle file (`String`). Can also be set via `F5XC_P12_FILE` environment variable. Requires `p12_password`.
|
|
70
|
+
|
|
71
|
+
* `api_cert` and `api_key` - Paths to PEM-encoded certificate and private key files (`String`). Can also be set via `F5XC_CERT` and `F5XC_KEY` environment variables.
|
|
72
|
+
|
|
73
|
+
### Optional
|
|
74
|
+
|
|
75
|
+
* `api_url` - F5 Distributed Cloud API URL (`String`). Base URL **without** `/api` suffix. Defaults to `https://console.ves.volterra.io`. Can also be set via `F5XC_API_URL` environment variable.
|
|
76
|
+
|
|
77
|
+
* `p12_password` - Password for PKCS#12 certificate bundle (`String`, Sensitive). Required when using `api_p12_file`. Can also be set via `F5XC_P12_PASSWORD` environment variable.
|
|
78
|
+
|
|
79
|
+
* `api_ca_cert` - Path to PEM-encoded CA certificate file (`String`). Optional, used for server certificate verification. Can also be set via `F5XC_CACERT` environment variable.
|
|
80
|
+
|
|
81
|
+
## Authentication Options
|
|
82
|
+
|
|
83
|
+
### Option 1: API Token Authentication
|
|
84
|
+
|
|
85
|
+
The simplest authentication method using a personal API token.
|
|
86
|
+
|
|
87
|
+
**Provider Configuration:**
|
|
60
88
|
|
|
61
89
|
```hcl
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
source = "robinmordasiewicz/f5xc"
|
|
66
|
-
version = "~> 3.0"
|
|
67
|
-
}
|
|
68
|
-
}
|
|
90
|
+
provider "f5xc" {
|
|
91
|
+
api_url = "https://your-tenant.console.ves.volterra.io"
|
|
92
|
+
api_token = var.f5xc_api_token
|
|
69
93
|
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**Environment Variables:**
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
export F5XC_API_URL="https://your-tenant.console.ves.volterra.io"
|
|
100
|
+
export F5XC_API_TOKEN="your-api-token"
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Option 2: P12 Certificate Authentication
|
|
104
|
+
|
|
105
|
+
Certificate-based authentication using a PKCS#12 bundle downloaded from F5 Distributed Cloud.
|
|
106
|
+
|
|
107
|
+
**Provider Configuration:**
|
|
108
|
+
|
|
109
|
+
```hcl
|
|
110
|
+
provider "f5xc" {
|
|
111
|
+
api_url = "https://your-tenant.console.ves.volterra.io"
|
|
112
|
+
api_p12_file = "/path/to/certificate.p12"
|
|
113
|
+
p12_password = var.f5xc_p12_password
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**Environment Variables:**
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
export F5XC_API_URL="https://your-tenant.console.ves.volterra.io"
|
|
121
|
+
export F5XC_P12_FILE="/path/to/certificate.p12"
|
|
122
|
+
export F5XC_P12_PASSWORD="your-p12-password"
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Option 3: PEM Certificate Authentication
|
|
70
126
|
|
|
127
|
+
Certificate-based authentication using separate PEM-encoded certificate and key files.
|
|
128
|
+
|
|
129
|
+
**Provider Configuration:**
|
|
130
|
+
|
|
131
|
+
```hcl
|
|
71
132
|
provider "f5xc" {
|
|
72
|
-
api_url
|
|
73
|
-
|
|
133
|
+
api_url = "https://your-tenant.console.ves.volterra.io"
|
|
134
|
+
api_cert = "/path/to/certificate.crt"
|
|
135
|
+
api_key = "/path/to/private.key"
|
|
136
|
+
api_ca_cert = "/path/to/ca-certificate.crt" # Optional
|
|
74
137
|
}
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
**Environment Variables:**
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
export F5XC_API_URL="https://your-tenant.console.ves.volterra.io"
|
|
144
|
+
export F5XC_CERT="/path/to/certificate.crt"
|
|
145
|
+
export F5XC_KEY="/path/to/private.key"
|
|
146
|
+
export F5XC_CACERT="/path/to/ca-certificate.crt" # Optional
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
-> **Note:** Environment variables are the recommended approach for CI/CD pipelines and to avoid storing sensitive credentials in version control.
|
|
150
|
+
|
|
151
|
+
## Getting Started
|
|
152
|
+
|
|
153
|
+
1. **Generate API Credentials**: Navigate to your F5 Distributed Cloud console, go to **Administration** > **Personal Management** > **Credentials**, and create either an API Token or download a certificate bundle.
|
|
154
|
+
|
|
155
|
+
2. **Configure the Provider**: Add the provider configuration to your Terraform files using one of the authentication options above.
|
|
156
|
+
|
|
157
|
+
3. **Create Resources**: Start managing F5XC resources like namespaces, load balancers, and origin pools.
|
|
75
158
|
|
|
159
|
+
### Example: Create a Namespace
|
|
160
|
+
|
|
161
|
+
```hcl
|
|
76
162
|
resource "f5xc_namespace" "example" {
|
|
77
163
|
name = "example-namespace"
|
|
78
164
|
}
|
|
165
|
+
```
|
|
79
166
|
|
|
167
|
+
### Example: Create an HTTP Load Balancer
|
|
168
|
+
|
|
169
|
+
```hcl
|
|
80
170
|
resource "f5xc_http_loadbalancer" "example" {
|
|
81
|
-
name = "example-
|
|
82
|
-
namespace =
|
|
171
|
+
name = "example-load-balancer"
|
|
172
|
+
namespace = "example-namespace"
|
|
173
|
+
domains = ["example.com"]
|
|
174
|
+
}
|
|
175
|
+
```
|
|
83
176
|
|
|
84
|
-
|
|
177
|
+
## MCP Configuration
|
|
85
178
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
no_mtls = true
|
|
90
|
-
default_header = true
|
|
91
|
-
enable_path_normalize = true
|
|
92
|
-
}
|
|
179
|
+
This provider includes a Model Context Protocol (MCP) server that enables AI assistants like Claude to interact with F5 Distributed Cloud resources. The MCP server provides schema information, documentation, and example configurations.
|
|
180
|
+
|
|
181
|
+
### Quick Setup for Claude Desktop
|
|
93
182
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
183
|
+
Add the following to your Claude Desktop configuration file:
|
|
184
|
+
|
|
185
|
+
**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
186
|
+
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
|
|
187
|
+
|
|
188
|
+
```json
|
|
189
|
+
{
|
|
190
|
+
"mcpServers": {
|
|
191
|
+
"f5xc-terraform": {
|
|
192
|
+
"command": "npx",
|
|
193
|
+
"args": ["@robinmordasiewicz/f5xc-terraform-mcp"]
|
|
98
194
|
}
|
|
99
|
-
weight = 1
|
|
100
|
-
priority = 1
|
|
101
195
|
}
|
|
102
|
-
|
|
103
|
-
advertise_on_public_default_vip = true
|
|
104
196
|
}
|
|
105
197
|
```
|
|
106
198
|
|
|
107
|
-
|
|
199
|
+
### Quick Setup for Claude Code (CLI)
|
|
108
200
|
|
|
109
|
-
|
|
110
|
-
<div class="highlight">
|
|
111
|
-
<h3>📦 Installation</h3>
|
|
112
|
-
<p>Install the provider from the Terraform Registry</p>
|
|
113
|
-
<a href="getting-started/installation/">Learn more →</a>
|
|
114
|
-
</div>
|
|
201
|
+
Install the MCP server with a single command:
|
|
115
202
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
<a href="getting-started/authentication/">Learn more →</a>
|
|
120
|
-
</div>
|
|
203
|
+
```bash
|
|
204
|
+
claude mcp add f5xc-terraform -- npx -y @robinmordasiewicz/f5xc-terraform-mcp
|
|
205
|
+
```
|
|
121
206
|
|
|
122
|
-
|
|
123
|
-
<h3>⚡ Quick Start</h3>
|
|
124
|
-
<p>Deploy your first F5XC resource in minutes</p>
|
|
125
|
-
<a href="getting-started/quick-start/">Learn more →</a>
|
|
126
|
-
</div>
|
|
127
|
-
</div>
|
|
207
|
+
**Scope Options:**
|
|
128
208
|
|
|
129
|
-
|
|
209
|
+
* `--scope local` (default) - Available only in the current directory
|
|
210
|
+
* `--scope user` - Available in all your Claude Code sessions
|
|
211
|
+
* `--scope project` - Shared with anyone who clones the repository (saved in `.mcp.json`)
|
|
130
212
|
|
|
131
|
-
|
|
213
|
+
Example with user scope (recommended for personal use):
|
|
132
214
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
- **[Guides](guides/)**: Step-by-step tutorials for common scenarios
|
|
215
|
+
```bash
|
|
216
|
+
claude mcp add --scope user f5xc-terraform -- npx -y @robinmordasiewicz/f5xc-terraform-mcp
|
|
217
|
+
```
|
|
137
218
|
|
|
138
|
-
|
|
219
|
+
**Verify Installation:**
|
|
139
220
|
|
|
140
|
-
|
|
221
|
+
```bash
|
|
222
|
+
claude mcp list
|
|
223
|
+
```
|
|
141
224
|
|
|
142
|
-
-
|
|
143
|
-
- **Issues**: [Report bugs or request features](https://github.com/robinmordasiewicz/terraform-provider-f5xc/issues)
|
|
144
|
-
- **Contributing**: [Development guide](contributing/development/)
|
|
225
|
+
You should see `f5xc-terraform` listed with a `✓ Connected` status.
|
|
145
226
|
|
|
146
|
-
|
|
227
|
+
### Quick Setup for Visual Studio Code
|
|
228
|
+
|
|
229
|
+
VS Code 1.99+ supports MCP servers through GitHub Copilot. Choose the installation method that best fits your environment:
|
|
230
|
+
|
|
231
|
+
#### Option 1: Workspace Configuration (Recommended)
|
|
232
|
+
|
|
233
|
+
Create a `.vscode/mcp.json` file in your workspace:
|
|
234
|
+
|
|
235
|
+
```json
|
|
236
|
+
{
|
|
237
|
+
"servers": {
|
|
238
|
+
"f5xc-terraform": {
|
|
239
|
+
"command": "npx",
|
|
240
|
+
"args": ["-y", "@robinmordasiewicz/f5xc-terraform-mcp"]
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
#### Option 2: Corporate Environments (No Node.js Required)
|
|
247
|
+
|
|
248
|
+
For environments where npm/Node.js cannot be installed:
|
|
249
|
+
|
|
250
|
+
1. Download the latest `.mcpb` bundle from [GitHub Releases](https://github.com/robinmordasiewicz/terraform-provider-f5xc/releases)
|
|
251
|
+
2. Place the file in a known location (e.g., `~/.mcp/f5xc-terraform-mcp.mcpb`)
|
|
252
|
+
3. Create a `.vscode/mcp.json` file:
|
|
253
|
+
|
|
254
|
+
```json
|
|
255
|
+
{
|
|
256
|
+
"servers": {
|
|
257
|
+
"f5xc-terraform": {
|
|
258
|
+
"command": "/path/to/f5xc-terraform-mcp.mcpb"
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
#### Verify Installation
|
|
265
|
+
|
|
266
|
+
1. Press `Ctrl+Shift+P` / `Cmd+Shift+P`
|
|
267
|
+
2. Run `MCP: List Servers`
|
|
268
|
+
3. Look for `f5xc-terraform` with a green status indicator
|
|
269
|
+
|
|
270
|
+
For complete MCP server documentation including all available tools and advanced configuration options, see the [NPM package page](https://www.npmjs.com/package/@robinmordasiewicz/f5xc-terraform-mcp).
|
|
271
|
+
|
|
272
|
+
## Resources and Data Sources
|
|
147
273
|
|
|
148
|
-
|
|
149
|
-
Built with ❤️ by the community • <a href="https://registry.terraform.io/providers/robinmordasiewicz/f5xc/latest">View on Terraform Registry</a>
|
|
150
|
-
</div>
|
|
274
|
+
Browse the documentation sidebar for the complete list of resources and data sources organized by category.
|
|
151
275
|
|
|
152
|
-
|
|
276
|
+
<!-- Template version: 1.0.1 - MCP token optimization (#592) -->
|