apiVersion: apps/v1 kind: Deployment metadata: name: ghtracker spec: replicas: 1 # one replica: each replica refreshes on its own and spends GitHub API budget strategy: type: Recreate selector: matchLabels: app.kubernetes.io/name: ghtracker template: metadata: labels: app.kubernetes.io/name: ghtracker spec: securityContext: runAsNonRoot: true seccompProfile: type: RuntimeDefault containers: - name: ghtracker image: ghcr.io/lukaszraczylo/ghtracker:latest # replace with the image you push args: ['-config', '/config/config.yaml'] envFrom: - secretRef: name: ghtracker-github-app ports: - name: http containerPort: 8080 readinessProbe: httpGet: { path: /healthz, port: http } periodSeconds: 10 livenessProbe: httpGet: { path: /metrics, port: http } periodSeconds: 30 resources: requests: { cpu: 10m, memory: 32Mi } limits: { memory: 128Mi } securityContext: allowPrivilegeEscalation: false readOnlyRootFilesystem: true capabilities: drop: [ALL] volumeMounts: - name: config mountPath: /config readOnly: true volumes: - name: config configMap: name: ghtracker