apiVersion: apps/v1
kind: Deployment
metadata:
  name: codesearch
  namespace: codesearch
  labels:
    app: codesearch
spec:
  replicas: 1
  selector:
    matchLabels:
      app: codesearch
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
    type: RollingUpdate
  progressDeadlineSeconds: 3600
  template:
    metadata:
      labels:
        app: codesearch
    spec:
      tolerations:
      - key: "codesearch"
        operator: "Equal"
        value: "true"
        effect: "NoSchedule"
      nodeSelector:
        cloud.google.com/gke-nodepool: "nap-c4-highmem-8"
      terminationGracePeriodSeconds: 30
      initContainers:
      - name: codesearch-fetch
        # Placeholder image until we can add image under control of k8s.io
        # Issue to track this work: https://github.com/kubernetes/k8s.io/issues/2182
        image: gcr.io/k8s-staging-infra-tools/cs-fetch-repos:v20240417-4a8d8af41
        volumeMounts:
        - name: config
          mountPath: /data
        resources:
          limits:
            cpu: "0.1"
            memory: 128Mi
      containers:
        - name: codesearch
          image: ghcr.io/hound-search/hound:latest
          ports:
            - containerPort: 6080
              protocol: TCP
          volumeMounts:
          - name: config
            mountPath: /data
          resources:
            limits:
              cpu: 6
              memory: 24Gi
            requests:
              cpu: 6
              memory: 24Gi
      volumes:
      - name: config
        emptyDir: {}
