Improve ports configuration
This commit is contained in:
		
							parent
							
								
									ff92241ddb
								
							
						
					
					
						commit
						e17156a8ca
					
				
					 6 changed files with 37 additions and 10 deletions
				
			
		| 
						 | 
					@ -23,8 +23,6 @@ variable "services" {
 | 
				
			||||||
      name = string
 | 
					      name = string
 | 
				
			||||||
      type = string
 | 
					      type = string
 | 
				
			||||||
    })))
 | 
					    })))
 | 
				
			||||||
    ports = optional(list(string))
 | 
					 | 
				
			||||||
    certificates = optional(list(string))
 | 
					 | 
				
			||||||
    auth = bool
 | 
					    auth = bool
 | 
				
			||||||
    auth_cert = optional(string)
 | 
					    auth_cert = optional(string)
 | 
				
			||||||
    auth_redirects = optional(list(string))
 | 
					    auth_redirects = optional(list(string))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -14,8 +14,6 @@ variable "services" {
 | 
				
			||||||
      name = string
 | 
					      name = string
 | 
				
			||||||
      type = string
 | 
					      type = string
 | 
				
			||||||
    })))
 | 
					    })))
 | 
				
			||||||
    ports = optional(list(string))
 | 
					 | 
				
			||||||
    certificates = optional(list(string))
 | 
					 | 
				
			||||||
    auth = bool
 | 
					    auth = bool
 | 
				
			||||||
    auth_cert = optional(string)
 | 
					    auth_cert = optional(string)
 | 
				
			||||||
    auth_redirects = optional(list(string))
 | 
					    auth_redirects = optional(list(string))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,6 +5,7 @@ class FilterModule(object):
 | 
				
			||||||
            'services_to_dnscontrol': self.services_to_dnscontrol,
 | 
					            'services_to_dnscontrol': self.services_to_dnscontrol,
 | 
				
			||||||
            'services_get_backups': self.services_get_backups,
 | 
					            'services_get_backups': self.services_get_backups,
 | 
				
			||||||
            'service_get_backups': self.service_get_backups,
 | 
					            'service_get_backups': self.service_get_backups,
 | 
				
			||||||
 | 
					            'services_ports_to_docker': self.services_ports_to_docker,
 | 
				
			||||||
            'service_get_domain': self.service_get_domain,
 | 
					            'service_get_domain': self.service_get_domain,
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -46,6 +47,14 @@ class FilterModule(object):
 | 
				
			||||||
                    return dns_0.get("domain")
 | 
					                    return dns_0.get("domain")
 | 
				
			||||||
        return None
 | 
					        return None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def services_ports_to_docker(self, ports, type_filter=None):
 | 
				
			||||||
 | 
					        result = []
 | 
				
			||||||
 | 
					        for port in ports:
 | 
				
			||||||
 | 
					            if type_filter and port.get("type") != type_filter:
 | 
				
			||||||
 | 
					                continue
 | 
				
			||||||
 | 
					            result.append(f"{port['port']}:{port['port']}/{port['protocol']}")
 | 
				
			||||||
 | 
					        return result
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def services_to_dnscontrol(self, services):
 | 
					    def services_to_dnscontrol(self, services):
 | 
				
			||||||
        result = {}
 | 
					        result = {}
 | 
				
			||||||
        for service in services:
 | 
					        for service in services:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,7 +6,7 @@ caddy_acmedns_url: "https://{{ acme_dns.host }}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
caddy_ports_default:
 | 
					caddy_ports_default:
 | 
				
			||||||
  - "{{ host_vpn.ip }}:2019:2019"
 | 
					  - "{{ host_vpn.ip }}:2019:2019"
 | 
				
			||||||
caddy_ports_extra: "{{ host_services | map(attribute='ports') | flatten }}"
 | 
					caddy_ports_extra: "{{ host_services | map(attribute='ports') | flatten | services_ports_to_docker('reverse_proxy') }}"
 | 
				
			||||||
caddy_ports: "{{ caddy_ports_default | union(caddy_ports_extra) }}"
 | 
					caddy_ports: "{{ caddy_ports_default | union(caddy_ports_extra) }}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
caddy_env:
 | 
					caddy_env:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -42,9 +42,21 @@ services = {
 | 
				
			||||||
    name = "caddy"
 | 
					    name = "caddy"
 | 
				
			||||||
    host = "*"
 | 
					    host = "*"
 | 
				
			||||||
    ports = [
 | 
					    ports = [
 | 
				
			||||||
      "80:80",
 | 
					      {
 | 
				
			||||||
      "443:443",
 | 
					        port = 80
 | 
				
			||||||
      "443:443/udp",
 | 
					        protocol = "tcp"
 | 
				
			||||||
 | 
					        type = "reverse_proxy"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        port = 443
 | 
				
			||||||
 | 
					        protocol = "tcp"
 | 
				
			||||||
 | 
					        type = "reverse_proxy"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        port = 443
 | 
				
			||||||
 | 
					        protocol = "tcp"
 | 
				
			||||||
 | 
					        type = "reverse_proxy"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
      #"2019:2019",
 | 
					      #"2019:2019",
 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
    auth = false
 | 
					    auth = false
 | 
				
			||||||
| 
						 | 
					@ -418,7 +430,13 @@ services = {
 | 
				
			||||||
      url = "/_matrix/client/versions"
 | 
					      url = "/_matrix/client/versions"
 | 
				
			||||||
      group = "4-services"
 | 
					      group = "4-services"
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    ports = ["8448:8448"]
 | 
					    ports = [
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        port = 8448
 | 
				
			||||||
 | 
					        protocol = "tcp"
 | 
				
			||||||
 | 
					        type = "reverse_proxy"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
    auth = true
 | 
					    auth = true
 | 
				
			||||||
    auth_redirects = ["https://matrix.serguzim.me/_synapse/client/oidc/callback"]
 | 
					    auth_redirects = ["https://matrix.serguzim.me/_synapse/client/oidc/callback"]
 | 
				
			||||||
    database = true
 | 
					    database = true
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -145,7 +145,11 @@ variable "services" {
 | 
				
			||||||
      group = optional(string)
 | 
					      group = optional(string)
 | 
				
			||||||
      conditions = optional(list(string))
 | 
					      conditions = optional(list(string))
 | 
				
			||||||
    }))
 | 
					    }))
 | 
				
			||||||
    ports = optional(list(string))
 | 
					    ports = optional(list(object({
 | 
				
			||||||
 | 
					      port = number
 | 
				
			||||||
 | 
					      protocol = string
 | 
				
			||||||
 | 
					      type = string
 | 
				
			||||||
 | 
					    })))
 | 
				
			||||||
    certificates = optional(list(string))
 | 
					    certificates = optional(list(string))
 | 
				
			||||||
    auth = bool
 | 
					    auth = bool
 | 
				
			||||||
    auth_cert = optional(string)
 | 
					    auth_cert = optional(string)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue