---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: ${deployment_name}
  namespace: ${namespace_name}
  labels:
    app: ${deployment_name}
    owner: xds-k8s-interop-test
spec:
  replicas: 1
  selector:
    matchLabels:
      app: ${deployment_name}
  template:
    metadata:
      labels:
        app: ${deployment_name}
        owner: xds-k8s-interop-test
      annotations:
        security.cloud.google.com/use-workload-certificates: ""
    spec:
      serviceAccountName: ${service_account_name}
      containers:
      - name: ${deployment_name}
        image: ${image_name}
        imagePullPolicy: Always
        restartPolicy: Never
        args:
          - "--server=${server_target}"
          - "--stats_port=${stats_port}"
          - "--secure_mode=${secure_mode}"
          - "--qps=${qps}"
          - "--rpc=${rpc}"
          - "--print_response=${print_response}"
        ports:
          - containerPort: ${stats_port}
        env:
          - name: GRPC_XDS_BOOTSTRAP
            value: "/tmp/grpc-xds/td-grpc-bootstrap.json"
          - name: GRPC_XDS_EXPERIMENTAL_SECURITY_SUPPORT
            value: "true"
          - name: GRPC_XDS_EXPERIMENTAL_V3_SUPPORT
            value: "true"
        volumeMounts:
          - mountPath: /tmp/grpc-xds/
            name: grpc-td-conf
            readOnly: true
        resources:
          limits:
            cpu: 800m
            memory: 512Mi
          requests:
            cpu: 100m
            memory: 512Mi
      initContainers:
        - name: grpc-td-init
          image: ${td_bootstrap_image}
          imagePullPolicy: Always
          args:
            - "--output=/tmp/bootstrap/td-grpc-bootstrap.json"
            - "--vpc-network-name=${network}"
            % if xds_server_uri:
            - "--xds-server-uri=${xds_server_uri}"
            % endif
            % if config_mesh:
            - "--config-mesh-experimental=${config_mesh}"
            % endif
          resources:
            limits:
              cpu: 100m
              memory: 100Mi
            requests:
              cpu: 10m
              memory: 100Mi
          volumeMounts:
            - mountPath: /tmp/bootstrap/
              name: grpc-td-conf
      volumes:
        - name: grpc-td-conf
          emptyDir:
            medium: Memory
...
