--- title: "Install cluster add-on" slug: "nks-installaddon" updated: 2026-09-17T10:05:54Z published: 2026-09-17T10:05:54Z canonical: "api.ncloud-docs.com/nks-installaddon" --- > ## Documentation Index > Fetch the complete documentation index at: https://api.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # Install cluster add-on Available in VPC Install one or more add-ons on a specific cluster. Note The installation begins after the request is validated. If any add-on fails validation, none of the requested add-ons will be installed. ## Request This section describes the request format. The method and URI are as follows: | Method | URI | | --- | --- | | POST | /vnks/v2/clusters/{uuid}/addons (Korea Region) | | POST | /vnks/sgn-v2/clusters/{uuid}/addons (Singapore Region) | | POST | /vnks/jpn-v2/clusters/{uuid}/addons (Japan Region) | ### Request headers For information about the headers common to all Ncloud Kubernetes Service APIs, see [Ncloud Kubernetes Service request headers](/docs/en/compute-vpckubernetesservice#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94). ### Request path parameters You can use the following path parameters with your request: | Field | Type | Required | Description | | --- | --- | --- | --- | | `uuid` | String | Required | Cluster UUID - See [Get cluster list](/docs/en/nks-getclusterlist). | ### Request syntax The request syntax is as follows: ``` [ { "addonName": "string", "version": "string", "configurationValues": "string", "resolveConflicts": "string" } ] ``` ### Request body You can include the following data in the body of your request: | Field | Type | Required | Description | | --- | --- | --- | --- | | `[]` | Array | Required | List of add-ons to install | | `[].addonName` | String | Required | Name of add-on to install - See [Get add-on list](/docs/en/nks-getaddonconfiglist). | | `[].version` | String | Required | Version of add-on to install - See `versions[]` of [Get add-on](/docs/en/nks-getaddonconfig). - Example: `1.0.0` | | `[].configurationValues` | String | Optional | Helm values override values (JSON object string) - See `configurationSchema` of [Get add-on version](/docs/en/nks-getaddonconfigversion). - `{}` is applied if not set. | | `[].resolveConflicts` | String | Optional | How fields modified directly in the cluster are handled - `Overwrite` (default) \| `Preserve` - `Overwrite`: Overwrite with add-on configuration value. - `Preserve`: Retain the directly modified value. | ### Request example The request example is as follows: ``` curl --location --request POST 'https://nks.apigw.ntruss.com/vnks/v2/clusters/****a20e-e0fb-4dc9-af1b-97fd3f8d****/addons' \ --header 'x-ncp-apigw-timestamp: {Timestamp}' \ --header 'x-ncp-iam-access-key: {Sub Account Access Key}' \ --header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \ --header 'Content-Type: application/json' \ --data '[ { "addonName": "nks-csi", "version": "1.0.0" }, { "addonName": "external-dns", "version": "1.0.0", "configurationValues": "{\"policy\": \"sync\"}", "resolveConflicts": "Overwrite" } ]' ``` ## Response This section describes the response format. ### Response syntax The response syntax is as follows: ``` { "addons": [ { "uuid": "string", "clusterUuid": "string", "addonName": "string", "version": "string", "configurationValues": "string", "displayName": "string", "description": "string", "category": "string", "status": "string", "message": "string", "k8sVersion": "string", "latestVersion": "string", "createdAt": "string", "updatedAt": "string" } ], "totalCount": "integer" } ``` ### Response body The response body includes the following data: | Field | Type | Required | Description | | --- | --- | --- | --- | | `addons[]` | Array | - | List of add-ons requested to be installed | | `totalCount` | Integer | - | Number of add-ons requested to be installed | For descriptions of each field in `addons[]`, see [Response body of Get cluster add-on](/docs/en/nks-getclusteraddon). ### Response status codes For information about the HTTP status codes common to all Ncloud Kubernetes Service APIs, see [Ncloud Kubernetes Service response status codes](/docs/en/compute-vpckubernetesservice#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C). ### Response example The response example is as follows: ``` { "addons": [ { "uuid": "****b3f1-2c4d-4a6e-9f80-1a2b3c4d****", "clusterUuid": "****a20e-e0fb-4dc9-af1b-97fd3f8d****", "addonName": "nks-csi", "version": "1.0.0", "configurationValues": "{}", "displayName": "NKS Block Storage CSI", "description": "NKS managed CSI driver for ncloud Block Storage. Provides dynamic volume provisioning, attachment, snapshot, and resize.", "category": "storage", "status": "install_in_progress", "message": "", "k8sVersion": "1.36.2-nks.1", "latestVersion": "", "createdAt": "2025-06-05T10:15:30.000Z", "updatedAt": "2025-06-05T10:15:30.000Z" }, { "uuid": "****c4a2-3d5e-4b7f-8a91-2b3c4d5e****", "clusterUuid": "****a20e-e0fb-4dc9-af1b-97fd3f8d****", "addonName": "external-dns", "version": "1.0.0", "configurationValues": "{\"policy\": \"sync\"}", "displayName": "External DNS (NAVER Cloud)", "description": "external-dns with the NAVER Cloud Global DNS webhook provider. Syncs Kubernetes Service/Ingress hostnames to NAVER Cloud Global DNS records via the out-of-tree webhook provider (sidecar).", "category": "network", "status": "install_in_progress", "message": "", "k8sVersion": "1.36.2-nks.1", "latestVersion": "", "createdAt": "2025-06-05T10:15:30.000Z", "updatedAt": "2025-06-05T10:15:30.000Z" } ], "totalCount": 2 } ```