in cluster-trace-gpu-v2023/pod_csv_to_yaml.py [0:0]
def generate_pod_yaml(workload_name='paib-pod-10',
workload_namespace='paib-gpu',
container_name='main',
container_image='tensorflow:latest',
container_requests={'cpu': '6000m'},
container_limits={'cpu': '6000m'},
node_selector_node_ip="",
annotations={},
labels={}):
pod_template = """
apiVersion: v1
kind: Pod
metadata:
name: single-pod
spec:
containers:
- name: php-redis
image: gcr.io/google-samples/gb-frontend:v4
imagePullPolicy: Always
resources:
requests:
cpu: 100m
limits:
cpu: 100m
restartPolicy: "OnFailure"
dnsPolicy: "Default"
"""
workload_yaml = yaml.safe_load(pod_template)
workload_yaml['metadata']['name'] = workload_name
workload_yaml['metadata']['namespace'] = workload_namespace
workload_yaml['spec']['containers'][0]['name'] = container_name
workload_yaml['spec']['containers'][0]['image'] = container_image
workload_yaml['spec']['containers'][0]['resources']['requests'] = container_requests
workload_yaml['spec']['containers'][0]['resources']['limits'] = container_limits
if len(node_selector_node_ip) > 0:
if 'nodeSelector' not in workload_yaml['spec']:
workload_yaml['spec']['nodeSelector'] = {}
workload_yaml['spec']['nodeSelector']['node-ip'] = node_selector_node_ip
elif 'nodeSelector' in workload_yaml['spec']:
if 'node-ip' in workload_yaml["spec"]["nodeSelector"]:
del workload_yaml['spec']['nodeSelector']['node-ip']
for k, v in annotations.items():
if 'annotations' not in workload_yaml['metadata']:
workload_yaml['metadata']['annotations'] = {}
if v is not None:
workload_yaml['metadata']['annotations'][k] = v # e.g., {"alibabacloud.com/gpu-index":"2-3-4"}
for k, v in labels.items():
workload_yaml['metadata'][k] = v
return workload_yaml