
# Nim 배포

## 1. 배포 방법

- 명령어

  ``` sh
  $ helm upgrade --instal nim ../nim \
    --set nimService.name=custom-model \
    --set nimService.existingAuthSecret="" \
    --set image.repository=nvcr.io/nim/custom/model \
    --set image.tag=1.0.0 \
    --set nimService.ngcAPIKey=YOUR_NGC_API_KEY \
    --set imagePullSecrets[0].password=YOUR_PASSWORD
    --namespace nim \
    --create-namespace \
    -f custom-values.yaml
  ```



## 2. custom-values.yaml 설명

- custom-values.yaml에 정의된 값에 대한 설명이다.

### 1) Nim 설정
| Name                   | 설명                                                         | 기본값 |
| ---------------------- | ------------------------------------------------------------ | ------ |
| `nimService.name` | nim service 이름. | `meta-llama3-8b-instruct`   |
| `nimService.existingAuthSecret` | nim service auth secret명. |  |
| `nimService.existingPVC` | 기존 PVC 이름. 설정 시 기존 PVC를 사용하고, 비어있으면 새 PVC 생성 | `""` |
| `image.repository` | nim service model registry. | `nvcr.io/nim/meta/llama-3.2-3b-instruct` |
| `image.tag` | nim service model tag. | `1.8.3` |
| `imagePullSecrets.name` | nim service model secret 명. | `nvcrimagepullsecret` |
| `imagePullSecrets.registry` | nim model resistory. | `nvcr.io` |
| `imagePullSecrets.username` | nim model resistory username. | `$oauthtoken` |
| `imagePullSecrets.password` | nim model resistory password. |  |
| `nimService.storage.pvc.storageClass` | 새 PVC 생성 시 사용할 스토리지 클래스 (existingPVC가 비어있을 때 사용) | `longhorn` |
| `nimService.storage.pvc.size` | 새 PVC 생성 시 크기 (existingPVC가 비어있을 때 사용) | `30Gi` |
| `nimService.storage.pvc.volumeAccessMode` | 새 PVC 생성 시 접근 모드 (existingPVC가 비어있을 때 사용) | `ReadWriteMany` |
| `nimService.storage.readOnly` | PVC 읽기 전용 마운트 여부 (기존 PVC 사용 시 `true` 권장) | `false` |