---
title: "Create DPU Extension Service"
method: POST
path: "/v2/org/{org}/nico/dpu-extension-service"
tags: ["DPU Extension Service"]
---

# Create DPU Extension Service

`POST /v2/org/{org}/nico/dpu-extension-service`

Create a DPU Extension Service for the current Tenant.

Org must have a Tenant entity. User must have authorization role with `TENANT_ADMIN` suffix.

## Request body

- DpuExtensionServiceCreateRequest — Request data to create a new DPU Extension Service
  - `name` string, required — Name for the DPU Extension Service. Must be unique for a given Tenant
  - `description` string, nullable — Optional description for the DPU Extension Service
  - `serviceType` 'KubernetesPod', required — Type of the DPU Extension Service
  - `siteId` string, uuid, required — ID for the Site the DPU Extension Service belongs to
  - `data` string, required — Deployment spec for the DPU Extension Service
  - `credentials` DpuExtensionServiceCredentials — Credentials for retrieving resources specified in DPU Extension Service data
    - `registryUrl` string — URL for the registry the credential should be used for
    - `username` string, nullable — Username for the registry. Must be specified if registry URL is specified
    - `password` string, nullable — Password for the registry. Must be specified if registry URL is specified
  - `observability` DpuExtensionServiceObservability — Observability configuration for a DPU Extension Service version
    - `configs` DpuExtensionServiceObservabilityConfig[] — Observability configurations to apply to the service version
      - union — A single observability configuration for a DPU Extension Service version
        - object
          - `name` string, nullable — Optional name of the service or component being monitored
          - `prometheus` DpuExtensionServiceObservabilityPrometheus, required — Prometheus scrape configuration for a DPU Extension Service version
            - `scrapeIntervalSeconds` integer, required — How often Prometheus should scrape the endpoint
            - `endpoint` string, required — Prometheus scrape endpoint
          - `logging` DpuExtensionServiceObservabilityLogging — Logging configuration for a DPU Extension Service version
            - `path` string, required — Path to the log file to collect
        - object
          - `name` string, nullable — Optional name of the service or component being monitored
          - `prometheus` DpuExtensionServiceObservabilityPrometheus — Prometheus scrape configuration for a DPU Extension Service version
            - `scrapeIntervalSeconds` integer, required — How often Prometheus should scrape the endpoint
            - `endpoint` string, required — Prometheus scrape endpoint
          - `logging` DpuExtensionServiceObservabilityLogging, required — Logging configuration for a DPU Extension Service version
            - `path` string, required — Path to the log file to collect

## Response `201`

Created

- DpuExtensionService — DPU Extension Service allows user defined services to run on DPUs of their Instances
  - `id` string, uuid — Unique identifier for the DPU Extension Service
  - `name` string — Name for the DPU Extension Service. Must be unique for a given Tenant
  - `description` string, nullable — Optional description for the DPU Extension Service
  - `serviceType` 'KubernetesPod' — Type of the DPU Extension Service
  - `siteId` string, uuid — ID for the Site the DPU Extension Service belongs to
  - `tenantId` string, uuid — ID for the Tenant the DPU Extension Service belongs to
  - `version` string, nullable — Latest version of the DPU Extension Service
  - `versionInfo` DpuExtensionServiceVersionInfo — Information about a specific version of DPU Extension Service
    - `version` string, nullable — Current version of the DPU Extension Service
    - `data` string — Deployment spec for the DPU Extension Service
    - `hasCredentials` boolean — Indicates whether this version was created with credentials
    - `created` string, date-time — Date/time when this version of the DPU Extension Service was created
    - `observability` DpuExtensionServiceObservability — Observability configuration for a DPU Extension Service version
      - `configs` DpuExtensionServiceObservabilityConfig[] — Observability configurations to apply to the service version
        - union — A single observability configuration for a DPU Extension Service version
          - object
            - `name` string, nullable — Optional name of the service or component being monitored
            - `prometheus` DpuExtensionServiceObservabilityPrometheus, required — Prometheus scrape configuration for a DPU Extension Service version
              - …
            - `logging` DpuExtensionServiceObservabilityLogging — Logging configuration for a DPU Extension Service version
              - …
          - object
            - `name` string, nullable — Optional name of the service or component being monitored
            - `prometheus` DpuExtensionServiceObservabilityPrometheus — Prometheus scrape configuration for a DPU Extension Service version
              - …
            - `logging` DpuExtensionServiceObservabilityLogging, required — Logging configuration for a DPU Extension Service version
              - …
  - `activeVersions` string[] — Latest and past versions of this DPU Extension Service that have not been deleted and are available for deployment
  - `status` 'Pending' | 'Ready' | 'Error' | 'Deleting' — Status values for DPU Extension Service objects
  - `statusHistory` StatusDetail[] — History of the DPU Extension Service statuses
    - `status` string — State of the associated entity at a particular time
    - `message` string, nullable — Description of the state and cause/remedy in case of error
    - `created` string, date-time — Date/time when the associated entity assumed the status
    - `updated` string, date-time — Date/time when the associated entity was last observed with this status
  - `created` string, date-time — Date/time when the DPU Extension Service was created
  - `updated` string, date-time — Date/time when the DPU Extension Service was last updated

## Other responses

- `400` — Error response when request data cannot be validated
- `403` — Error response when user is not authorized to call an endpoint or retrieve/modify objects

---

[API](https://skmtc.net/nvidia/apis/nvidia-infra-controller-rest-api.md) · [All operations](https://skmtc.net/nvidia/apis/nvidia-infra-controller-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/nvidia/nvidia-infra-controller-rest-api/revisions/1460aac2602f/schema)
