apiVersion: apps/v1 kind: Deployment metadata: name: searxng namespace: searxng spec: replicas: 3 selector: matchLabels: app: searxng template: metadata: labels: app: searxng spec: topologySpreadConstraints: - maxSkew: 1 topologyKey: kubernetes.io/hostname whenUnsatisfiable: ScheduleAnyway labelSelector: matchLabels: app: searxng containers: - image: docker.io/searxng/searxng:latest name: searxng env: - name: SEARXNG_BASE_URL value: https://search.trivernis.net - name: SEARXNG_INSTANCE_NAME value: trivial - name: SEARXNG_PORT value: "8080" - name: SEARXNG_REDIS_URL value: redis://redis-srv:6379 volumeMounts: - name: config-volume mountPath: /etc/searxng ports: - name: port-searxng containerPort: 80 volumes: - name: config-volume configMap: name: searxng-config --- apiVersion: apps/v1 kind: Deployment metadata: name: redis namespace: searxng spec: replicas: 1 selector: matchLabels: app: redis template: metadata: labels: app: redis spec: containers: - image: docker.io/redis:alpine name: redis ports: - name: port-redis containerPort: 6379 --- apiVersion: v1 kind: Service metadata: name: redis-srv namespace: searxng spec: ports: - port: 6379 protocol: TCP targetPort: 6379 selector: app: redis type: ClusterIP --- apiVersion: v1 kind: Service metadata: name: searxng-srv namespace: searxng spec: ports: - port: 8080 protocol: TCP targetPort: 8080 selector: app: searxng type: ClusterIP