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

https://github.com/devops-ia/terraform-nexus-blobstore

Terraform module for create Nexus Blobstore
https://github.com/devops-ia/terraform-nexus-blobstore

nexus nexus-blobstore terraform terraform-module

Last synced: over 1 year ago
JSON representation

Terraform module for create Nexus Blobstore

Awesome Lists containing this project

README

          

# Nexus Blobstore

This module allows you to create **Nexus Blobstore as a global resource** and **individual Nexus Blobstore resources.** For individual examples, see the usage snippets and [examples](https://github.com/devops-ia/terraform-nexus-blobstore/tree/main/examples).

## Provider
You need use a [Nexus provider](https://registry.terraform.io/providers/datadrivers/nexus/latest/docs).
```hcl
provider "nexus" {
insecure = true
password = "admin123"
url = "https://127.0.0.1:8080"
username = "admin"
}
```

## Root module usage

`nexus-blobstore`:

```hcl
module "nexus_blobstore" {
source = "devops-ia/blobstore/nexus"

nexus_blobstore_azure = [
{
name = "my-azure-blobstore"

bucket_configuration = {
account_name = "example-account-name"
authentication = {
authentication_method = "ACCOUNTKEY"
account_key = "example-account-key"
}
container_name = "example-container-name"
}

soft_quota = {
limit = 1000000
type = "spaceRemainingQuota"
}
}
]

nexus_blobstore_file = [
{
name = "blobstore-file"
path = "/nexus-data/blobstore-file"

soft_quota = {
limit = 1024000000
type = "spaceRemainingQuota"
}
},
]

nexus_blobstore_group = [
{
name = "group-example"
fill_policy = "roundRobin"
members = [
"one"
]
soft_quota = {
limit = 1024000000
type = "spaceRemainingQuota"
}
}
]

nexus_blobstore_s3 = [
{
name = "blobstore-s3"

bucket_configuration = {
bucket = {
name = "aws-bucket-name"
region = "us-central-1"
expiration = -1
}

bucket_security = {
access_key_id = "my-key-id"
secret_access_key = "my-access-key"
}
}

soft_quota = {
limit = 100000
type = "spaceRemainingQuota"
}
}
]
}
```

## Individual module usage

`nexus-blobstore-azure`:

```hcl
module "nexus_blobstore_azure" {
source = "devops-ia/blobstore/nexus//modules/nexus_blobstore_azure"

name = "my-azure-blobstore"

bucket_configuration = {
account_name = "example-account-name"
authentication = {
authentication_method = "ACCOUNTKEY"
account_key = "example-account-key"
}
container_name = "example-container-name"
}

soft_quota = {
limit = 1000000
type = "spaceRemainingQuota"
}
}
```

`nexus-blobstore-file`:

```hcl
module "nexus_blobstore_azure" {
source = "devops-ia/blobstore/nexus//modules/nexus_blobstore_file"

name = "blobstore-file"
path = "/nexus-data/blobstore-file"

soft_quota = {
limit = 1024000000
type = "spaceRemainingQuota"
}
}
```

`nexus-blobstore-group`:

```hcl
module "nexus_blobstore_azure" {
source = "devops-ia/blobstore/nexus//modules/nexus_blobstore_group"

name = "group-example"
fill_policy = "roundRobin"
members = [
nexus_blobstore_file.one.name,
nexus_blobstore_file.two.name
]
}
```

`nexus-blobstore-s3`:

```hcl
module "nexus_blobstore_azure" {
source = "devops-ia/blobstore/nexus//modules/nexus_blobstore_s3"

name = "blobstore-s3"

bucket_configuration = {
bucket = {
name = "aws-bucket-name"
region = "us-central-1"
}

bucket_security = {
access_key_id = ""
secret_access_key = ""
}
}

soft_quota = {
limit = 1024000000
type = "spaceRemainingQuota"
}
}
```

## Terraform Docs

### Requirements

| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.3.0 |
| [nexus](#requirement\_nexus) | >= 2.0.0 |

### Providers

No providers.

### Modules

| Name | Source | Version |
|------|--------|---------|
| [nexus\_blobstore\_azure](#module\_nexus\_blobstore\_azure) | ./modules/nexus-blobstore-azure | n/a |
| [nexus\_blobstore\_file](#module\_nexus\_blobstore\_file) | ./modules/nexus-blobstore-file | n/a |
| [nexus\_blobstore\_group](#module\_nexus\_blobstore\_group) | ./modules/nexus-blobstore-group | n/a |
| [nexus\_blobstore\_s3](#module\_nexus\_blobstore\_s3) | ./modules/nexus-blobstore-s3 | n/a |

### Resources

No resources.

### Inputs

| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| [nexus\_blobstore\_azure](#input\_nexus\_blobstore\_azure) | Blobstore Azure. |

list(object({
name = string
bucket_configuration = object({
account_name = string
container_name = string
authentication = object({
authentication_method = string
account_key = optional(string)
})
})
soft_quota = optional(object({
limit = optional(number)
type = optional(string)
}))
}))
| `[]` | no |
| [nexus\_blobstore\_file](#input\_nexus\_blobstore\_file) | Blobstore File. |
list(object({
name = string
path = string
soft_quota = object({
limit = optional(number)
type = optional(string)
})
}))
| `[]` | no |
| [nexus\_blobstore\_group](#input\_nexus\_blobstore\_group) | Blobstore Group. |
list(object({
name = string
fill_policy = string
members = set(string)
soft_quota = object({
limit = optional(number)
type = optional(string)
})
}))
| `[]` | no |
| [nexus\_blobstore\_s3](#input\_nexus\_blobstore\_s3) | Blobstore S3. |
list(object({
name = string
bucket_configuration = object({
bucket = object({
name = string
region = string
expiration = number
prefix = optional(string, null)
})
bucket_security = optional(object({
access_key_id = optional(string, null)
role = optional(string, null)
secret_access_key = optional(string, null)
session_token = optional(string, null)
}))
encryption = optional(object({
encryption_key = optional(string, null)
encryption_type = optional(string, null)
}))
advanced_bucket_connection = optional(object({
endpoint = optional(string, null)
force_path_style = optional(bool, null)
max_connection_pool_size = optional(number, null)
signer_type = optional(string, null)
}))
})
soft_quota = object({
limit = optional(number)
type = optional(string)
})
}))
| `[]` | no |

### Outputs

| Name | Description |
|------|-------------|
| [blobstore\_azure\_name](#output\_blobstore\_azure\_name) | The name of the blobstore azure. |
| [blobstore\_file\_name](#output\_blobstore\_file\_name) | The name of the blobstore file. |
| [blobstore\_group\_name](#output\_blobstore\_group\_name) | The name of the blobstore group. |
| [blobstore\_s3\_name](#output\_blobstore\_s3\_name) | The name of the blobstore s3. |

## Authors

Module is maintained by [DevOps IA](https://github.com/devops-ia) with help from [these awesome contributors](https://github.com/devops-ia/terraform-nexus-blobstore/graphs/contributors).