From 54f981ad0d901e280be39c78d8c9e62da25da276 Mon Sep 17 00:00:00 2001 From: Malcolm Holmes Date: Thu, 9 Apr 2020 23:19:19 +0100 Subject: [PATCH] Separate domains, add dyndns annotation --- wordpress/ingress.libsonnet | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/wordpress/ingress.libsonnet b/wordpress/ingress.libsonnet index 986bb31..f89fc7e 100644 --- a/wordpress/ingress.libsonnet +++ b/wordpress/ingress.libsonnet @@ -3,30 +3,32 @@ local k = import 'ksonnet-util/kausal.libsonnet'; { local ingress = k.extensions.v1beta1.ingress, - withIngress(domains=[], extraDomains=[]):: { + addIngress(name, domains=[], extraDomains=[], zone=null, domain='', service=''):: + + local serviceName = if service == '' then name else service; - local name = super.config.name, local domainlist = (if std.length(domains) == 0 then - [ super.config.domain, 'www.%s' % super.config.domain] + [ domain, 'www.%s' % domain] else domains - ) + extraDomains, + ) + extraDomains; local rule(dom) = ingress.mixin.specType.rulesType.mixin.http.withPaths( ingress.mixin.spec.rulesType.mixin.httpType.pathsType.withPath('/') - + ingress.mixin.specType.mixin.backend.withServiceName(name) + + ingress.mixin.specType.mixin.backend.withServiceName(serviceName) + ingress.mixin.specType.mixin.backend.withServicePort(80)) + ingress.mixin.spec.rulesType.withHost(dom) - , + ; - ingress: ingress.new() + ingress.new() + ingress.mixin.metadata.withName(name) + ingress.mixin.spec.withTls({hosts: domainlist, secretName: name}) + ingress.mixin.metadata.withAnnotationsMixin({ 'kubernetes.io/tls-acme': 'true', 'kubernetes.io/ingress.class': 'nginx', 'nginx.ingress.kubernetes.io/affinity-mode': 'persistent', + [if zone != null then 'odoko.com/dyn-dns-zone' else null]: zone, }) - + ingress.mixin.spec.backend.mixinInstance({serviceName: name, servicePort: 80}) + + ingress.mixin.spec.backend.mixinInstance({serviceName: serviceName, servicePort: 80}) + ingress.mixin.spec.withRules( [ rule(dom) @@ -34,5 +36,9 @@ local k = import 'ksonnet-util/kausal.libsonnet'; ] ) , - } + + withIngress(domains=[], extraDomains=[], zone=null):: { + local name = super.config.name, + ingress: $.addIngress(name, domains, extraDomains, zone, domain = super.config.domain), + }, }