---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: homepage
  labels:
    app.kubernetes.io/name: homepage
spec:
  revisionHistoryLimit: 3
  replicas: 1
  strategy:
    type: RollingUpdate
  selector:
    matchLabels:
      app.kubernetes.io/name: homepage
  template:
    metadata:
      labels:
        app.kubernetes.io/name: homepage
    spec:
      serviceAccountName: homepage
      automountServiceAccountToken: true
      dnsPolicy: ClusterFirst
      enableServiceLinks: true
      containers:
        - name: homepage
          image: homepage
          volumeMounts:
            - mountPath: /app/config
              name: homepage-config
              readOnly: true
            - mountPath: /app/config/logs
              name: logs
          resources:
            requests:
              memory: 256Mi
              cpu: 100m
            limits:
              memory: 512Mi
              cpu: 200m
        - name: oauth2-proxy
          image: oauth2-proxy
          envFrom:
            - secretRef:
                name: oauth2-proxy-base-config
            - secretRef:
                name: oauth2-proxy-secret-config
          ports:
            - name: http
              containerPort: 3001
              protocol: TCP
          resources:
            requests:
              memory: 50Mi
              cpu: 10m
            limits:
              memory: 100Mi
              cpu: 20m
      affinity:
        nodeAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
            - weight: 100
              preference:
                matchExpressions:
                  - key: kubernetes.io/arch
                    operator: In
                    values:
                      - arm64
      volumes:
        - name: homepage-config
          secret:
            secretName: homepage-config
        - name: logs
          emptyDir: {}