From 387838819b780ad60a8e0cb2ab7fa12ed59bc36e Mon Sep 17 00:00:00 2001 From: Paul Payne Date: Fri, 10 Jul 2026 03:35:56 +0000 Subject: [PATCH] Adds wild-directory server. --- wild-directory-server/app.yaml | 6 ++ .../versions/1/deployment.yaml | 66 +++++++++++++++++++ wild-directory-server/versions/1/ingress.yaml | 23 +++++++ .../versions/1/kustomization.yaml | 15 +++++ .../versions/1/manifest.yaml | 17 +++++ .../versions/1/namespace.yaml | 4 ++ wild-directory-server/versions/1/pvc.yaml | 10 +++ wild-directory-server/versions/1/service.yaml | 10 +++ 8 files changed, 151 insertions(+) create mode 100644 wild-directory-server/app.yaml create mode 100644 wild-directory-server/versions/1/deployment.yaml create mode 100644 wild-directory-server/versions/1/ingress.yaml create mode 100644 wild-directory-server/versions/1/kustomization.yaml create mode 100644 wild-directory-server/versions/1/manifest.yaml create mode 100644 wild-directory-server/versions/1/namespace.yaml create mode 100644 wild-directory-server/versions/1/pvc.yaml create mode 100644 wild-directory-server/versions/1/service.yaml diff --git a/wild-directory-server/app.yaml b/wild-directory-server/app.yaml new file mode 100644 index 0000000..dbb88b2 --- /dev/null +++ b/wild-directory-server/app.yaml @@ -0,0 +1,6 @@ +name: wild-directory-server +is: wild-directory-server +description: Public web UI and API for a Wild Cloud app directory. Browse, search, and explore available apps. Host your own directory or point to a community-maintained one. +category: services +icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/gitea.svg +latest: "1" diff --git a/wild-directory-server/versions/1/deployment.yaml b/wild-directory-server/versions/1/deployment.yaml new file mode 100644 index 0000000..4be61d7 --- /dev/null +++ b/wild-directory-server/versions/1/deployment.yaml @@ -0,0 +1,66 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: wild-directory-server +spec: + replicas: 1 + strategy: + type: Recreate + selector: + matchLabels: + app: wild-directory-server + template: + metadata: + labels: + app: wild-directory-server + spec: + securityContext: + runAsNonRoot: false + seccompProfile: + type: RuntimeDefault + containers: + - name: server + image: git.civilsociety.dev/wild-cloud/wild-directory-server:latest + ports: + - containerPort: 5066 + env: + - name: WILD_DIRECTORY_PATH + value: /data/apps + - name: WILD_DIRECTORY_GIT_URL + value: {{ .gitUrl }} + - name: WILD_DIRECTORY_GIT_BRANCH + value: {{ .gitBranch }} + - name: WILD_DIRECTORY_GIT_SYNC_INTERVAL + value: {{ .gitSyncInterval }} + - name: WILD_DIRECTORY_PORT + value: "5066" + - name: WILD_STATIC_DIR + value: /static + volumeMounts: + - name: data + mountPath: /data/apps + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + add: + - CHOWN + - SETUID + - SETGID + readinessProbe: + httpGet: + path: /health + port: 5066 + initialDelaySeconds: 10 + periodSeconds: 10 + livenessProbe: + httpGet: + path: /health + port: 5066 + initialDelaySeconds: 30 + periodSeconds: 30 + volumes: + - name: data + persistentVolumeClaim: + claimName: wild-directory-server-data diff --git a/wild-directory-server/versions/1/ingress.yaml b/wild-directory-server/versions/1/ingress.yaml new file mode 100644 index 0000000..2faa386 --- /dev/null +++ b/wild-directory-server/versions/1/ingress.yaml @@ -0,0 +1,23 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: wild-directory-server + annotations: + external-dns.alpha.kubernetes.io/target: '{{ .externalDnsDomain }}' +spec: + ingressClassName: traefik + tls: + - hosts: + - '{{ .domain }}' + secretName: '{{ .tlsSecretName }}' + rules: + - host: '{{ .domain }}' + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: wild-directory-server + port: + number: 5066 diff --git a/wild-directory-server/versions/1/kustomization.yaml b/wild-directory-server/versions/1/kustomization.yaml new file mode 100644 index 0000000..53243c4 --- /dev/null +++ b/wild-directory-server/versions/1/kustomization.yaml @@ -0,0 +1,15 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: {{ .namespace }} +labels: + - includeSelectors: true + pairs: + app: wild-directory-server + managedBy: kustomize + partOf: wild-cloud +resources: + - namespace.yaml + - pvc.yaml + - deployment.yaml + - service.yaml + - ingress.yaml diff --git a/wild-directory-server/versions/1/manifest.yaml b/wild-directory-server/versions/1/manifest.yaml new file mode 100644 index 0000000..56fb145 --- /dev/null +++ b/wild-directory-server/versions/1/manifest.yaml @@ -0,0 +1,17 @@ +version: 0.2.0-1 +requires: + - name: postgres +defaultConfig: + namespace: wild-directory-server + domain: wild-directory.{{ .cloud.domain }} + externalDnsDomain: '{{ .cloud.domain }}' + tlsSecretName: wildcard-wild-cloud-tls + gitUrl: https://git.civilsociety.dev/wild-cloud/wild-directory.git + gitBranch: main + gitSyncInterval: 5m + storage: 1Gi +defaultSecrets: + - key: jwtSecret + - key: dbPassword +requiredSecrets: + - postgres.password diff --git a/wild-directory-server/versions/1/namespace.yaml b/wild-directory-server/versions/1/namespace.yaml new file mode 100644 index 0000000..054927e --- /dev/null +++ b/wild-directory-server/versions/1/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: {{ .namespace }} diff --git a/wild-directory-server/versions/1/pvc.yaml b/wild-directory-server/versions/1/pvc.yaml new file mode 100644 index 0000000..a87375e --- /dev/null +++ b/wild-directory-server/versions/1/pvc.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: wild-directory-server-data +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: {{ .storage }} diff --git a/wild-directory-server/versions/1/service.yaml b/wild-directory-server/versions/1/service.yaml new file mode 100644 index 0000000..071ac62 --- /dev/null +++ b/wild-directory-server/versions/1/service.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Service +metadata: + name: wild-directory-server +spec: + selector: + app: wild-directory-server + ports: + - port: 5066 + targetPort: 5066