devops-stack-module-minio
A DevOps Stack module to deploy minio.
The minio chart used by this module is shipped in this repository as well, in order to avoid any unwanted behaviors caused by unsupported versions.
Current Chart Version | Original Repository | Default Values |
---|---|---|
5.0.7 |
Usage
module "minio" {
source = "git::https://github.com/camptocamp/devops-stack-module-minio.git?ref=<RELEASE>"
cluster_name = local.cluster_name
argocd_namespace = local.argocd_namespace
# TODO Consider replacing this depends_on by our dependency_ids
depends_on = [
module.argocd_bootstrap,
]
}
Resources
The following resources are used by this module:
-
argocd_application.this (resource)
-
argocd_project.this (resource)
-
null_resource.dependencies (resource)
-
null_resource.this (resource)
-
random_password.minio_root_secretkey (resource)
-
utils_deep_merge_yaml.values (data source)
Required Inputs
The following input variables are required:
argocd_namespace
Description: Namespace used by Argo CD where the Application and AppProject resources should be created.
Type: string
Optional Inputs
The following input variables are optional (have default values):
app_autosync
Description: Automated sync options for the Argo CD Application resource.
Type:
object({
allow_empty = optional(bool)
prune = optional(bool)
self_heal = optional(bool)
})
Default:
{
"allow_empty": false,
"prune": true,
"self_heal": true
}
cluster_issuer
Description: SSL certificate issuer to use. Usually you would configure this value as letsencrypt-staging
or letsencrypt-prod
on your root *.tf
files.
Type: string
Default: "ca-issuer"
cluster_name
Description: Name given to the cluster. Value used for naming some the resources created by the module.
Type: string
Default: "cluster"
config_minio
Description: # Module variables this variable is used to create polocies, users and buckets instead of hard coded values.
Type:
object({
policies = optional(list(object({
name = string
statements = list(object({
resources = list(string)
actions = list(string)
}))
})), [])
users = optional(list(object({
accessKey = string
secretKey = string
policy = string
})), [])
buckets = optional(list(object({
name = string
policy = optional(string, "none")
purge = optional(bool, false)
versioning = optional(bool, false)
objectlocking = optional(bool, false)
})), [])
})
Default: {}
dependency_ids
Description: IDs of the other modules on which this module depends on.
Type: map(string)
Default: {}
helm_values
Description: Helm chart value overrides. They should be passed as a list of HCL structures.
Type: any
Default: []
namespace
Description: Namespace where the applications’s Kubernetes resources should be created. Namespace will be created in case it doesn’t exist.
Type: string
Default: "minio"
target_revision
Description: Override of target revision of the application chart.
Type: string
Default: "v1.0.0"
Outputs
The following outputs are exported:
endpoint
Description: MinIO endpoint for where the buckets are available.
id
Description: ID to pass other modules in order to refer to this module as a dependency.
minio_root_user_credentials
Description: n/a
Reference in table format
Show tables
= Requirements
Name | Version |
---|---|
>= 4 |
|
>= 1 |
= Providers
Name | Version |
---|---|
>= 4 |
|
n/a |
|
n/a |
|
>= 1 |
= Resources
Name | Type |
---|---|
resource |
|
resource |
|
resource |
|
resource |
|
resource |
|
data source |
= Inputs
Name | Description | Type | Default | Required |
---|---|---|---|---|
Automated sync options for the Argo CD Application resource. |
|
|
no |
|
Namespace used by Argo CD where the Application and AppProject resources should be created. |
|
n/a |
yes |
|
Principal default domain |
|
n/a |
yes |
|
SSL certificate issuer to use. Usually you would configure this value as |
|
|
no |
|
Name given to the cluster. Value used for naming some the resources created by the module. |
|
|
no |
|
# Module variables this variable is used to create polocies, users and buckets instead of hard coded values. |
|
|
no |
|
IDs of the other modules on which this module depends on. |
|
|
no |
|
Helm chart value overrides. They should be passed as a list of HCL structures. |
|
|
no |
|
Namespace where the applications’s Kubernetes resources should be created. Namespace will be created in case it doesn’t exist. |
|
|
no |
|
Override of target revision of the application chart. |
|
|
no |
= Outputs
Name | Description |
---|---|
MinIO endpoint for where the buckets are available. |
|
ID to pass other modules in order to refer to this module as a dependency. |
|
n/a |