taskGroups:
- taskSpec:
    runnables:
    - script:
        text: |
              # Check if Ops Agent is already installed
              if ! dpkg -l | grep google-cloud-ops-agent; then
                  # Acquire a lock before proceeding
                  if mkdir /tmp/ops_agent_installation_lock; then
                      # Ops Agent is not installed, run the installation script
                      curl -sSO https://dl.google.com/cloudagents/add-google-cloud-ops-agent-repo.sh
                      sudo bash add-google-cloud-ops-agent-repo.sh --also-install

                      # Release the lock
                      rmdir /tmp/ops_agent_installation_lock
                  else
                      # Another process is already installing, skip the installation
                      echo "Another process is already installing Ops Agent. Skipping installation."
                  fi
              else
                  # Ops Agent is already installed, skip the installation
                  echo "Ops Agent is already installed. Skipping installation."
              fi
    - script:
        text: "${FOLLOWING_SCRIPT}"
  taskCount: "${TASK_COUNT}"
  parallelism: "${PARALLELISM}"
  taskCountPerNode: "${TASK_COUNT_PER_NODE}"
allocationPolicy:
  instances:
  - installGpuDrivers: true
    policy:
      machineType: "n1-standard-1"
      accelerators:
      - type: "${GPU_TYPE}"
        count: 1
  location:
    allowedLocations:
    - "${ALLOWED_LOCATIONS}"
logsPolicy:
  destination: "CLOUD_LOGGING"
