From 767985e5d56532d883742968a40ca3e1e0477f91 Mon Sep 17 00:00:00 2001 From: Liam Date: Tue, 24 Sep 2024 07:01:24 +0100 Subject: [PATCH] feat(apps): add searxng --- .../apps/production/searxng/deployment.yaml | 29 +++++++++++++++++++ .../apps/production/searxng/ingress.yaml | 21 ++++++++++++++ .../production/searxng/kustomization.yaml | 10 +++++++ kubernetes/apps/production/searxng/pvc.yaml | 12 ++++++++ .../apps/production/searxng/redis-pod.yaml | 23 +++++++++++++++ .../apps/production/searxng/service.yaml | 13 +++++++++ 6 files changed, 108 insertions(+) create mode 100644 kubernetes/apps/production/searxng/deployment.yaml create mode 100644 kubernetes/apps/production/searxng/ingress.yaml create mode 100644 kubernetes/apps/production/searxng/kustomization.yaml create mode 100644 kubernetes/apps/production/searxng/pvc.yaml create mode 100644 kubernetes/apps/production/searxng/redis-pod.yaml create mode 100644 kubernetes/apps/production/searxng/service.yaml diff --git a/kubernetes/apps/production/searxng/deployment.yaml b/kubernetes/apps/production/searxng/deployment.yaml new file mode 100644 index 0000000..76f112d --- /dev/null +++ b/kubernetes/apps/production/searxng/deployment.yaml @@ -0,0 +1,29 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: searxng + namespace: public-services +spec: + replicas: 1 + selector: + matchLabels: + app: searxng + template: + metadata: + labels: + app: searxng + spec: + containers: + - name: searxng + image: docker.io/searxng/searxng:2024.9.23-6be56aee1 + ports: + - containerPort: 8080 + env: + - name: SEARXNG_BASE_URL + value: "https://search.fascinated.cc" + resources: + limits: + memory: "256Mi" + cpu: "500m" + restartPolicy: Always diff --git a/kubernetes/apps/production/searxng/ingress.yaml b/kubernetes/apps/production/searxng/ingress.yaml new file mode 100644 index 0000000..882096f --- /dev/null +++ b/kubernetes/apps/production/searxng/ingress.yaml @@ -0,0 +1,21 @@ +apiVersion: traefik.io/v1alpha1 +kind: IngressRoute +metadata: + name: searxng-ingress + namespace: public-services + annotations: + kubernetes.io/ingress.class: traefik-external +spec: + entryPoints: + - websecure + routes: + - match: Host(`search.fascinated.cc`) + kind: Rule + middlewares: + - name: default-headers + namespace: traefik + services: + - name: searxng-service + port: 8080 + tls: + secretName: fascinated-cc diff --git a/kubernetes/apps/production/searxng/kustomization.yaml b/kubernetes/apps/production/searxng/kustomization.yaml new file mode 100644 index 0000000..097a10d --- /dev/null +++ b/kubernetes/apps/production/searxng/kustomization.yaml @@ -0,0 +1,10 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: public-services +resources: + - pvc.yaml + - redis-pod.yaml + - deployment.yaml + - service.yaml + - ingress.yaml diff --git a/kubernetes/apps/production/searxng/pvc.yaml b/kubernetes/apps/production/searxng/pvc.yaml new file mode 100644 index 0000000..40e78d4 --- /dev/null +++ b/kubernetes/apps/production/searxng/pvc.yaml @@ -0,0 +1,12 @@ +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: searxng-redis-pvc + namespace: public-services +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi diff --git a/kubernetes/apps/production/searxng/redis-pod.yaml b/kubernetes/apps/production/searxng/redis-pod.yaml new file mode 100644 index 0000000..b946928 --- /dev/null +++ b/kubernetes/apps/production/searxng/redis-pod.yaml @@ -0,0 +1,23 @@ +--- +apiVersion: v1 +kind: Pod +metadata: + name: searxng-redis + namespace: public-services +spec: + containers: + - name: redis + image: docker.io/valkey/valkey:8-alpine + command: ["valkey-server", "--save", "30", "1", "--loglevel", "warning"] + volumeMounts: + - name: redis-data + mountPath: /data + resources: + limits: + memory: "256Mi" + cpu: "500m" + restartPolicy: Always + volumes: + - name: redis-data + persistentVolumeClaim: + claimName: searxng-redis-pvc diff --git a/kubernetes/apps/production/searxng/service.yaml b/kubernetes/apps/production/searxng/service.yaml new file mode 100644 index 0000000..c21e315 --- /dev/null +++ b/kubernetes/apps/production/searxng/service.yaml @@ -0,0 +1,13 @@ +--- +apiVersion: v1 +kind: Service +metadata: + name: searxng-service + namespace: public-services +spec: + type: ClusterIP + ports: + - port: 8080 + targetPort: 8080 + selector: + app: searxng