blob: 3d84839e3d0eb6343acc4b794d0938392569c087 [file] [log] [blame]
{{$svcAcctSplit := .serviceAccount | split "@"}}{{$svcAcct := $svcAcctSplit._0}}
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: autoroll-be-{{.rollerName}}
spec:
serviceName: "autoroll-be-{{.rollerName}}"
replicas: 1
selector:
matchLabels:
app: autoroll-be-{{.rollerName}}
updateStrategy:
type: RollingUpdate
template:
metadata:
labels:
app: autoroll-be-{{.rollerName}} # Pod template's label selector
appgroup: autoroll
owner-primary: {{.ownerPrimary}}
owner-secondary: {{.ownerSecondary}}
annotations:
prometheus.io.scrape: "true"
prometheus.io.port: "20000"
spec:
automountServiceAccountToken: false
securityContext:
runAsUser: 2000 # aka skia
fsGroup: 2000 # aka skia
containers:
- name: autoroll-be-{{.rollerName}}
image: {{.image}}
command: ["/usr/local/bin/autoroll-be"]
args:
- "--logtostderr"
- "--config={{.configBase64}}"
- "--email_creds=/var/secrets/autoroll-email-creds"
- "--firestore_instance=production"
- "--port=:8000"
- "--prom_port=:20000"
- "--recipes_cfg=/usr/local/share/autoroll/recipes.cfg"
- "--workdir={{if .kubernetes.disk}}/data{{else}}/tmp{{end}}"
- "--chat_webhooks_file=/etc/notifier-chat-config/chat_config.txt"
ports:
- containerPort: 8000
- containerPort: 20000
volumeMounts:{{if .kubernetes.disk}}
- name: autoroll-be-{{.rollerName}}-storage
mountPath: /data{{end}}
- name: autoroll-be-{{$svcAcct}}-sa
mountPath: /var/secrets/google
- name: autoroll-email-creds
mountPath: /var/secrets/autoroll-email-creds
- name: notifier-chat-config
mountPath: /etc/notifier-chat-config/
{{- range $index, $secret := .kubernetes.secrets}}
- name: {{$secret.name}}
mountPath: {{$secret.mountPath}}
{{- end}}
env:
- name: GOOGLE_APPLICATION_CREDENTIALS
value: /var/secrets/google/key.json
- name: TMPDIR
value: {{if .kubernetes.disk}}/data{{end}}/tmp
resources:
limits:
memory: "{{.kubernetes.memory}}"
cpu: {{.kubernetes.cpu}}
readinessProbe:
httpGet:
path: /healthz
port: 8000
initialDelaySeconds: {{.kubernetes.readinessInitialDelaySeconds}}
periodSeconds: {{.kubernetes.readinessPeriodSeconds}}
failureThreshold: {{.kubernetes.readinessFailureThreshold}}
volumes:
- name: autoroll-be-{{$svcAcct}}-sa
secret:
secretName: {{$svcAcct}}
- name: autoroll-email-creds
secret:
secretName: autoroll-email-creds
- name: notifier-chat-config
secret:
secretName: notifier-chat-config
{{- range $index, $secret := .kubernetes.secrets}}
- name: {{$secret.name}}
secret:
secretName: {{$secret.name}}
{{- end}}{{if .kubernetes.disk}}
volumeClaimTemplates:
- metadata:
name: autoroll-be-{{.rollerName}}-storage
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: {{.kubernetes.disk}}{{end}}