# NeMo Guardrails Microservice Helm Chart

![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square)

For deployment guide, see [Admin Setup](https://docs.nvidia.com/nemo/microservices/latest/set-up/index.html) in the NeMo Microservices documentation.

## Values

| Key | Type | Default | Description |
|-----|------|---------|-------------|
| affinity | object | `{}` | Specifies affinity settings for the deployment. To learn more, refer to the [Affinity and Anti-Affinity](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity) in the Kubernetes documentation. |
| autoscaling | object | `{"enabled":false,"maxReplicas":100,"minReplicas":1,"targetCPUUtilizationPercentage":80}` | Specifies autoscaling configurations for the deployment. |
| autoscaling.enabled | bool | `false` | Whether to enable horizontal pod autoscaler. |
| autoscaling.maxReplicas | int | `100` | The maximum number of replicas for the deployment. |
| autoscaling.minReplicas | int | `1` | The minimum number of replicas for the deployment. |
| autoscaling.targetCPUUtilizationPercentage | int | `80` | The target CPU utilization percentage. |
| configStore.nfs.enabled | bool | `false` | Whether to enable the use of an NFS persistent volume for the configuration store. |
| configStore.nfs.mountPath | string | `"/config-store"` | The path where the NFS volume will be mounted inside the container. |
| configStore.nfs.path | string | `"/path/to/nfs/share"` | The path to the root of the Configuration Store folder. |
| configStore.nfs.server | string | `"nfs-server.example.com"` | The address of the NFS server. |
| configStore.nfs.storageClass | string | `"standard"` | The storage class for the PV and PVC. |
| env | object | `{"CONFIG_STORE_PATH":"/app/services/guardrails/config-store","DEFAULT_CONFIG_ID":"default","DEFAULT_LLM_PROVIDER":"nim","DEMO":"False","GUARDRAILS_HOST":"0.0.0.0","GUARDRAILS_PORT":"7331","NEMO_GUARDRAILS_SERVER_ALLOWED_ORIGINS":"*","NEMO_GUARDRAILS_SERVER_ENABLE_CORS":"False","NIM_ENDPOINT_URL":"https://integrate.api.nvidia.com/v1"}` | Environment variables for the container. |
| fsGroup | string | `""` | Specifies the file system owner group id. |
| fullnameOverride | string | `""` | Overrides the full chart name. |
| image.pullPolicy | string | `"IfNotPresent"` | The image pull policy for the NeMo Guardrails container image. |
| image.repository | string | `"nvcr.io/nvidia/nemo-microservices/guardrails"` | The repository location of the NeMo Guardrails container image. |
| image.tag | string | `""` | The tag of the NeMo Guardrails container image. |
| imagePullSecrets | list | `[{"name":"nvcrimagepullsecret"}]` | Specifies the list of secret names that are needed for the main container and any init containers. |
| ingress.annotations | object | `{}` | Additional annotations for the ingress resource. |
| ingress.className | string | `""` | The class name for the ingress resource. |
| ingress.enabled | bool | `false` | Whether to enable the ingress resource. |
| ingress.hosts | list | [] | A list of maps, each containing the keys `host` and `paths` for the ingress resource. You must specify a list for configuring ingress for the microservice. |
| ingress.tls | list | `[]` | TLS configuration for the ingress resource. |
| livenessProbe.httpGet | object | `{"path":"/v1/health","port":7331}` | The HTTP GET request to use for the liveness probe. |
| livenessProbe.initialDelaySeconds | int | `5` | The initial delay seconds for the liveness probe. |
| livenessProbe.timeoutSeconds | int | `30` | The timeout in seconds for the liveness probe. |
| nameOverride | string | `""` | Overrides the chart name. |
| nodeSelector | object | `{}` | Specifies labels to ensure that the NeMo Guardrails microservice is deployed only on certain nodes. To learn more, refer to the [Node Selector](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) in the Kubernetes documentation. |
| podAnnotations | object | `{}` | Specifies additional annotations to the main deployment pods. |
| podLabels | object | `{}` | Specifies additional labels to the main deployment pods. |
| podSecurityContext | object | `{}` | Specifies privilege and access control settings for the pod. |
| readinessProbe.httpGet | object | `{"path":"/v1/health","port":7331}` | The HTTP GET request to use for the readiness probe. |
| readinessProbe.initialDelaySeconds | int | `5` | The initial delay seconds for the readiness probe. |
| readinessProbe.timeoutSeconds | int | `30` | The timeout in seconds for the readiness probe. |
| replicaCount | int | `1` | The number of replicas for the NeMo Guardrails microservice deployment. |
| resources | object | `{}` | Specifies resource configurations for the deployment. |
| runAsGroup | string | `""` | Specifies the group ID for the pod. |
| securityContext | object | `{}` | Specifies security context for the container. |
| service | object | `{"port":7331,"type":"ClusterIP"}` | Specifies the service type and the port for the deployment. |
| serviceAccount.annotations | object | `{}` | Annotations to be added to the service account. |
| serviceAccount.automount | bool | `true` | Whether to automatically mount the service account token. |
| serviceAccount.create | bool | `true` | Whether to create a service account for the NeMo Guardrails microservice. |
| serviceAccount.name | string | `""` | The name of the service account to use. |
| tolerations | list | `[]` | Specifies tolerations for pod assignment. To learn more, refer to the [Taint and Toleration](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) in the Kubernetes documentation. |