apiVersion: v1
kind: PodTemplate
metadata:
  annotations:
    meta: _test
  clusterName: test_cluster
  labels:
    app: meta_test
  name: meta_test
  namespace: test
template:
  metadata:
    annotations:
      meta: _test_pod
    clusterName: test_pod_cluster
    labels:
      app: meta_pod_test
    name: meta_pod_test
    namespace: pod_test
  spec:
    activeDeadlineSeconds: 213
    containers:
    - args:
      - set
      - of
      - args
      command:
      - set
      - of
      - commands
      env:
      - name: key
        value: value
      - name: key
        valueFrom:
          fieldRef:
            fieldPath: status.hostIP
      - name: key
        valueFrom:
          resourceFieldRef:
            resource: requests.cpu
      - name: key
        valueFrom:
          configMapKeyRef:
            key: key.in.map
            name: configMapName
            optional: false
      - name: key
        valueFrom:
          secretKeyRef:
            key: key.in.secret
            name: secretName
            optional: false
      envFrom:
      - configMapRef:
          name: configMapName
          optional: false
        prefix: FROM_CONFIG_
      - prefix: FROM_SECRET_
        secretRef:
          name: secretName
      image: container_image
      imagePullPolicy: Always
      lifecycle:
        postStart:
          httpGet:
            host: localhost
            httpHeaders:
            - name: X-Custom-Header
              value: Awesome
            path: /healthz
            port: "8080"
            scheme: HTTP
        preStop:
          exec:
            command:
            - cat
            - /tmp/healthy
      livenessProbe:
        httpGet:
          host: localhost
          httpHeaders:
          - name: X-Custom-Header
            value: Awesome
          path: /healthz
          port: 8080
          scheme: HTTP
        initialDelaySeconds: 3
        periodSeconds: 3
      name: container_name
      ports:
      - containerPort: 80
        hostPort: 8080
        name: port_name
        protocol: TCP
      readinessProbe:
        initialDelaySeconds: 5
        periodSeconds: 10
        tcpSocket:
          port: 8080
      resources:
        limits:
          cpu: "1"
          memory: 256M
        requests:
          cpu: 250m
          memory: 64M
      securityContext:
        allowPrivilegeEscalation: true
        capabilities:
          add:
          - NET_ADMIN
          - PID
          drop:
          - NET_ADMIN
          - WALK
        privileged: true
        readOnlyRootFilesystem: true
        runAsNonRoot: true
        runAsUser: 8
        seLinuxOptions:
          level: level
          role: role
          type: type
          user: user
      stdin: true
      stdinOnce: true
      terminationMessagePath: /path/to/termination
      terminationMessagePolicy: File
      tty: true
      volumeMounts:
      - mountPath: /var/lib/vol
        mountPropagation: Bidirectional
        name: host_path_test_volume
        readOnly: true
        subPath: /var/lib/sub/path
      - mountPath: /var/lib/vol
        mountPropagation: HostToContainer
        name: empty_dir_test_volume
        subPath: /var/lib/sub/path
      - mountPath: /var/lib/vol
        mountPropagation: HostToContainer
        name: gce_pd_test_volume
        subPath: /var/lib/sub/path
      workingDir: /path/to/wd
    volumes:
    - emptyDir:
        medium: Memory
        sizeLimit: 100m
      name: empty_dir_test_volume
    - gcePersistentDisk:
        fsType: ext4
        partition: 1
        pdName: gce_pd_test_volume
        readOnly: true
      name: gce_pd_test_volume
    - hostPath:
        path: /path/to/host/vol
        type: Directory
      name: host_path_test_volume

