Repository per Chart
I'd prefer to be able to discoverable by others without using Google.
Because of that, I decided to publish my charts to quay.io using the helm appregistry plugin. It works and solves my problems of having auditing, versioning, and I'm not maintaining it.
The logic right now is relatively simple: When you're ready to do a release tag it in github and push it up. Take the tag, insert its value into Chart.yaml for the version, do a test (currently just linting, but will do a lot more later), and then, assuming things pass, publish it up to quay.
Has anyone done something similar or better?

An additional link that could be helpful
Repository per ChartI prefer that model one-repo:one-app too or have the resources located with the application when possible.Is moving and splitting charts to kubernetes-charts/* repo an option ?
I'd prefer to be able to discoverable by others without using Google.Because of that, I decided to publish my charts to quay.io using the helm appregistry plugin. It works and solves my problems of having auditing, versioning, and I'm not maintaining it.As a maintainer of the app-registry and Quay, thanks for sharing your experience using it.You pointed out most of our goals with appr, we want to make it easier to discover, build CI/CD, share and organize charts/kubernetes resources.I think, kubernetes/charts would benefit too of using the registry to publish and organize their releases, maybe we can discuss that idea during a sig-apps meeting ?The logic right now is relatively simple: When you're ready to do a release tag it in github and push it up. Take the tag, insert its value into Chart.yaml for the version, do a test (currently just linting, but will do a lot more later), and then, assuming things pass, publish it up to quay.
Has anyone done something similar or better?Jimmy did a Blog post and a short demo/video with a very similar workflow using helm and the app-registry: improving-kubernets-build-and-deployment-pipelines
In his example the Chart is located within the application source-code: (ant31/cookieapp).An additional link that could be helpfulThanks again, it's very interesting to learn how the community/orgs are doing CI/CD using kubernetes and get more real examples/docs about it.--Antoine
--
You received this message because you are subscribed to the Google Groups "kubernetes-sig-apps" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kubernetes-sig-apps+unsub...@googlegroups.com.
To post to this group, send email to kubernetes-sig-apps@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kubernetes-sig-apps/CADkr4xm_nSLuQMccWZfXVr%3Di7yAFmEGdt9tJw0h7GgBcnk53UQ%40mail.gmail.com.
Repository per ChartI prefer that model one-repo:one-app too or have the resources located with the application when possible.Is moving and splitting charts to kubernetes-charts/* repo an option ?I'd prefer to be able to discoverable by others without using Google.Because of that, I decided to publish my charts to quay.io using the helm appregistry plugin. It works and solves my problems of having auditing, versioning, and I'm not maintaining it.As a maintainer of the app-registry and Quay, thanks for sharing your experience using it.You pointed out most of our goals with appr, we want to make it easier to discover, build CI/CD, share and organize charts/kubernetes resources.
I think, kubernetes/charts would benefit too of using the registry to publish and organize their releases, maybe we can discuss that idea during a sig-apps meeting ?The logic right now is relatively simple: When you're ready to do a release tag it in github and push it up. Take the tag, insert its value into Chart.yaml for the version, do a test (currently just linting, but will do a lot more later), and then, assuming things pass, publish it up to quay.
Has anyone done something similar or better?Jimmy did a Blog post and a short demo/video with a very similar workflow using helm and the app-registry: improving-kubernets-build-and-deployment-pipelines
In his example the Chart is located within the application source-code: (ant31/cookieapp).An additional link that could be helpfulThanks again, it's very interesting to learn how the community/orgs are doing CI/CD using kubernetes and get more real examples/docs about it.--Antoine
--
You received this message because you are subscribed to the Google Groups "kubernetes-sig-apps" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kubernetes-sig-apps+unsub...@googlegroups.com.
To post to this group, send email to kubernetes-sig-apps@googlegroups.com.
Hi Brian,
As of the time of this post, the best place to understand the high level goals of App Registry is our talk from CoreOS Fest 2017 and whereas the fine-grained details have to be found in our Python implementation. We prioritized getting something into the hands of users before working on a well defined specification; we’d be grateful to work with anyone interested in fleshing out the spec to define a stable version of the API.
The crux of App Registry is an opaque tarball of configuration data (whatever that may be) and a JSON manifest containing metadata. One piece of metadata is a mimetype that’s used to determine the format of the tarball’s contents -- this is exactly the same mechanisms used by the Docker & OCI image specs to differentiate versions.
The standalone `appr` binary supports different formats, but the user must specify metadata like this via CLI flags. The Helm Registry Plugin is a wrapper of appr that introspects the local Chart to intuit the values you'd normally have to specify manually. Here’s an example usage with just `appr` and a Docker Compose file:
mkdir mytestcompose && cd mytestcompose
touch docker-compose.yaml
appr push --media-type docker-compose quay.io/jzelinskie/mytestcompose:1.0.0
curl -L https://quay.io/cnr/api/v1/packages/jzelinskie/mytestcompose | jq
[
{
"content": {
"digest": "2eca5017d4bada1f843722d23c89e9cfb2c59329caf2b4690cb51bec880715bc",
"mediaType": "application/vnd.cnr.package.docker-compose.v0.tar+gzip",
"size": 192,
"urls": []
},
"created_at": "2017-07-11T18:12:01",
"digest": "sha256:ba6e02ca536aff2afcddaf3d0278e75aa9e3c363aacc6d62ee4eef33ba972fb3",
"mediaType": "application/vnd.cnr.package-manifest.docker-compose.v0.json",
"metadata": null,
"package": "jzelinskie/mytestcompose",
"release": "1.0.0"
}
]
To post to this group, send email to kubernete...@googlegroups.com.
BTW, how is the DAC format specified? I didn't see that in the spec.
App Registry is built to consider a variety of DAC and not solely Helm Charts. As a result, we consider it core to easily specify common formats: docker-compose, ksonnet, *.yaml, Charts….
As described by Jimmy, the protocol is voluntary simple: it’s an opaque tarball and a media-type.
Without restricting any content from using the API for basic primitives such as authenticated storage, our long-term goal with App Registry is to create a specialized behavior for well-defined DAC that manages their metadata/data.
For example, we could:
- index fields from the Chart.yaml and create a search by authors
- index by kubernetes-version compat
- expand templates on the registry/server-side to display a diff between releases
- create dependency graphs between apps and images by parsing pod specs
Do you expect a configuration/deployment tool to know to request packages implemented
using a compatible format?
If I’m understanding the question correctly, the goal isn’t to enforce any particular format on the configuration package. In the future, maybe it will make sense to standardize across tools a means of providing application metadata (e.g. Chart.yaml).
Is there a mechanism to map format types to images implementing compatible tools (e.g., helm, kompose, kubectl)?
As said, each format is mapped to a versioned media-type string and tools can leverage this information to request and manage their own packages. Official mappings between popular tools and media-type may live in the written specification, but developers should still be able to create custom mime-types without official support.
One result I’d personally like to see is the workflow management detached from the templating/package format.
As a user, I shouldn’t care if the resources are packaged using opencompose, ksonnet, helm, or ‘plain’ kubernetes resources. I would like to manage/deploy/upgrade my applications in a consistent way regardless of the templating format, using my favorite tool (e.g. kubectl, Helm-Tiller, an operator, kpm) and not having to switch between them depending on the app maintainer preferences.
One of our goals for the next cycle is to create a kubectl plugin, part of which can explore this idea:
$ kubectl appr deploy quay.io/ant31/cookieapp
-> deploying from a 'docker-compose.yml' (kompose)
$ kubectl appr deploy quay.io/charts/gitlab
-> deploying from 'helm-chart' package
$ kubectl appr deploy quay.io/ksonnet/redis
-> deploying from 'ksonnet' package
$ kubectl appr deploy quay.io/k8s/kubernetes-dashboard
-> deploying from 'plain kubernetes resources’
To unsubscribe from this group and stop receiving emails from it, send an email to kubernetes-sig-apps+unsubscribe...@googlegroups.com.
To post to this group, send email to kubernete...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kubernetes-sig-apps/CADkr4xm_nSLuQMccWZfXVr%3Di7yAFmEGdt9tJw0h7GgBcnk53UQ%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "kubernetes-sig-apps" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kubernetes-sig-apps+unsub...@googlegroups.com.
To post to this group, send email to kubernetes-sig-apps@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kubernetes-sig-apps/e19331f7-9337-49d6-9cf3-e47e207f511a%40googlegroups.com.
I tried reading the draughtsman readme just now and struggling to understand the use case. Could you try to expand the readme and maybe include a concrete example.
--
You received this message because you are subscribed to the Google Groups "kubernetes-sig-apps" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kubernetes-sig-...@googlegroups.com.
To post to this group, send email to kubernete...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kubernetes-sig-apps/387e1060-8267-45cc-bc1b-f2441d53446d%40googlegroups.com.