Add Azure deployment examples and enhance configuration management
- Update .gitignore to exclude Terraform files - Enhance README with Azure deployment instructions - Refactor publish.sh to use a container for changelog parsing - Add Azure example files including Terraform configurations - Create cloud-init templates for PKI and default configurations - Implement workload VM setup for testing routing
This commit is contained in:
@@ -0,0 +1,170 @@
|
||||
variable "location" {
|
||||
description = "Azure region to deploy into."
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "name" {
|
||||
description = "Base name used to derive resource names."
|
||||
type = string
|
||||
default = "vpn-router-example"
|
||||
}
|
||||
|
||||
variable "admin_ssh_public_key" {
|
||||
description = "SSH public key installed for the admin_username on both VMs."
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "admin_username" {
|
||||
description = "Admin username on both VMs."
|
||||
type = string
|
||||
default = "azureuser"
|
||||
}
|
||||
|
||||
variable "admin_password" {
|
||||
description = "Admin password for the router VM. SSH key auth is always configured; leaving this empty additionally disables password authentication, setting it enables password auth alongside the key."
|
||||
type = string
|
||||
default = ""
|
||||
sensitive = true
|
||||
}
|
||||
|
||||
variable "vm_size" {
|
||||
description = "VM size for the router."
|
||||
type = string
|
||||
default = "Standard_B2ls_v2"
|
||||
}
|
||||
|
||||
variable "local_fqdn" {
|
||||
description = "FQDN of the router, used as the road-warrior/IKE identity and, when dns_zone_id is set, as the name of the A record created for it."
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "dns_zone_id" {
|
||||
description = "Resource ID of an existing Azure DNS zone to create local_fqdn's A record in, pointing at the router's public IP. local_fqdn must be a name within that zone. Leave null to skip - local_fqdn is then just a label with nothing making it resolve."
|
||||
type = string
|
||||
nullable = true
|
||||
default = null
|
||||
}
|
||||
|
||||
variable "local_id_mode" {
|
||||
description = "IKE local identity source: fqdn, public_ip or internal_ip."
|
||||
type = string
|
||||
default = "fqdn"
|
||||
}
|
||||
|
||||
variable "local_cidrs" {
|
||||
description = "Local subnet CIDR(s) advertised into the site-to-site tunnel. Should include the workload subnet CIDR."
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "remote_addrs" {
|
||||
description = "Remote gateway address(es) or FQDN for the site-to-site tunnel."
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "remote_id" {
|
||||
description = "Remote peer's IKE identity, without a leading @."
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "remote_cidrs" {
|
||||
description = "Remote subnet CIDR(s) reachable through the site-to-site tunnel."
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "psk" {
|
||||
description = "Pre-shared key for the site-to-site IKEv2 tunnel."
|
||||
type = string
|
||||
sensitive = true
|
||||
}
|
||||
|
||||
variable "p2s_enabled" {
|
||||
description = "Enable road-warrior (P2S) access."
|
||||
type = bool
|
||||
default = false
|
||||
}
|
||||
|
||||
variable "p2s_address_pool" {
|
||||
description = "CIDR block assigned to road-warrior clients."
|
||||
type = string
|
||||
default = ""
|
||||
}
|
||||
|
||||
variable "ca_cert_file" {
|
||||
description = "Path to an existing CA certificate PEM to supply instead of letting the package generate one. Leave empty to auto-generate."
|
||||
type = string
|
||||
default = ""
|
||||
}
|
||||
|
||||
variable "server_cert_file" {
|
||||
description = "Path to an existing server certificate PEM, paired with ca_cert_file."
|
||||
type = string
|
||||
default = ""
|
||||
}
|
||||
|
||||
variable "server_key_file" {
|
||||
description = "Path to an existing server private key PEM, paired with ca_cert_file."
|
||||
type = string
|
||||
default = ""
|
||||
sensitive = true
|
||||
}
|
||||
|
||||
variable "wireguard_enabled" {
|
||||
description = "Enable the WireGuard endpoint."
|
||||
type = bool
|
||||
default = false
|
||||
}
|
||||
|
||||
variable "wireguard_address" {
|
||||
description = "Address and prefix length for the wg0 interface."
|
||||
type = string
|
||||
default = ""
|
||||
}
|
||||
|
||||
variable "wireguard_listen_port" {
|
||||
description = "UDP port WireGuard listens on."
|
||||
type = number
|
||||
default = 51820
|
||||
}
|
||||
|
||||
variable "deploy_workload_vm" {
|
||||
description = "Deploy a bare VM on the workload subnet, for manually verifying routing through the router."
|
||||
type = bool
|
||||
default = false
|
||||
}
|
||||
|
||||
variable "repo_url" {
|
||||
description = "Base URL of the Debian package repository the router pulls vpn-router from."
|
||||
type = string
|
||||
default = "https://gitea.koszewscy.waw.pl/api/packages/slawek/debian"
|
||||
}
|
||||
|
||||
variable "ubuntu_codename" {
|
||||
description = "Ubuntu release codename of the router VM's image, used to select the apt repo component."
|
||||
type = string
|
||||
default = "noble"
|
||||
}
|
||||
|
||||
variable "vnet_address_space" {
|
||||
description = "Address space of the example VNet."
|
||||
type = string
|
||||
default = "10.0.0.0/16"
|
||||
}
|
||||
|
||||
variable "ext_subnet_cidr" {
|
||||
description = "CIDR of the router's external (WAN-facing) subnet."
|
||||
type = string
|
||||
default = "10.0.1.0/24"
|
||||
}
|
||||
|
||||
variable "int_subnet_cidr" {
|
||||
description = "CIDR of the router's internal (protected-network-facing) subnet."
|
||||
type = string
|
||||
default = "10.0.2.0/24"
|
||||
}
|
||||
|
||||
variable "workload_subnet_cidr" {
|
||||
description = "CIDR of the demo protected workload subnet, routed through the router."
|
||||
type = string
|
||||
default = "10.0.3.0/24"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user