From d751443f4f6521f45d4aa0a112eb34c3a84c78a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mois=C3=A9s=20Gonz=C3=A1lez?= Date: Fri, 23 May 2025 13:50:57 -0400 Subject: [PATCH] fix: add meilisearch and notes ingress Both services expose a public API and should come with an ingress by default. Previously you would have use the `DRYDOCK_INGRESS_EXTRA_HOSTS` setting in order to create the additional ingress objects. --- .github/requirements.txt | 1 + drydock/patches/kustomization-resources | 2 ++ .../drydock/k8s/ingress/meilisearch.yml | 34 +++++++++++++++++++ .../templates/drydock/k8s/ingress/notes.yml | 34 +++++++++++++++++++ 4 files changed, 71 insertions(+) create mode 100644 drydock/templates/drydock/k8s/ingress/meilisearch.yml create mode 100644 drydock/templates/drydock/k8s/ingress/notes.yml diff --git a/.github/requirements.txt b/.github/requirements.txt index f8d88bcc..c37cfed9 100644 --- a/.github/requirements.txt +++ b/.github/requirements.txt @@ -1,5 +1,6 @@ tutor~=19.0 tutor-mfe~=19.0 +tutor-forum~=19.0 tutor-minio~=19.0 setuptools git+https://github.com/edunext/tutor-contrib-s3@sumac diff --git a/drydock/patches/kustomization-resources b/drydock/patches/kustomization-resources index a2f3c9c3..87956711 100644 --- a/drydock/patches/kustomization-resources +++ b/drydock/patches/kustomization-resources @@ -8,6 +8,8 @@ - plugins/drydock/k8s/ingress/lms.yml - plugins/drydock/k8s/ingress/cms.yml - plugins/drydock/k8s/ingress/mfe.yml +- plugins/drydock/k8s/ingress/meilisearch.yml +- plugins/drydock/k8s/ingress/notes.yml - plugins/drydock/k8s/ingress/extra-hosts.yml - plugins/drydock/k8s/ingress/static-cache.yml {%- endif %} diff --git a/drydock/templates/drydock/k8s/ingress/meilisearch.yml b/drydock/templates/drydock/k8s/ingress/meilisearch.yml new file mode 100644 index 00000000..3499f39c --- /dev/null +++ b/drydock/templates/drydock/k8s/ingress/meilisearch.yml @@ -0,0 +1,34 @@ +{%- if RUN_MEILISEARCH %} +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: meilisearch + namespace: {{ K8S_NAMESPACE }} + {%- if DRYDOCK_AUTO_TLS and not DRYDOCK_CUSTOM_CERTS %} + annotations: + cert-manager.io/issuer: letsencrypt + {%- endif %} +spec: + ingressClassName: nginx + rules: + - host: {{ MEILISEARCH_HOST }} + http: + paths: + - pathType: Prefix + path: "/" + backend: + service: + name: {% if DRYDOCK_BYPASS_CADDY -%}meilisearch{% else -%}caddy{% endif %} + port: + number: {% if DRYDOCK_BYPASS_CADDY -%}7700{% else -%}80{% endif %} + {%- if DRYDOCK_AUTO_TLS or DRYDOCK_CUSTOM_CERTS %} + tls: + - hosts: + - {{ MEILISEARCH_HOST }} + {%- if DRYDOCK_CUSTOM_CERTS %} + secretName: {{ DRYDOCK_CUSTOM_CERTS["secret_name"]|default("custom-tls-certs") }} + {%- else %} + secretName: meilisearch-host-tls + {%- endif %} + {%- endif %} +{%- endif %} diff --git a/drydock/templates/drydock/k8s/ingress/notes.yml b/drydock/templates/drydock/k8s/ingress/notes.yml new file mode 100644 index 00000000..f4e9bb52 --- /dev/null +++ b/drydock/templates/drydock/k8s/ingress/notes.yml @@ -0,0 +1,34 @@ +{%- if 'notes' in PLUGINS %} +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: notes + namespace: {{ K8S_NAMESPACE }} + {%- if DRYDOCK_AUTO_TLS and not DRYDOCK_CUSTOM_CERTS %} + annotations: + cert-manager.io/issuer: letsencrypt + {%- endif %} +spec: + ingressClassName: nginx + rules: + - host: {{ NOTES_HOST }} + http: + paths: + - pathType: Prefix + path: "/" + backend: + service: + name: {% if DRYDOCK_BYPASS_CADDY -%}notes{% else -%}caddy{% endif %} + port: + number: {% if DRYDOCK_BYPASS_CADDY -%}7700{% else -%}80{% endif %} + {%- if DRYDOCK_AUTO_TLS or DRYDOCK_CUSTOM_CERTS %} + tls: + - hosts: + - {{ NOTES_HOST }} + {%- if DRYDOCK_CUSTOM_CERTS %} + secretName: {{ DRYDOCK_CUSTOM_CERTS["secret_name"]|default("custom-tls-certs") }} + {%- else %} + secretName: notes-host-tls + {%- endif %} + {%- endif %} +{%- endif %}