apiVersion: batch/v1 # API version for batch jobs kind: Job # Defines a Kubernetes Job resource metadata: # Metadata for the Job name: python-job # Job name namespace: ewalter # Namespace where the Job will run spec: # Job specification activeDeadlineSeconds: 60 # Max time (in seconds) before Job is terminated ttlSecondsAfterFinished: 30 # Auto-delete Job 30s after completion template: # Pod template used by the Job spec: # Pod specification restartPolicy: OnFailure # Restart failed Pods, but not successful ones securityContext: # Default security context for all containers runAsUser: 1719 # Run as this user ID runAsGroup: 1121 # Run as this group ID containers: # Container list - name: python # Container name image: laudio/pyodbc # Image containing Python + pyodbc command: ["/bin/sh", "-ec", "sleep 300"] # Run a shell, exit on error, sleep 5 minutes resources: # Resource requests and limits requests: # Minimum resources required memory: "8Gi" # Request 8 GiB of RAM cpu: "2" # Request 2 CPU cores nvidia.com/gpu: 1 # Request 1 GPU limits: # Maximum resources allowed memory: "16Gi" # Limit to 16 GiB of RAM cpu: "4" # Limit to 4 CPU cores nvidia.com/gpu: 1 # Limit 1 GPU (must match request) volumeMounts: # Mount points for declared volumes - name: data10 # Reference to first NFS volume mountPath: /tmp/mydata # Mount path inside container - name: scr10 # Reference to second NFS volume mountPath: /tmp/my10 # Mount path inside container volumes: # Define available volumes - name: data10 # Volume name (matches container mount) nfs: # Network File System (NFS) source server: lunar # NFS server hostname path: /sciclone/data10/ewalter # Path on NFS server - name: scr10 # Another NFS volume nfs: server: scr10 # Second NFS server path: /sciclone/scr10/ewalter # Path on NFS server