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
- Host: GitHub
- URL: https://github.com/devops-ia/terraform-nexus-blobstore
- Owner: devops-ia
- License: mit
- Created: 2024-02-19T08:50:51.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-03-04T09:02:40.000Z (over 1 year ago)
- Last Synced: 2025-03-04T10:20:24.181Z (over 1 year ago)
- Topics: nexus, nexus-blobstore, terraform, terraform-module
- Language: HCL
- Homepage: https://registry.terraform.io/modules/devops-ia/blobstore/nexus
- Size: 59.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
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).