Skip to content

Commit 9cdcafb

Browse files
authored
Using a private repository for user containers - MPI File Utils (#72)
Show the placement of the imagePullSecrets lists for private MPI container images in the NnfContainerProfile resource. Signed-off-by: Dean Roehrich <dean.roehrich@hpe.com>
1 parent e684793 commit 9cdcafb

1 file changed

Lines changed: 67 additions & 6 deletions

File tree

docs/guides/user-containers/readme.md

Lines changed: 67 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@ applications to be run on Rabbit nodes with access to NNF ephemeral and persiste
88
The following is a limited look at User Containers. More content will be
99
provided after the RFC has been finalized.
1010

11-
## Custom NNFContainerProfile
11+
## Custom NnfContainerProfile
1212

1313
The author of a containerized application will work with the administrator to
1414
define a pod specification template for the container and to create an
15-
appropriate NNFContainerProfile resource for the container. The image and tag
15+
appropriate NnfContainerProfile resource for the container. The image and tag
1616
for the user's container will be specified in the profile.
1717

18-
New NNFContainerProfile resources may be created by copying one of the provided
18+
New NnfContainerProfile resources may be created by copying one of the provided
1919
example profiles from the `nnf-system` namespace. The examples may be found by listing them with `kubectl`:
2020

2121
```console
@@ -24,7 +24,7 @@ kubectl get nnfcontainerprofiles -n nnf-system
2424

2525
### Workflow Job Specification
2626

27-
The user's workflow will specify the name of the NNFContainerProfile in a DW
27+
The user's workflow will specify the name of the NnfContainerProfile in a DW
2828
directive. If the custom profile is named `red-rock-slushy` then it will be
2929
specified in the "#DW container" directive with the "profile" parameter.
3030

@@ -98,9 +98,9 @@ $ SECRET_NAME=readonly-red-rock-slushy
9898
$ kubectl create secret docker-registry $SECRET_NAME -n default --docker-server="https://index.docker.io/v1/" --docker-username=$USER_NAME --docker-password=$USER_TOKEN --docker-email=$USER_EMAIL
9999
```
100100

101-
### Add the Secret to the NNFContainerProfile
101+
### Add the Secret to the NnfContainerProfile
102102

103-
The administrator must add an `imagePullSecrets` list to the NNFContainerProfile
103+
The administrator must add an `imagePullSecrets` list to the NnfContainerProfile
104104
resource that was created for this user's containerized application.
105105

106106
The following profile shows the placement of the `readonly-red-rock-slushy` secret
@@ -137,3 +137,64 @@ Now any user can select this profile in their Workflow by specifying it in a
137137
```bash
138138
#DW container profile=red-rock-slushy [...]
139139
```
140+
141+
### Using a Private Container Repository for MPI Application Containers
142+
143+
If our user's containerized application instead contains an MPI application,
144+
because perhaps it's a private copy of [nnf-mfu](https://github.com/NearNodeFlash/nnf-mfu),
145+
then the administrator would insert two `imagePullSecrets` lists into the
146+
`mpiSpec` of the NnfContainerProfile for the MPI launcher and the MPI worker.
147+
148+
```yaml
149+
apiVersion: nnf.cray.hpe.com/v1alpha1
150+
kind: NnfContainerProfile
151+
metadata:
152+
name: mpi-red-rock-slushy
153+
namespace: nnf-system
154+
data:
155+
mpiSpec:
156+
mpiImplementation: OpenMPI
157+
mpiReplicaSpecs:
158+
Launcher:
159+
template:
160+
spec:
161+
imagePullSecrets:
162+
- name: readonly-red-rock-slushy
163+
containers:
164+
- command:
165+
- mpirun
166+
- dcmp
167+
- $(DW_JOB_foo_local_storage)/0
168+
- $(DW_JOB_foo_local_storage)/1
169+
image: dean/red-rock-slushy:v2.0
170+
name: red-rock-launcher
171+
Worker:
172+
template:
173+
spec:
174+
imagePullSecrets:
175+
- name: readonly-red-rock-slushy
176+
containers:
177+
- image: dean/red-rock-slushy:v2.0
178+
name: red-rock-worker
179+
runPolicy:
180+
cleanPodPolicy: Running
181+
suspend: false
182+
slotsPerWorker: 1
183+
sshAuthMountPath: /root/.ssh
184+
pinned: false
185+
retryLimit: 6
186+
storages:
187+
- name: DW_JOB_foo_local_storage
188+
optional: false
189+
- name: DW_PERSISTENT_foo_persistent_storage
190+
optional: true
191+
```
192+
193+
Now any user can select this profile in their Workflow by specifying it in a
194+
`#DW container` directive.
195+
196+
```bash
197+
#DW container profile=mpi-red-rock-slushy [...]
198+
```
199+
200+

0 commit comments

Comments
 (0)