Skip to content

question job-json-overides vs launcher.templates #338

@airpaio

Description

@airpaio

On Workbench, we can set job-json-overides with different profiles which allows for some dynamicism between different user/groups. For instance we might have the below profiles for groups which use different service accounts and node afinities defined in the job-json-overides.

I really have 2 questions here:

  1. How can we get the same dynamics for specifying different service accounts/node afinities using the launcher templates?
  2. Below we have two profiles for users in group2 (one with job-json-overides specifying node afinity for gpu nodes and the other does not). Assuming the user is in both group2 and group2_gpu, the Session parameters would allow the user to specify number of GPUs. What happens if a user launches a session with 0 GPUs specified? Would the session launch on the GPU nodes or not? Would the session perhaps launch onto the GPU nodes, but not use any GPUs? Is there any other way to allow for the dynamic selection of node groups when a user launches a session?
"@group1":
  default-cpus: 4
  default-mem-mb: 2048
  default-nvidia-gpus: 0
  allow-unknown-images: 1
  job-json-overrides:  # use group1 service account and afinity for small nodes
    - name: service-account
      target: /spec/template/spec/group1ServiceAccount
      json: "group1-service-account"
    - name: node-affinity
      target: /spec/template/spec/affinity
      json:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchExpressions:
                - key: nodegroup-label
                  operator: "In"
                  values:
                    - small
"@group2":
  default-cpus: 4
  default-mem-mb: 4096
  default-nvidia-gpus: 0
  max-cpus: 8
  allow-unknown-images: 1
  job-json-overrides:  # use group2 service account and afinity for large nodes
    - name: service-account
      target: /spec/template/spec/group2ServiceAccount
      json: "group2-service-account"
    - name: node-affinity
      target: /spec/template/spec/affinity
      json:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchExpressions:
                - key: nodegroup-label
                  operator: "In"
                  values:
                    - large
"@group2_gpu":  # group2 with access to gpu nodes
  default-cpus: 4
  default-mem-mb: 4096
  default-nvidia-gpus: 2
  max-cpus: 8
  allow-unknown-images: 1
  job-json-overrides:  # use group2 service account and afinity for gpu nodes
    - name: service-account
      target: /spec/template/spec/group2ServiceAccount
      json: "group2-service-account"
    - name: node-affinity
      target: /spec/template/spec/affinity
      json:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchExpressions:
                - key: nodegroup-label
                  operator: "In"
                  values:
                    - gpu

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions