1---
2apiVersion: apps/v1
3kind: Deployment
4metadata:
5  name: ${deployment_name}
6  namespace: ${namespace_name}
7  labels:
8    app: ${deployment_name}
9    deployment_id: ${deployment_id}
10    owner: xds-k8s-interop-test
11spec:
12  replicas: ${replica_count}
13  selector:
14    matchLabels:
15      app: ${deployment_name}
16      deployment_id: ${deployment_id}
17  template:
18    metadata:
19      labels:
20        app: ${deployment_name}
21        deployment_id: ${deployment_id}
22        owner: xds-k8s-interop-test
23    spec:
24      % if service_account_name:
25      serviceAccountName: ${service_account_name}
26      % endif
27      containers:
28      - name: ${deployment_name}
29        image: ${image_name}
30        imagePullPolicy: Always
31        startupProbe:
32          tcpSocket:
33            port: ${test_port}
34          periodSeconds: 3
35          ## Extend the number of probes well beyond the duration of the test
36          ## driver waiting for the container to start.
37          failureThreshold: 1000
38        args:
39          - "--port=${test_port}"
40        ports:
41          - containerPort: ${test_port}
42        env:
43          - name: GRPC_XDS_BOOTSTRAP
44            value: "/tmp/grpc-xds/td-grpc-bootstrap.json"
45          - name: GRPC_XDS_EXPERIMENTAL_V3_SUPPORT
46            value: "true"
47        volumeMounts:
48          - mountPath: /tmp/grpc-xds/
49            name: grpc-td-conf
50            readOnly: true
51        resources:
52          limits:
53            cpu: 800m
54            memory: 512Mi
55          requests:
56            cpu: 100m
57            memory: 512Mi
58      initContainers:
59        - name: grpc-td-init
60          image: ${td_bootstrap_image}
61          imagePullPolicy: Always
62          args:
63            - "--output=/tmp/bootstrap/td-grpc-bootstrap.json"
64            - "--vpc-network-name=${network}"
65            % if xds_server_uri:
66            - "--xds-server-uri=${xds_server_uri}"
67            % endif
68            - "--node-metadata=app=${namespace_name}-${deployment_name}"
69          resources:
70            limits:
71              cpu: 100m
72              memory: 100Mi
73            requests:
74              cpu: 10m
75              memory: 100Mi
76          volumeMounts:
77            - mountPath: /tmp/bootstrap/
78              name: grpc-td-conf
79      volumes:
80        - name: grpc-td-conf
81          emptyDir:
82            medium: Memory
83...
84