summaryrefslogtreecommitdiff
path: root/doc/api/packages/helm.md
blob: a76fa9d37550b837db631eb0f0400f5538fa8ffc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
---
stage: Package
group: Package
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---

# Helm API

This is the API documentation for [Helm](../../user/packages/helm_repository/index.md).

WARNING:
This API is used by the Helm-related package clients such as [Helm](https://helm.sh/)
and [`helm-push`](https://github.com/chartmuseum/helm-push/#readme),
and is generally not meant for manual consumption. This API is under development and is not ready
for production use due to limited functionality.

For instructions on how to upload and install Helm packages from the GitLab
Package Registry, see the [Helm registry documentation](../../user/packages/helm_repository/index.md).

NOTE:
These endpoints do not adhere to the standard API authentication methods.
See the [Helm registry documentation](../../user/packages/helm_repository/index.md)
for details on which headers and token types are supported.

## Download a chart index

> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62757) in GitLab 14.1.

Download a chart index:

```plaintext
GET projects/:id/packages/helm/:channel/index.yaml
```

| Attribute | Type   | Required | Description |
| --------- | ------ | -------- | ----------- |
| `id`      | string | yes      | The ID or full path of the project. |
| `channel` | string | yes      | Helm repository channel. |

```shell
curl --user <username>:<personal_access_token> \
     https://gitlab.example.com/api/v4/projects/1/packages/helm/stable/index.yaml
```

Write the output to a file:

```shell
curl --user <username>:<personal_access_token> \
     https://gitlab.example.com/api/v4/projects/1/packages/helm/stable/index.yaml \
     --remote-name
```

## Download a chart

> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/61014) in GitLab 14.0.

Download a chart:

```plaintext
GET projects/:id/packages/helm/:channel/charts/:file_name.tgz
```

| Attribute   | Type   | Required | Description |
| ----------- | ------ | -------- | ----------- |
| `id`        | string | yes      | The ID or full path of the project. |
| `channel`   | string | yes      | Helm repository channel. |
| `file_name` | string | yes      | Chart file name. |

```shell
curl --user <username>:<personal_access_token> \
     https://gitlab.example.com/api/v4/projects/1/packages/helm/stable/charts/mychart.tgz \
     --remote-name
```

## Upload a chart

> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64814) in GitLab 14.1.

Upload a chart:

```plaintext
POST projects/:id/packages/helm/api/:channel/charts
```

| Attribute | Type   | Required | Description |
| --------- | ------ | -------- | ----------- |
| `id`      | string | yes      | The ID or full path of the project. |
| `channel` | string | yes      | Helm repository channel. |
| `chart`   | file   | yes      | Chart (as `multipart/form-data`). |

```shell
curl --request POST \
     --form 'chart=@mychart.tgz' \
     --user <username>:<personal_access_token> \
     https://gitlab.example.com/api/v4/projects/1/packages/helm/api/stable/charts
```