This Helm chart facilitates the deployment of the Resource Management Control Plane service within Kubernetes environments. This service is an integral part of the infrastructure, designed to streamline the management and deployment of stateful and dedicated sessions for various applications.
Stateful Session Management: Facilitates the deployment and management of stateful application sessions
Dedicated Resource Allocation: Enables the allocation of dedicated resources for critical applications, ensuring consistent performance and reliability.
Application Lifecycle Management: Provides comprehensive tools for managing the entire lifecycle of applications, from deployment to scaling and updates.
This Helm chart includes all necessary components to deploy the Resource Management Control Plane service efficiently. It simplifies the management of stateful and dedicated sessions of a helm chart (Streaming Sessions, CoreAPI sessions etc.)
Before installing it's worth considering Image Pull Secrets.
NOTE: use --dry-run
to inspect the resulting Kubernetes manifests generated from the helm chart.
helm upgrade \
--install \
nv.svc.rmcp \
. \
--create-namespace \
--namespace <<NAMESPACE-NAME>> \
--set global.imagePullSecrets[0].name=registry-secret
To view values via helm use helm show values
NOTE: There are global values.
Key | Type | Default | Description |
---|---|---|---|
global.imagePullSecrets | list | [] |
Global image pull secrets used within the services. |
global.transportHost | string | "0.0.0.0" |
Specify the services transport host. For IPv6 use "::". |
rmcp.affinity | object | {} |
Affinity for pod assignment. https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity |
rmcp.env | object | {} |
Env for the container of the service. https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.24/#envvar-v1-core |
rmcp.fullnameOverride | string | "rmcp" |
Full override .fullname template |
rmcp.helmRepositories | list | [] |
Helm repositories to configure Expected format helmRepositories: - name: example-repo url: https://charts.example.com/ interval: 1m # Optional: secretRef should only be provided if required secretRef: example-secret-name - name: another-repo url: https://charts.anotherexample.com/ interval: 5m # Optional: secretRef should only be provided if required secretRef: another-secret-name |
rmcp.image.pullPolicy | string | "Always" |
Image pull policy. |
rmcp.image.repository | string | "nvcr.io/omniverse/prerel/omni-services-rmcp" |
Image repository. |
rmcp.image.tag | string | "1.0.0-beta.3" |
Image tag. |
rmcp.imagePullSecrets | list | [] |
Image Pull Secrets |
rmcp.livenessProbe | object | {"httpGet":{"path":"/health","port":"http"},"initialDelaySeconds":5,"periodSeconds":3} |
LivenessProbe for the service. NOTE: service must have an endpoint as specified by the "path" https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.24/#probe-v1-core |
rmcp.monitoring.enabled | bool | false |
Enables the creation of ServiceMonitor resource. |
rmcp.monitoring.prometheusNamespace | string | "monitoring" |
Prometheus namespace. |
rmcp.nameOverride | string | "" |
Partially override .fullname template (maintains the release name) |
rmcp.nodeSelector | object | {} |
Node labels for pod assignment. https://kubernetes.io/docs/user-guide/node-selection/ |
rmcp.podAnnotations | object | {} |
Pod annotations. https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ |
rmcp.podSecurityContext | object | {"runAsNonRoot":false} |
Security Context. https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod |
rmcp.readinessProbe | object | {"httpGet":{"path":"/ready","port":"http"},"initialDelaySeconds":5,"periodSeconds":3} |
readinessProbe for the service. NOTE: service must have an endpoint as specified by the "path" https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.24/#probe-v1-core |
rmcp.resources | object | {} |
Container resource requests and limits. https://kubernetes.io/docs/user-guide/compute-resources/ |
rmcp.revisionHistoryLimit | int | 5 |
|
rmcp.securityContext | object | {} |
Security Context. https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod |
rmcp.service.containerPort | int | 8080 |
Container port. |
rmcp.service.name | string | "rmcp" |
Name of the service. |
rmcp.service.port | int | 80 |
Service port. |
rmcp.service.portName | string | "http" |
Port name. |
rmcp.service.type | string | "ClusterIP" |
Kubernetes service type. |
rmcp.serviceConfig | object | {"helm_flux_release_timeout":"5m","helm_flux_version":"v2beta2","helm_release_namespace":"","logging":{"level":"INFO","production_mode":true},"metrics":{"collector_url":"opentelemetry.ov.local:8443","export_interval_s":15,"export_metrics_to_collector":true,"export_metrics_to_console":false,"secure":false},"prefix_url":"","root_path":"","show_status_endpoint":false,"tracing":{"enable_binary_file_exporter":false,"otlp_collector_url":"opentelemetry.ov.local:8443"}} |
Configuration specific to this service. |
rmcp.serviceConfig.helm_flux_release_timeout | string | "5m" |
Flux release deployment timeout |
rmcp.serviceConfig.helm_flux_version | string | "v2beta2" |
Flux CRD versions available within the cluster (v2beta2 and v2beta1 supported). |
rmcp.serviceConfig.helm_release_namespace | string | "" |
Namespace into which helmreleases.helm.toolkit.fluxcd.io resources are deployed. Defaults to the $.Release.Namespace if not set. |
rmcp.serviceConfig.logging.level | string | "INFO" |
Log level for the application (valid levels; INFO, DEBUG, WARN, ERROR) |
rmcp.serviceConfig.prefix_url | string | "" |
URL prefix for the service. |
rmcp.serviceConfig.root_path | string | "" |
Root Path for the application. NOTE: useful when behind a proxy. https://fastapi.tiangolo.com/advanced/behind-a-proxy/ |
rmcp.serviceConfig.show_status_endpoint | bool | false |
Show /status and /metrics endpoints from the Open API specification |
rmcp.startupProbe | object | {"httpGet":{"path":"/startup","port":"http"},"initialDelaySeconds":5,"periodSeconds":3} |
startupProbe for the service. NOTE: service must have an endpoint as specified by the "path" https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.24/#probe-v1-core |
rmcp.tolerations | list | [] |
Tolerations for pod assignment. https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ |
Kit container images are hosted on nvcr.io behind a private repository.
Therefore, you will need to create an Image Pull Secret to be able to pull the containers within Kubernetes.
NOTE: if the <<NAMESPACE-NAME>>
namespace does not exist, create it prior to creating the secret.
kubectl create namespace <<NAMESPACE-NAME>>
kubectl create secret docker-registry \
registry-secret \
--namespace <<NAMESPACE-NAME>> \
--docker-server="nvcr.io" \
--docker-username='$oauthtoken' \
--docker-password=<<YOUR-NGC-API-KEY>>
Then during install, specify the global image pull secret.
--set global.imagePullSecrets[0].name=registry-secret