Skip to content

Latest commit

 

History

History
58 lines (47 loc) · 11.4 KB

File metadata and controls

58 lines (47 loc) · 11.4 KB

Requirements

Name Version
terraform ~> 1.0
aws ~> 5.0

Providers

Name Version
kubernetes n/a
random n/a

Modules

Name Source Version
airflow_db ./modules/rds n/a
airflow_efs ./modules/airflow-efs n/a
db ./modules/rds n/a
deployment ./modules/openmetadata-deployment n/a
openmetadata_deps ./modules/openmetadata-dependencies n/a
opensearch ./modules/opensearch n/a

Resources

Name Type
kubernetes_secret_v1.airflow_auth resource
kubernetes_secret_v1.airflow_db_credentials resource
kubernetes_secret_v1.db_credentials resource
random_password.airflow_auth resource

Inputs

Name Description Type Default Required
airflow Airflow configuration.
object({
credentials = optional(object({ # Airflow credentials
password = optional(object({ # Password secret
secret_key = optional(string) # Secret key for the Airflow password
secret_ref = optional(string) # Secret reference for the Airflow password
}))
username = optional(string) # Username for Airflow
}))
db = optional(object({ # Airflow's database configuration
aws = optional(object({ # AWS specific configuration for the Airflow database
backup_retention_period = optional(number) # Number of days to retain database backups
backup_window = optional(string) # Preferred backup window for RDS
deletion_protection = optional(bool) # The database can't be deleted when this value is set to true
identifier = optional(string) # Unique identifier for the AWS RDS instance
instance_class = optional(string) # Instance class of the AWS RDS instance
maintenance_window = optional(string) # Preferred maintenance window for RDS
multi_az = optional(bool) # Whether to enable multi-AZ deployment
skip_final_snapshot = optional(bool) # If true, no DBSnapshot is created when the database is deleted
}))
credentials = optional(object({ # Airflow database credentials
password = optional(object({ # Password secret
secret_key = optional(string) # Secret key for the Airflow database password
secret_ref = optional(string) # Secret reference for the Airflow database password
}))
username = optional(string) # Username for the Airflow database
}))
db_name = optional(string) # Name of the Airflow database
engine = optional(object({ # Airflow database engine configuration
name = optional(string) # One of 'postgres' or 'mysql'
version = optional(string) # Version of the database engine
}))
host = optional(string) # Database host address for Airflow
port = optional(number) # Port on which the Airflow database is accessible
provisioner = string # One of 'helm', 'aws', or 'existing'
storage_size = optional(number) # Size of the Airflow database storage in GB
}))
endpoint = optional(string) # Endpoint URL for the Airflow instance
provisioner = optional(string) # One of 'helm' or 'existing'
logs_cleanup = optional(object({ # Airflow logs cleanup configuration
enabled = optional(bool) # Whether to enable log cleanup
schedule = optional(string) # Schedule for log cleanup
retain_days = optional(number) # Number of days to retain logs
}))
storage = optional(object({ # Airflow storage configuration
dags = optional(number) # Size of storage allocated for DAGs (in GB)
logs = optional(number) # Size of storage allocated for logs (in GB)
}))
})
{
"db": {
"provisioner": "helm"
},
"provisioner": "helm"
}
no
app_helm_chart_version Version of the OpenMetadata Helm chart to deploy. If not specified, the variable app_version will be used. string null no
app_namespace Namespace in which to deploy the OpenMetadata application. string "openmetadata" no
app_version OpenMetadata version to deploy. string "1.12.3" no
db OpenMetadata's database configuration.
object({
aws = optional(object({ # AWS specific configuration for the database
backup_retention_period = optional(number) # Number of days to retain database backups
backup_window = optional(string) # Preferred backup window for RDS
deletion_protection = optional(bool) # The database can't be deleted when this value is set to true
identifier = optional(string) # Unique identifier for the AWS RDS instance
instance_class = optional(string) # Instance class of the AWS RDS instance
maintenance_window = optional(string) # Preferred maintenance window for RDS
multi_az = optional(bool) # Whether to enable multi-AZ deployment
skip_final_snapshot = optional(bool) # If true, no DBSnapshot is created when the database is deleted
}))
credentials = optional(object({ # Database credentials
password = optional(object({ # Password secret
secret_key = optional(string) # Secret key for the database password
secret_ref = optional(string) # Secret reference for the database password
}))
username = optional(string) # Username for the database
}))
db_name = optional(string) # Name of the database
engine = optional(object({ # Database engine configuration
name = optional(string) # One of 'postgres' or 'mysql'
version = optional(string) # Version of the database engine
}))
host = optional(string) # Database host address
port = optional(number) # Port on which the database is accessible
provisioner = string # One of 'helm', 'aws', or 'existing'
storage_size = optional(number) # Size of the database storage in GB
})
{
"provisioner": "helm"
}
no
docker_image_name Full path of the server Docker image name, excluding the tag. string "docker.getcollate.io/openmetadata/server" no
docker_image_tag Docker image tag for the server. If not specified, the variable app_version will be used. string null no
eks_nodes_sg_ids List of security group IDs attached to the EKS nodes. Allows traffic from the OpenMetadata application to the databases. list(string) [] no
env_from List of Kubernetes secrets. Will be converted to environment variables for the OpenMetadata application. list(string) [] no
extra_envs Extra environment variables for the OpenMetadata application. map(string) {} no
initial_admins List of initial admins to create in the OpenMetadata application, without the domain name. string "[admin]" no
kms_key_id ARN of the KMS key to encrypt database and backups. If not specified, your account's default KMS key will be used. string null no
opensearch Configuration for OpenSearch domain for OpenMetadata.
object({
aws = optional(object({ # AWS specific configuration
availability_zone_count = optional(number) # Number of availability zones to deploy the OpenSearch domain
domain_name = optional(string) # The OpenSearch domain name
engine_version = optional(string) # OpenSearch engine version
instance_count = optional(number) # Number of OpenSearch instances
instance_type = optional(string) # OpenSearch instance type
tls_security_policy = optional(string) # OpenSearch TLS security policy
}))
credentials = optional(object({
password = optional(object({ # Password secret
secret_ref = optional(string) # Secret reference for OpenSearch password
secret_key = optional(string) # Secret key for OpenSearch password
}))
username = optional(string) # OpenSearch username
}))
host = optional(string) # OpenSearch host
port = optional(string) # OpenSearch port, hardcoded to 443 if opensearch.provisioner is 'aws'
provisioner = optional(string) # One of 'helm', 'aws', or 'existing'
scheme = optional(string) # OpenSearch scheme, hardcoded to 'https' if opensearch.provisioner is 'aws'
storage_class = optional(string) # OpenSearch storage class
volume_size = optional(number) # OpenSearch storage size in GB
})
{
"provisioner": "helm"
}
no
principal_domain Domain name of the users. For example, open-metadata.org. string "open-metadata.org" no
subnet_ids List of subnet IDs where the databases and OpenSearch will be deployed. The recommended configuration is to use private subnets. list(string) [] no
vpc_id VPC ID for deploying the databases and OpenSearch. For example, vpc-xxxxxxxx. string null no

Outputs

No outputs.