@@ -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
1313The author of a containerized application will work with the administrator to
1414define 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
1616for 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
1919example 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
2828directive. If the custom profile is named ` red-rock-slushy ` then it will be
2929specified 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
104104resource that was created for this user's containerized application.
105105
106106The 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