Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Alter schema of 'index.yaml' #1197

Closed
technosophos opened this issue Sep 14, 2016 · 7 comments
Closed

Alter schema of 'index.yaml' #1197

technosophos opened this issue Sep 14, 2016 · 7 comments
Assignees
Milestone

Comments

@technosophos
Copy link
Member

The current index.yaml file looks like this:

mariner-4.3.2:
  name: mariner-4.3.2
  url: localhost:8879/charts/mariner-4.3.2.tgz
  chartfile:
    name: mariner
    version: "4.3.2"
    description: Some description
    icon: https://example.com/path/to/icon.png
mariner-4.1.1:
  name: mariner-4.1.1
  url: localhost:8879/charts/mariner-4.1.1.tgz
  chartfile:
    name: mariner
    version: "4.3.2"
    description: Some description
    icon: https://example.com/path/to/icon.png
alpine-0.1.0:
  name: alpine-0.1.0
  url: localhost:8879/charts/alpine-0.1.0.tgz
  chartfile: ...

There have been ongoing discussions to alter this format before Alpha.5 releases. The goals for altering are:

  • Fewer repeated fields
  • Flatter chart metadata
  • Easier structure for clients to process, where clients may be helm or something much simpler like jq.

Here's the proposed new version:

mariner:
  - version: "4.3.2"
     url: localhost:8879/charts/mariner-4.3.2.tgz
     digest: "sha256:..."
     name: mariner
     description: Some description
     icon: https://example.com/path/to/icon.png
     # rest of Chart.yaml fields
  - version: "4.1.1"
    url: localhost:8879/charts/mariner-4.1.1.tgz
    digest: "sha256:..."
    name: mariner
    description: Some description
    icon: https://example.com/path/to/icon.png
    # rest of Chart.yaml fields
alpine:
  - version: 0.1.0
     url: localhost:8879/charts/alpine-0.1.0.tgz
     # ...

This presents the data in a more tree-like way:

CHART:
    VERSIONS[]
CHART:
    VERSIONS[]

Note that it does collapse the chartfile fields into the versions object.

When it comes to ordering the VERSIONS[] list, it should be ordered by version, descending. So the newest release is in VERSIONS[0]. Assessing the stability of a version is done by SemVer 2 rules.

@technosophos technosophos added this to the 2.0.0-Alpha.5 milestone Sep 14, 2016
@technosophos technosophos self-assigned this Sep 14, 2016
@technosophos
Copy link
Member Author

@technosophos
Copy link
Member Author

Related to #1197 and #1153

@philips
Copy link
Contributor

philips commented Sep 14, 2016

Overall it LGTM.

I would consider adding a "URLs" field like OCI has in case of mirrors.

Also, I would like to see a recognized DNS federated namespace for helm packages but that can be a separate issue. It would affect this design potentially though.

@technosophos
Copy link
Member Author

Adding a URLs field where?

@jackfrancis
Copy link

@philips could you elaborate on the DNS federated namespace idea? What's an example use-case?

@jstrachan
Copy link
Contributor

@technosophos I was assuming this was instead of url to support having repository mirrors

@philips good idea. Though right now we ignore the URL field in the index.yaml anyways :) #1169

@technosophos
Copy link
Member Author

Okay, changing to support urls: {} instead of a single URL.

technosophos added a commit to technosophos/k8s-helm that referenced this issue Oct 3, 2016
This implements a new index file format for repository indices. It also
implements a new format for requirements.yaml.

Breaking change: This will break all previous versions of Helm, and will
impact helm search, repo, serve, and fetch functions.

Closes helm#1197
technosophos added a commit to technosophos/k8s-helm that referenced this issue Oct 3, 2016
This implements a new index file format for repository indices. It also
implements a new format for requirements.yaml.

Breaking change: This will break all previous versions of Helm, and will
impact helm search, repo, serve, and fetch functions.

Closes helm#1197
technosophos added a commit to technosophos/k8s-helm that referenced this issue Oct 3, 2016
This implements a new index file format for repository indices. It also
implements a new format for requirements.yaml.

Breaking change: This will break all previous versions of Helm, and will
impact helm search, repo, serve, and fetch functions.

Closes helm#1197
technosophos added a commit to technosophos/k8s-helm that referenced this issue Oct 3, 2016
This implements a new index file format for repository indices. It also
implements a new format for requirements.yaml.

Breaking change: This will break all previous versions of Helm, and will
impact helm search, repo, serve, and fetch functions.

Closes helm#1197
technosophos added a commit to technosophos/k8s-helm that referenced this issue Oct 4, 2016
This implements a new index file format for repository indices. It also
implements a new format for requirements.yaml.

Breaking change: This will break all previous versions of Helm, and will
impact helm search, repo, serve, and fetch functions.

Closes helm#1197
technosophos added a commit to technosophos/k8s-helm that referenced this issue Oct 4, 2016
This implements a new index file format for repository indices. It also
implements a new format for requirements.yaml.

Breaking change: This will break all previous versions of Helm, and will
impact helm search, repo, serve, and fetch functions.

Closes helm#1197
technosophos added a commit to technosophos/k8s-helm that referenced this issue Oct 4, 2016
This implements a new index file format for repository indices. It also
implements a new format for requirements.yaml.

Breaking change: This will break all previous versions of Helm, and will
impact helm search, repo, serve, and fetch functions.

Closes helm#1197
technosophos added a commit to technosophos/k8s-helm that referenced this issue Oct 4, 2016
This implements a new index file format for repository indices. It also
implements a new format for requirements.yaml.

Breaking change: This will break all previous versions of Helm, and will
impact helm search, repo, serve, and fetch functions.

Closes helm#1197
technosophos added a commit to technosophos/k8s-helm that referenced this issue Oct 4, 2016
This implements a new index file format for repository indices. It also
implements a new format for requirements.yaml.

Breaking change: This will break all previous versions of Helm, and will
impact helm search, repo, serve, and fetch functions.

Closes helm#1197
technosophos added a commit to technosophos/k8s-helm that referenced this issue Oct 4, 2016
This implements a new index file format for repository indices. It also
implements a new format for requirements.yaml.

Breaking change: This will break all previous versions of Helm, and will
impact helm search, repo, serve, and fetch functions.

Closes helm#1197
technosophos added a commit to technosophos/k8s-helm that referenced this issue Oct 4, 2016
This implements a new index file format for repository indices. It also
implements a new format for requirements.yaml.

Breaking change: This will break all previous versions of Helm, and will
impact helm search, repo, serve, and fetch functions.

Closes helm#1197
technosophos added a commit to technosophos/k8s-helm that referenced this issue Oct 4, 2016
This implements a new index file format for repository indices. It also
implements a new format for requirements.yaml.

Breaking change: This will break all previous versions of Helm, and will
impact helm search, repo, serve, and fetch functions.

Closes helm#1197
vaikas pushed a commit to vaikas/deployment-manager that referenced this issue Oct 17, 2016
This implements a new index file format for repository indices. It also
implements a new format for requirements.yaml.

Breaking change: This will break all previous versions of Helm, and will
impact helm search, repo, serve, and fetch functions.

Closes helm#1197
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants