Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/memes/terraform-google-f5-bigip-cfe-role

Terraform role to create a custom IAM role for F5 BIG-IP CFE use.
https://github.com/memes/terraform-google-f5-bigip-cfe-role

Last synced: 7 days ago
JSON representation

Terraform role to create a custom IAM role for F5 BIG-IP CFE use.

Awesome Lists containing this project

README

        

# F5 BIG-IP CFE Role Terraform module

![GitHub release](https://img.shields.io/github/v/release/memes/terraform-google-f5-bigip-cfe-role?sort=semver)
![Maintenance](https://img.shields.io/maintenance/yes/2024)
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](CODE_OF_CONDUCT.md)

This Terraform module is a helper to create a custom IAM role that has the
minimal permissions required for Cloud Failover Extension to function correctly.
The role will be created in the specified project by default, but can be created
as an *Organization role* if preferred, for reuse across projects.

Unless a specific identifier is provided in the `id` variable, a semi-random
identifier will be generated of the form `bigip_cfe_xxxxxxxxxx` to avoid unique
identifier collisions during the time after a custom role is deleted but before
it is purged from the project or organization.

> **NOTE:** This module is unsupported and not an official F5 product. If you
> require assistance please join our
> [Slack GCP channel](https://f5cloudsolutions.slack.com/messages/gcp) and ask!

## Examples

### Create the custom role at the project, and assign to an existing BIG-IP service account

See [Simple project role](examples/simple_project_role/) example for more details.

```hcl
module "cfe_role" {
source = "memes/f5-bigip-cfe-role/google"
version = "1.0.4"
target_id = "my-project-id"
members = ["serviceAccount:[email protected]"]
}
```

### Create the custom role for entire org, but do not explicitly assign membership

See [Simple org role](examples/simple_org_role/) example for more details.

```hcl
module "cfe_org_role" {
source = "memes/f5-bigip-cfe-role/google"
version = "1.0.4"
target_type = "org"
target_id = "my-org-id"
}
```

### Create the custom role in the project with a fixed id, and assign to a BIG-IP service account

See [Fixed id](examples/fixed_id/) example for more details.

```hcl
module "cfe_role" {
source = "memes/f5-bigip-cfe-role/google"
version = "1.0.4"
id = "my_custom_role"
target_id = "my-project-id"
title = "An example CFE custom role for F5 BIG-IP instances"
members = ["serviceAccount:[email protected]"]
}
```

## Requirements

| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.3 |
| [google](#requirement\_google) | >= 3.53, < 7.0 |

## Modules

| Name | Source | Version |
|------|--------|---------|
| [cfe\_role](#module\_cfe\_role) | terraform-google-modules/iam/google//modules/custom_role_iam | 8.0.0 |

## Resources

| Name | Type |
|------|------|
| [random_id.role_id](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/id) | resource |

## Inputs

| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| [target\_id](#input\_target\_id) | Sets the target for role creation; must be either an organization ID (target\_type = 'org'),
or project ID (target\_type = 'project'). | `string` | n/a | yes |
| [id](#input\_id) | An identifier to use for the new role; default is an empty string which will
generate a unique identifier. If a value is provided, it must be unique at the
organization or project level depending on value of target\_type respectively.
E.g. multiple projects can all have a 'bigip\_cfe' role defined,
but an organization level role must be uniquely named. | `string` | `null` | no |
| [members](#input\_members) | An optional list of accounts that will be assigned the custom role. Default is
an empty list. | `list(string)` | `[]` | no |
| [random\_id\_prefix](#input\_random\_id\_prefix) | The prefix to use when generating random role identifier for the new role; default
is 'bigip\_cfe' which will generate a unique role identifier of the form
'bigip\_cfe\_XXXX', where XXXX is a random hex string. | `string` | `"bigip_cfe"` | no |
| [target\_type](#input\_target\_type) | Determines if the CFE role is to be created for the whole organization ('org')
or at a 'project' level. Default is 'project'. | `string` | `"project"` | no |
| [title](#input\_title) | The human-readable title to assign to the custom CFE role. Default is 'Custom BIG-IP CFE role'. | `string` | `"Custom F5 BIG-IP CFE role"` | no |

## Outputs

| Name | Description |
|------|-------------|
| [qualified\_role\_id](#output\_qualified\_role\_id) | The qualified role-id for the custom CFE role. |