Patrick de Ruiter 88f64911a7
All checks were successful
Code Quality & Security Scan / TFLint (push) Successful in 18s
Code Quality & Security Scan / Terraform Destroy (push) Has been skipped
Code Quality & Security Scan / Tfsec Security Scan (push) Successful in 27s
Code Quality & Security Scan / Checkov Security Scan (push) Successful in 44s
Code Quality & Security Scan / Terraform Validate (push) Successful in 39s
Code Quality & Security Scan / SonarQube Scan (push) Successful in 37s
Code Quality & Security Scan / Terraform Plan (push) Successful in 1m24s
Code Quality & Security Scan / Terraform Apply (push) Successful in 1m31s
fix: Add DNS server configuration support for internal hostname resolution
Added dns_servers variable to allow configuring custom DNS servers for
the container to resolve internal hostnames.

Changes:
- Added dns_servers variable (list of strings, default empty)
- Added dns configuration to docker_container resource in main.tf
- Allows container to resolve internal domains like gitea.bsdserver.nl

This fixes the ENOTFOUND DNS resolution error where the container
couldn't resolve internal Gitea hostname, which was being reported
as an "Authentication failure" but was actually a network/DNS issue.

The error was:
  getaddrinfo ENOTFOUND gitea.bsdserver.nl

Usage:
  dns_servers = ["192.168.x.x", "192.168.x.y"]

If not specified (default), container uses Docker's default DNS.
2025-11-19 14:27:42 +01:00

120 lines
2.9 KiB
HCL

# Renovate Configuration Variables
# Container Configuration
variable "container_name" {
description = "Name of the Renovate container"
type = string
default = "renovate"
}
variable "renovate_image" {
description = "Docker image for Renovate"
type = string
default = "renovate/renovate:latest"
}
variable "restart_policy" {
description = "Restart policy for the container (no, on-failure, always, unless-stopped)"
type = string
default = "unless-stopped"
}
# Resource Limits
variable "memory_limit" {
description = "Memory limit for the container in MB (e.g., 2048 for 2GB)"
type = number
default = 2048
}
variable "memory_swap_limit" {
description = "Memory swap limit for the container in MB (-1 for unlimited)"
type = number
default = -1
}
# Networking
variable "domain" {
description = "Domain name for the application"
type = string
default = "bsdserver.lan"
}
variable "dns_name" {
description = "DNS name for the Renovate service (defaults to container_name if not specified)"
type = string
default = null
}
variable "create_cname_record" {
description = "Whether to create a DNS CNAME record"
type = bool
default = false
}
variable "dns_servers" {
description = "List of DNS servers for the container to use for hostname resolution"
type = list(string)
default = []
}
# Renovate Platform Configuration
variable "renovate_autodiscover" {
description = "Enable autodiscovery of repositories"
type = bool
default = true
}
variable "renovate_onboarding_config" {
description = "Onboarding configuration for Renovate (JSON string)"
type = string
default = "{\"$schema\":\"https://docs.renovatebot.com/renovate-schema.json\",\"extends\":[\"config:recommended\"]}"
}
# Optional GitHub.com token for fetching changelogs
variable "github_com_token" {
description = "GitHub.com token for fetching changelogs (optional)"
type = string
default = ""
sensitive = true
}
# Logging
variable "log_level" {
description = "Log level for Renovate (debug, info, warn, error)"
type = string
default = "debug"
}
variable "extra_env_vars" {
description = "Additional environment variables for the container"
type = list(string)
default = []
}
# Config File Management
variable "upload_config_file" {
description = "Whether to upload a config.js file to the container"
type = bool
default = true
}
# Vault Authentication
variable "role_id" {
description = "Role ID for Vault AppRole authentication"
type = string
sensitive = true
}
variable "secret_id" {
description = "Secret ID for Vault AppRole authentication"
type = string
sensitive = true
}
variable "vault_skip_tls_verify" {
description = "Skip TLS verification for Vault (useful for self-signed certificates)"
type = bool
default = true
}