Skip to content

Commit 1eee52a

Browse files
authored
fix(controller): no cert domain do not redirect https (#162)
1 parent b9c0d12 commit 1eee52a

1 file changed

Lines changed: 11 additions & 1 deletion

File tree

rootfs/api/models/gateway.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from django.conf import settings
44
from django.shortcuts import get_object_or_404
55
from django.contrib.auth import get_user_model
6+
from django.db.models import Q
67

78
from api.exceptions import ServiceUnavailable
89
from scheduler import KubeException
@@ -196,6 +197,15 @@ def hostnames(self):
196197
return [domain.domain for domain in self.app.domain_set.filter(
197198
ptype=self.ptype)]
198199

200+
@property
201+
def tls_force_hostnames(self):
202+
tls = self.app.tls_set.latest()
203+
q = Q(ptype=self.ptype)
204+
if not tls.certs_auto_enabled:
205+
q &= Q(certificate__isnull=False)
206+
domains = self.app.domain_set.filter(q)
207+
return [domain.domain for domain in domains]
208+
199209
@property
200210
def default_rules(self):
201211
service = get_object_or_404(self.app.service_set, ptype=self.ptype)
@@ -350,7 +360,7 @@ def _https_enforced_to_k8s(self, parent_refs):
350360
}
351361
}]
352362
}],
353-
"hostnames": self.hostnames,
363+
"hostnames": self.tls_force_hostnames,
354364
"parent_refs": parent_refs,
355365
}
356366
try:

0 commit comments

Comments
 (0)