apiVersion: apps/v1
kind: Deployment
metadata:
  name: podinfo
  namespace: test
  labels:
    app.kubernetes.io/name: podinfo
    app.kubernetes.io/managed-by: test-label-prefix
  annotations:
    app.kubernetes.io/instance: test-annotation-prefix
spec:
  minReadySeconds: 5
  revisionHistoryLimit: 5
  progressDeadlineSeconds: 60
  strategy:
    rollingUpdate:
      maxUnavailable: 0
    type: RollingUpdate
  selector:
    matchLabels:
      app: podinfo
  template:
    metadata:
      annotations:
        prometheus.io/scrape: "true"
        prometheus.io/port: "9797"
      labels:
        app: podinfo
    spec:
      containers:
      - name: podinfod
        image: stefanprodan/podinfo:3.1.0
        imagePullPolicy: IfNotPresent
        env:
          - name: PODINFO_SECRET_VALUE
            valueFrom:
              secretKeyRef:
                name: podinfo-secret
                key: value
        ports:
          - name: http
            containerPort: 9898
            protocol: TCP
          - name: http-metrics
            containerPort: 9797
            protocol: TCP
          - name: grpc
            containerPort: 9999
            protocol: TCP
        command:
          - ./podinfo
          - --port=9898
          - --port-metrics=9797
          - --grpc-port=9999
          - --grpc-service-name=podinfo
          - --level=info
          - --random-delay=false
          - --random-error=false
        livenessProbe:
          httpGet:
            port: 9898
            path: /healthz
          initialDelaySeconds: 5
          timeoutSeconds: 5
        readinessProbe:
          httpGet:
            port: 9898
            path: /readyz
          initialDelaySeconds: 5
          timeoutSeconds: 5
        resources:
          limits:
            cpu: 1000m
            memory: 128Mi
          requests:
            cpu: 1m
            memory: 16Mi
