Project

Profile

Help

Helm Support » History » Sprint/Milestone 2

milan, 01/28/2018 11:17 PM

1 1 milan
# Helm Support
2
3
Manage [Charts](https://github.com/kubernetes/helm/blob/master/docs/charts.md), the content type for the [Helm](https://helm.sh/) package manager.
4
5
## The Content Unit Anatomy
6
7
A **chart** is a *named, compressed tarball* that, besides the actual content, contains a mandatory [chart file](https://github.com/kubernetes/helm/blob/master/docs/charts.md#the-chartyaml-file) which describes the **chart**. **charts** may optionally *nest* further **chart** dependencies.
8
9
## The Content Unit Unique Constraints
10
11
Two **charts** can be considered *identical* if their *name*, *version* and *digest* attributes are equal. A [charts repository index](https://github.com/kubernetes/helm/blob/master/docs/chart_repository.md#the-index-file) tracks these attributes of each published **chart**.
12
13
## Additional Mandatory Content Unit Attributes
14
15
There are multiple optional [attributes](https://github.com/kubernetes/helm/blob/master/docs/charts.md#the-chartyaml-file) a **chart** can have, that the [helm inspect](https://docs.helm.sh/using_helm/#helm-search-finding-charts) command will display. The [helm search](https://docs.helm.sh/using_helm/#helm-search-finding-charts) command utilises matching based on the *tags* and *description* attributes in addition to the *name* attribute. It therefore would be reasonable to track these attributes in **Pulp** too.
16
17
## Content Discovery
18
19 2 milan
The **helm** client supports the notion of a [chart repository](https://docs.helm.sh/using_helm/#helm-repo-working-with-repositories) ; multiple repositories can be *tracked* by the client. A **chart** can be discovered by searching thru a [repository index](https://github.com/kubernetes/helm/blob/master/docs/chart_repository.md#the-index-file) that contains all the *mandatory* attributes of all the **charts** of the repository. In addition, both the **index** and the **chart file** include a *list of urls* that a **chart** can be downloaded from. Both these lists should probably contain a *link back* to the **Pulp** repository itself. The **helm** content plug-in should therefore rebuild the index upon a repository publish.
20 1 milan
21
## Summary
22
23
Relevant **chart** content type attributes:
24
25
  - name
26
  - version
27
  - digest
28
  - description
29
  - a list of tags
30
  - a list of URLs