Giter VIP home page Giter VIP logo

terraform-nexus-blobstore's Introduction

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.

Provider

You need use a Nexus provider.

provider "nexus" {
  insecure = true
  password = "admin123"
  url      = "https://127.0.0.1:8080"
  username = "admin"
}

Root module usage

nexus-blobstore:

module "nexus_blobstore" {
  source  = "terraform-nexus-modules/blobstore/nexus"
  version = "1.0.0"

  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:

module "nexus_blobstore_azure" {
  source  = "terraform-nexus-modules/blobstore/nexus//modules/nexus_blobstore_azure"
  version = "1.0.0"

  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:

module "nexus_blobstore_azure" {
  source  = "terraform-nexus-modules/blobstore/nexus//modules/nexus_blobstore_file"
  version = "1.0.0"

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

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

nexus-blobstore-group:

module "nexus_blobstore_azure" {
  source  = "terraform-nexus-modules/blobstore/nexus//modules/nexus_blobstore_group"
  version = "1.0.0"

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

nexus-blobstore-s3:

module "nexus_blobstore_azure" {
  source  = "terraform-nexus-modules/blobstore/nexus//modules/nexus_blobstore_s3"
  version = "1.0.0"

  name = "blobstore-s3"

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

    bucket_security = {
      access_key_id     = "<your-aws-access-key-id>"
      secret_access_key = "<your-aws-secret-access-key>"
    }
  }

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

Terraform Docs

Requirements

Name Version
terraform >= 1.3.0
nexus >= 2.0.0

Providers

No providers.

Modules

Name Source Version
nexus_blobstore_azure ./modules/nexus-blobstore-azure n/a
nexus_blobstore_file ./modules/nexus-blobstore-file n/a
nexus_blobstore_group ./modules/nexus-blobstore-group n/a
nexus_blobstore_s3 ./modules/nexus-blobstore-s3 n/a

Resources

No resources.

Inputs

Name Description Type Default Required
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 Blobstore File.
list(object({
name = string
path = string
soft_quota = object({
limit = optional(number)
type = optional(string)
})
}))
[] no
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 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 The name of the blobstore azure.
blobstore_file_name The name of the blobstore file.
blobstore_group_name The name of the blobstore group.
blobstore_s3_name The name of the blobstore s3.

Authors

Module is maintained by DevOps IA with help from these awesome contributors.

License

Apache 2 Licensed. See LICENSE for full details.

terraform-nexus-blobstore's People

Contributors

amartingarcia avatar semantic-release-bot avatar

Watchers

Iván Alejandro Marugán avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.