CloudQuery Azure Module
This folder contains a Terraform module to deploy a CloudQuery cluster in Azure on top of AKS.
Usage
Examples are included in the example folder, but simple usage is as follows:
module "cloudquery" {
source = "cloudquery/cloudquery/azure"
version = "~> 0.1"
name = "cloudquery"
# path to your cloudquery config
config_file = "config.yml"
}
Existing VPC
TDB
Run Helm Separately
TDB
Examples
Requirements
Name | Version |
---|---|
terraform | >= 0.15 |
azurerm | >= 2.4.6 |
helm | >= 2.5 |
kubernetes | ~> 2.11 |
random | ~> 3.3 |
Providers
Name | Version |
---|---|
azurerm | >= 2.4.6 |
helm | >= 2.5 |
random | ~> 3.3 |
Modules
Name | Source | Version |
---|---|---|
aks | github.com/Azure/terraform-azurerm-aks | 6.2.0 |
naming | Azure/naming/azurerm | ~> 0.2.0 |
network | Azure/network/azurerm | ~> 3.5.0 |
postgresql | github.com/Azure/terraform-azurerm-postgresql | 0f607dbc9d08528bb16a48fc9dc8831aa4a92f5c |
Resources
Name | Type |
---|---|
azurerm_key_vault.vault | resource |
azurerm_key_vault_secret.pg_dsn | resource |
azurerm_key_vault_secret.pg_password | resource |
azurerm_private_endpoint.psql_private_endpoint | resource |
azurerm_resource_group.rg | resource |
helm_release.cloudquery | resource |
random_password.postgresql | resource |
azurerm_client_config.current | data source |
Inputs
Name | Description | Type | Default | Required |
---|---|---|---|---|
chart_values | Variables to pass to the helm chart | string |
"" |
no |
chart_version | The version of CloudQuery helm chart | string |
"1.0.32" |
no |
config_file | Path to the CloudQuery config.hcl | string |
"" |
no |
install_helm_chart | Enable/Disable helm chart installation | bool |
true |
no |
kubernetes_enable_host_encryption | Enable Host Encryption for default node pool. Encryption at host feature must be enabled on the subscription: https://docs.microsoft.com/azure/virtual-machines/linux/disks-enable-host-based-encryption-cli | bool |
false |
no |
kubernetes_node_disk_size_gb | Node disk size in gb. | number |
30 |
no |
kubernetes_orchestrator_version | Specify which Kubernetes release to use for the orchestration layer. The default used is the latest Kubernetes version available in the region | string |
"1.23.5" |
no |
kubernetes_private_cluster_enabled | If true cluster API server will be exposed only on internal IP address and available only in cluster vnet. | bool |
false |
no |
kubernetes_sku_tier | The SKU Tier that should be used for this Kubernetes Cluster. Possible values are Free and Paid | string |
"Free" |
no |
kubernetes_version | Specify which Kubernetes release to use. The default used is the latest Kubernetes version available in the region | string |
"1.23.5" |
no |
location | The location to host resources | string |
n/a | yes |
name | Name to use on all resources created | string |
"cloudquery" |
no |
postgres_backup_retention_days | Retention days for backup | number |
7 |
no |
postgres_firewall_rules | If Postgres is publicly accessible you will need to specified a firewall rule to allow connections | list(object({ |
[] |
no |
postgres_publicly_accessible | Make Postgres publicly accessible (might be needed if you want to connect to it from Grafana or other tools). | bool |
false |
no |
postgres_server_version | Version of Azure Postgres engine to use | string |
"11" |
no |
postgres_sku_name | Postgresql sku name | string |
"GP_Gen5_2" |
no |
tags | A map of tags to use on all resources | map(string) |
{} |
no |
Outputs
Name | Description |
---|---|
aks_host | AKS host |
network_id | ID of the network that was created |
postgres_fqdn | Fqdn of the Postgres server |
postgres_server_administrator_password | Administrator password for cloudquery database |
Troubleshooting
If helm installtion is stuck in some hanging state you can run the following commands:
# check if helm is installed in cloudquery namespace
helm ls -n cloudquery
# If yes uninstall with the your release name
helm uninstall YOUR_RELEASE_NAME -n cloudquery
Authors
Module is maintained by CloudQuery Team.
License
Apache 2 Licensed. See LICENSE for full details.