diff --git a/base/ingress.k b/base/ingress.k new file mode 100644 index 0000000..b97494c --- /dev/null +++ b/base/ingress.k @@ -0,0 +1,37 @@ +import k8s.api.networking.v1 as networkingv1 + +schema HTTPService: + """http service""" + service: str + domain: str + +httpServiceRender = lambda h: HTTPService { + """Render http service to Ingress""" + ingress = networkingv1.Ingress { + apiVersion = "networking.k8s.io/v1" + kind = "Ingress" + metadata = { + name = h.service + } + spec = { + rules = [{ + host = h.domain + http = { + paths = [{ + path = "/" + pathType = "Prefix" + backend = { + service = { + name = h.service + port = { + number = 80 + } + } + } + }] + } + }] + } + } + [ingress] +} diff --git a/main.k b/main.k index 3e22a71..28cf375 100644 --- a/main.k +++ b/main.k @@ -24,6 +24,11 @@ envs = base.Envs { } } +https = base.HTTPService { + service = "nginxxx" + domain = "nginxxx.suyiiyii.top" +} + deploys = sum([base.appRender(a) for a in apps], []) # print(yaml.encode(deploys)) apps_manifests = [base.envInjector(envs, deploy) for deploy in deploys]