You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/Researcher/best-practices/convert-to-unattended.md
+5-5Lines changed: 5 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -11,7 +11,7 @@ Unattended workloads are a good fit for long-duration runs, or sets of smaller h
11
11
12
12
### Docker Image
13
13
14
-
A docker container is based on a docker image. Some Researchers use generic images such as ones provided by Nvidia, for example: [NVIDIA NGC TensorFlow](https://ngc.nvidia.com/catalog/containers/nvidia:tensorflow){target=_blank}.
14
+
A docker container is based on a docker image. Some Researchers use generic images such as ones provided by Nvidia, for example: [NVIDIA NGC TensorFlow](https://ngc.nvidia.com/catalog/containers/nvidia:tensorflow){target=_blank}.
15
15
Others, use generic images as the __base__ image to a more customized image using [Dockerfiles](https://docs.docker.com/develop/develop-images/dockerfile_best-practices/){target=_blank}.
16
16
17
17
Realizing that Researchers are not always proficient with building docker files, as a best practice, you will want to:
@@ -26,17 +26,17 @@ You will want to minimize the cycle of code change-and-run. There are a couple o
26
26
27
27
1. Code resides on the network file storage. This way you can change the code and immediately run the Job. The Job picks up the new files from the network.
28
28
2. Use the `runai submit` flag `--git-sync`. The flag allows the Researcher to provide details of a Git repository. The repository will be automatically cloned into a specified directory when the container starts.
29
-
3. The code can be embedded within the image. In this case, you will want to create an automatic CI/CD process, which packages the code into a modified image.
29
+
3. The code can be embedded within the image. In this case, you will want to create an automatic CI/CD process, which packages the code into a modified image.
30
30
31
-
The document below assumes option #1.
31
+
The document below assumes option #1.
32
32
33
33
### Create a Startup Script
34
34
35
35
Gather the commands you ran inside the interactive Job into a single script. The script will be provided with the command-line at the start of the unattended execution (see the section _running the job_ below). This script should be kept next to your code, on a shared network drive (e.g. _/nfs/john_).
36
36
37
37
An example of a common startup script __start.sh__:
Different run configurations may vary significantly and can be tedious to be written each time on the command-line. To make life easier, our CLI offers a way to set administrator policies for these configurations and use pre-configured configuration when submitting a Workload. Please refer to [Configure Command-Line Interface Policies](../../admin/workloads/policies.md).
100
+
Different run configurations may vary significantly and can be tedious to be written each time on the command-line. To make life easier, our CLI offers a way to set administrator policies for these configurations and use pre-configured configuration when submitting a Workload. Please refer to [Configure Command-Line Interface Policies](../../admin/workloads/policies/policies.md).
Copy file name to clipboardExpand all lines: docs/Researcher/user-interface/workspaces/create/workspace-v2.md
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -24,7 +24,7 @@ Use the *Jobs form* below if you have not enabled the *Workloads* feature.
24
24
A template contains a set of predefined building blocks as well as additional configurations which allow the user to immediately create a templated-based workspace.
25
25
26
26
4. Enter a name for your workspace and press *Continue*.
27
-
5. Select an environment from the tiles. If your environment is not listed, use the *Search environments* box to find it or press [*New environment*](workspaces/create/create-env.md) to create a new environment. Press to create an environment if needed. In the *Set the connection for your tool(s)*, enter the URL of the tool if a custom URL has been enabled in the selected environment. Use the *Private* toggle to lock access to the tool to only the creator of the environment.
27
+
5. Select an environment from the tiles. If your environment is not listed, use the *Search environments* box to find it or press [*New environment*](../create/create-env.md) to create a new environment. Press to create an environment if needed. In the *Set the connection for your tool(s)*, enter the URL of the tool if a custom URL has been enabled in the selected environment. Use the *Private* toggle to lock access to the tool to only the creator of the environment.
Copy file name to clipboardExpand all lines: docs/admin/admin-ui-setup/templates.md
+6-6Lines changed: 6 additions & 6 deletions
Original file line number
Diff line number
Diff line change
@@ -16,15 +16,15 @@ To create a template:
16
16
1. In the left menu, press *Templates*, then press *New Template*.
17
17
2. In the *Scope* pane, select a *Scope*.
18
18
3. In the *Template Name* pane, enter a name for the template.
19
-
3. Select an environment from the tiles. If your environment is not listed, use the *Search environments* box to find it or press [*New environment*](workspaces/create/create-env.md) to create a new environment. Press to create an environment if needed. In the *Set the connection for your tool(s)*, enter the URL of the tool if a custom URL has been enabled in the selected environment. Use the *Private* toggle to lock access to the tool to only the creator of the environment.
19
+
4. Select an environment from the tiles. If your environment is not listed, use the *Search environments* box to find it or press [*New environment*](../../Researcher/user-interface/workspaces/create/create-env.md) to create a new environment. Press to create an environment if needed. In the *Set the connection for your tool(s)*, enter the URL of the tool if a custom URL has been enabled in the selected environment. Use the *Private* toggle to lock access to the tool to only the creator of the environment.
20
20
21
21
In the *Runtime Settings*:
22
22
23
23
1. Press *Commands and Arguments* to add special commands and arguments to your environment selection.
24
24
2. Press *Environment variable* to add an environment variable. Press again if you need more environment variables.
25
25
26
-
4. In the *Compute resource* pane, select a compute resource. Use the *Search compute resources* if you do not see your resource listed. Press *New compute resource* to add a new compute resource to the system. Press *More settings* to add a node type (node affinity) to the compute resource selected.
27
-
5. (Optional) In the *Volume* pane, press *+volume* to add a new volume to the template.
26
+
5. In the *Compute resource* pane, select a compute resource. Use the *Search compute resources* if you do not see your resource listed. Press *New compute resource* to add a new compute resource to the system. Press *More settings* to add a node type (node affinity) to the compute resource selected.
27
+
6. (Optional) In the *Volume* pane, press *+volume* to add a new volume to the template.
28
28
29
29
From the drop down menus select:
30
30
* Storage class
@@ -34,11 +34,11 @@ To create a template:
34
34
35
35
Set the *Volume target location*, then select from either a *Persistent* volume or an *Ephemeral* volume.
36
36
37
-
6. In the *Data sources* pane, select a data source. Press *New data source* to add a new data source to the system.
38
-
7. In the *General* pane, choose to add the following:
37
+
7. In the *Data sources* pane, select a data source. Press *New data source* to add a new data source to the system.
38
+
8. In the *General* pane, choose to add the following:
39
39
40
40
* Auto-deletion—the time after which a workload that has completed or failed will be deleted. Press *+Auto-deletion* then configure the time in days, hours, minutes, and seconds.
41
41
* Annotation—press *+Annottion* then enter a name and a value. You can add multiple annotations by pressing the *+Annottion*.
42
42
* Label—press *+Label* then enter a name and a value. You can add multiple labels by pressing the *+Label*.
43
43
44
-
8. Press *Create template* when your configuration is complete.
44
+
9. Press *Create template* when your configuration is complete.
Copy file name to clipboardExpand all lines: docs/admin/runai-setup/cluster-setup/cluster-prerequisites.md
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -73,7 +73,7 @@ For Run:ai on OpenShift to run with PSA `restricted` policy:
73
73
pod-security.kubernetes.io/enforce=privileged
74
74
pod-security.kubernetes.io/warn=privileged
75
75
```
76
-
2. The workloads submitted through Run:ai should comply with the restrictions of PSA `restricted` policy, which are dropping all Linux capabilities and setting `runAsNonRoot` to `true`. This can be done and enforced using [Policies](../../workloads/policies.md).
76
+
2. The workloads submitted through Run:ai should comply with the restrictions of PSA `restricted` policy, which are dropping all Linux capabilities and setting `runAsNonRoot` to `true`. This can be done and enforced using [Policies](../../workloads/policies/policies.md).
Copy file name to clipboardExpand all lines: docs/admin/runai-setup/config/non-root-containers.md
+11-11Lines changed: 11 additions & 11 deletions
Original file line number
Diff line number
Diff line change
@@ -5,23 +5,23 @@ The identity of the user in the container determines its access to resources. Fo
5
5
6
6
## The Default: Root Access
7
7
8
-
In docker, as well as in Kubernetes, the default for running containers is running as _root_. The implication of running as root is that processes running within the container have enough permissions to change anything in the container, and if propagated to network resources - can have permissions outside the container as well.
8
+
In docker, as well as in Kubernetes, the default for running containers is running as _root_. The implication of running as root is that processes running within the container have enough permissions to change anything in the container, and if propagated to network resources - can have permissions outside the container as well.
9
9
10
-
This gives a lot of power to the Researcher but does not sit well with modern security standards of enterprise security.
10
+
This gives a lot of power to the Researcher but does not sit well with modern security standards of enterprise security.
There are two [runai submit](../../../Researcher/cli-reference/runai-submit.md) flags which control user identity at the Researcher level:
22
22
23
-
* The flag `--run-as-user` starts the container with a specific user. The user is the current Linux user (see below for other behaviors if used in conjunction with Single sign-on).
24
-
* The flag `--prevent-privilege-escalation` prevents the container from elevating its own privileges into `root` (e.g. running `sudo` or changing system files.).
23
+
* The flag `--run-as-user` starts the container with a specific user. The user is the current Linux user (see below for other behaviors if used in conjunction with Single sign-on).
24
+
* The flag `--prevent-privilege-escalation` prevents the container from elevating its own privileges into `root` (e.g. running `sudo` or changing system files.).
25
25
26
26
Equivalent flags exist in the Researcher User Interface.
then verify that you cannot run `su` to become root within the container.
47
+
then verify that you cannot run `su` to become root within the container.
48
48
49
49
50
50
### Setting a Cluster-Wide Default
51
51
52
52
53
-
The two flags are voluntary. They are not enforced by the system. It is however possible to enforce them using [Policies](../../workloads/policies.md). Polices allow an Administrator to force compliance on both the User Interface and Command-line interface.
53
+
The two flags are voluntary. They are not enforced by the system. It is however possible to enforce them using [Policies](../../workloads/policies/policies.md). Polices allow an Administrator to force compliance on both the User Interface and Command-line interface.
54
54
55
55
56
-
## Passing user identity
56
+
## Passing user identity
57
57
### Passing user identity from Identity Provider
58
58
59
59
A best practice is to store the user identifier (UID) and the group identifier (GID) in the organization's directory. Run:ai allows you to pass these values to the container and use them as the container identity.
@@ -67,7 +67,7 @@ To perform this, you must:
67
67
Running `id` should show the identifier from the directory.
68
68
69
69
70
-
### Passing user identity explicitly via the Researcher UI
70
+
### Passing user identity explicitly via the Researcher UI
71
71
72
72
Via the Researcher User Interface, it is possible to explicitly provide the user id and group id:
73
73
@@ -78,7 +78,7 @@ Via the Researcher User Interface, it is possible to explicitly provide the user
78
78
79
79
80
80
Run:ai supports OpenShift as a Kubernetes platform. In OpenShift the system will provide a __random__ UID to containers. The flags `--run-as-user` and `--prevent-privilege-escalation` are disabled on OpenShift.
81
-
It is possible to achieve a similar effect on Kubernetes systems that are not OpenShift. A leading tool is [Gatekeeper](https://open-policy-agent.github.io/gatekeeper/website/docs/){target=_blank}. Gatekeeper similarly enforces non-root on containers at the system level.
81
+
It is possible to achieve a similar effect on Kubernetes systems that are not OpenShift. A leading tool is [Gatekeeper](https://open-policy-agent.github.io/gatekeeper/website/docs/){target=_blank}. Gatekeeper similarly enforces non-root on containers at the system level.
82
82
83
83
84
84
## Creating a Temporary Home Directory
@@ -99,7 +99,7 @@ I have no name!@job-0-0-0:/$
99
99
Adding home directories to an image per user is not a viable solution. To overcome this, Run:ai provides an additional flag `--create-home-dir`. Adding this flag creates a temporary home directory for the user within the container.
100
100
101
101
!!! Notes
102
-
* Data saved in this directory will not be saved when the container exits.
102
+
* Data saved in this directory will not be saved when the container exits.
103
103
* This flag is set by __default to true__ when the `--run-as-user` flag is used, and false if not.
Copy file name to clipboardExpand all lines: docs/admin/workloads/policies/policies.md
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -288,7 +288,7 @@ When submitting a workload that is affected by this policy, the created containe
288
288
the namespace where the workload runs.
289
289
290
290
!!! Note
291
-
Run:ai provides a secret propagation mechanism from the `runai` namespace to all project namespaces. For further information see [secret propagation](secrets.md#secrets-and-projects)
291
+
Run:ai provides a secret propagation mechanism from the `runai` namespace to all project namespaces. For further information see [secret propagation](../secrets.md#secrets-and-projects).
292
292
293
293
### Prevent Data Storage on the Node
294
294
@@ -362,7 +362,7 @@ To access _project-specific_ policies, replace the `-n runai` parameter with the
362
362
363
363
## See Also
364
364
365
-
* For creating workloads based on policies, see the Run:ai [submitting workloads](../../developer/cluster-api/workload-overview-dev.md)
365
+
* For creating workloads based on policies, see the Run:ai [submitting workloads](../../../developer/cluster-api/workload-overview-dev.md)
Copy file name to clipboardExpand all lines: docs/admin/workloads/secrets.md
+4-4Lines changed: 4 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -2,13 +2,13 @@
2
2
3
3
## Kubernetes Secrets
4
4
5
-
Sometimes you want to use sensitive information within your code. For example passwords, OAuth tokens, or ssh keys. The best practice for saving such information in Kubernetes is via __Kubernetes Secrets__. Kubernetes Secrets let you store and manage sensitive information. Access to secrets is limited via configuration.
5
+
Sometimes you want to use sensitive information within your code. For example passwords, OAuth tokens, or ssh keys. The best practice for saving such information in Kubernetes is via **Kubernetes Secrets**. Kubernetes Secrets let you store and manage sensitive information. Access to secrets is limited via configuration.
6
6
7
-
A Kubernetes secret may hold multiple __key - value__ pairs.
7
+
A Kubernetes secret may hold multiple **key - value** pairs.
8
8
9
9
## Using Secrets in Run:ai Workloads
10
10
11
-
Our goal is to provide Run:ai Workloads with secrets as input in a secure way. Using the Run:ai command line, you will be able to pass a reference to a secret that already exists in Kubernetes.
11
+
Our goal is to provide Run:ai Workloads with secrets as input in a secure way. Using the Run:ai command line, you will be able to pass a reference to a secret that already exists in Kubernetes.
Copy file name to clipboardExpand all lines: docs/admin/workloads/submitting-workloads.md
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -95,4 +95,4 @@ To submit a workload using the UI:
95
95
96
96
## Workload Policies
97
97
98
-
As an administrator, you can set *Policies* on Workloads. Policies allow administrators to *impose restrictions* and set *default values* for Researcher Workloads. For more information see [Workload Policies](policies.md).
98
+
As an administrator, you can set *Policies* on Workloads. Policies allow administrators to *impose restrictions* and set *default values* for Researcher Workloads. For more information see [Workload Policies](../workloads/policies/policies.md).
0 commit comments