---
title: "Clone helm"
method: POST
path: "/helm/{helmId}/clone"
tags: ["Helms"]
---

# Clone helm

`POST /helm/{helmId}/clone`

## Request

- Base URL: `https://api.qovery.com`
- URL: `https://api.qovery.com/helm/{helmId}/clone`
- Auth: one of:
  - API key in header `Authorization`
  - HTTP bearer
- TypeScript: <https://skmtc.dev/qovery/apis/qovery-api/docs/helm/:helmId/clone/post.ts> (a function with typed inputs; its response is checked against the schema)

This will create a new helm with the same configuration on the targeted environment Id.

## Path parameters

- `helmId` string, uuid, required

## Request body

- CloneServiceRequest
  - `name` string, required
  - `environment_id` string, uuid, required

## Response `202`

Helm clone has been requested

- HelmResponse
  - `id` string, uuid, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time
  - `environment` ReferenceObject, required
    - `id` string, uuid, required
  - `name` string, required: name is case insensitive
  - `description` string
  - `timeout_sec` integer: Maximum number of seconds allowed for helm to run before killing it and mark it as failed
  - `auto_preview` boolean, required: Indicates if the 'environment preview option' is enabled. If enabled, a preview environment will be automatically cloned when `/preview` endpoint is called. If not specified, it takes the value of the `auto_preview` property from the associated environment.
  - `auto_deploy` boolean, required: Specify if the service will be automatically updated after receiving a new image tag or a new commit according to the source type.
  - `ports` union[]
    - union
      - HelmPortResponseWithServiceName
        - `id` string, uuid, required
        - `port_type` string, required
        - `name` string
        - `internal_port` integer, required: The listening port of your service.
        - `external_port` integer: The exposed port for your service. This is optional. If not set a default port will be used.
        - `namespace` string
        - `protocol` 'HTTP' | 'GRPC', required
        - `is_default` boolean: is the default port to use for domain
        - `service_name` string, required
      - HelmPortResponseWithServiceSelectors
        - `id` string, uuid, required
        - `port_type` string, required
        - `name` string
        - `internal_port` integer, required: The listening port of your service.
        - `external_port` integer: The exposed port for your service. This is optional. If not set a default port will be used.
        - `namespace` string
        - `protocol` 'HTTP' | 'GRPC', required
        - `is_default` boolean: is the default port to use for domain
        - `service_selectors` KubernetesSelector[], required
          - `key` string, required
          - `value` string, required
  - `source` union, required
    - object
      - `git` HelmSourceGitResponse, required
        - `git_repository` ApplicationGitRepository, required
          - `has_access` boolean
          - `provider` 'BITBUCKET' | 'GITHUB' | 'GITLAB', required
          - `owner` string, required
          - `url` string, uri, required
          - `name` string, required: repository name
          - `branch` string
          - `root_path` string
          - `deployed_commit_id` string: Git commit ID corresponding to the deployed version of the app
          - `deployed_commit_date` string, date-time: Git commit date corresponding to the deployed version of the app
          - `deployed_commit_contributor` string: Git commit user corresponding to the deployed version of the app
          - `deployed_commit_tag` string
          - `git_token_id` string, nullable
          - `git_token_name` string, nullable
    - object
      - `repository` HelmSourceRepositoryResponse, required
        - `chart_name` string, required
        - `chart_version` string, required
        - `repository` object, required
          - `id` string, uu, required
          - `name` string, required
          - `url` string, uri, required
  - `arguments` string[], required: The extra arguments to pass to helm
  - `allow_cluster_wide_resources` boolean, required: If we should allow the chart to deploy object outside his specified namespace. Setting this flag to true, requires special rights
  - `values_override` object, required: Specify helm values you want to set or override
    - `set` array[]: The input is in json array format: [ [$KEY,$VALUE], [...] ]
      - string[]
    - `set_string` array[]: The input is in json array format: [ [$KEY,$VALUE], [...] ]
      - string[]
    - `set_json` array[]: The input is in json array format: [ [$KEY,$VALUE], [...] ]
      - string[]
    - `file` object, nullable
      - `raw` object, nullable
        - `values` object[], required
          - `name` string, required: The name of the value file
          - `content` string, required: The content of the value file
      - `git` object, nullable
        - `git_repository` ApplicationGitRepository, required
          - `has_access` boolean
          - `provider` 'BITBUCKET' | 'GITHUB' | 'GITLAB', required
          - `owner` string, required
          - `url` string, uri, required
          - `name` string, required: repository name
          - `branch` string
          - `root_path` string
          - `deployed_commit_id` string: Git commit ID corresponding to the deployed version of the app
          - `deployed_commit_date` string, date-time: Git commit date corresponding to the deployed version of the app
          - `deployed_commit_contributor` string: Git commit user corresponding to the deployed version of the app
          - `deployed_commit_tag` string
          - `git_token_id` string, nullable
          - `git_token_name` string, nullable
        - `paths` string[], required: List of path inside your git repository to locate values file. Must start by a /
  - `icon_uri` string, uri, required: Icon URI representing the helm service.
  - `service_type` 'APPLICATION' | 'DATABASE' | 'CONTAINER' | 'JOB' | 'HELM' | 'TERRAFORM', required: type of the service (application, database, job, ...)

## Other responses

- `401`: Access token is missing or invalid
- `403`: Access forbidden
- `404`: Resource not found
- `409`: Operation is in progress

---

[API](https://skmtc.dev/qovery/apis/qovery-api.md) - [All operations](https://skmtc.dev/qovery/apis/qovery-api/llms.txt) - [OpenAPI document](https://skmtc.dev/qovery/apis/qovery-api/revisions/93c4960a44ba?raw)
