-
Notifications
You must be signed in to change notification settings - Fork 36
Images versions and pull policy #14
Comments
Thanks for the write this down, I think it sums up the options quite well. To me, the only two real options for versions are All in all, I'd leave the version as About the pull policy: I'd say we should leave it out of the template and let the default Kubernetes behavior kick in. Let's not deviate from the default behavior without a really good reason here. From the documentation:
Setting a non- My vote is for a version parameter (as we have already) defaulting to |
How do tagged versions help with always pull? The tags will be semver, so if we discover and fix a bug, at minimum it will be released as new patch version. Do these templates understand semver ranges like ~0.5 that automatically picks there latest from 0.5.1, 0.5.2, ... |
Doesn't look like kubernetes or openshift understands ranges. We have been referring to these templates as 'production' versions - and as stated https://kubernetes.io/docs/concepts/configuration/overview/#container-images use of 'latest' in production is not a good idea. So once the server is tagged we should use that version. In terms of the pull policy - as ranges are not supported, looks like we have two options - either update the version in the templates whenever there is a new release (but that means the templates would need to be re-applied), or use a two level tagging approach: This means that the templates could be setup specifically for a major version, which should be safe from breaking changes, but also means the "Always" pull policy will be required (unfortunately) - which is a pity, but until they provide a range mechanism, looks like the only option. |
Image version is not the same as underlying bits. Eg. for jaeger release |
As @pavolloffay mentioned, the image version is not the same as the underlying bits. Another reason for that is in case of a security issue on a layer beneath our own, so, we want to have the ability to have |
The backend has been tagged with v0.5.0, but the Docker images built from master don't seem to pick that tag, I only see commit SHAs: https://hub.docker.com/r/jaegertracing/jaeger-collector/tags/ |
@yurishkuro awesome!! There is probably a bug in https://github.com/uber/jaeger/blob/master/travis/build-docker-images.sh or upload script. Hmm upload script could take argumets to make it cleaner. Could you please upload it manually for this time? |
build-docker-images exists when it's not on the master branch, but tagged release runs with TRAVIS_BRANCH set to the tag number.
|
do we want to keep pushing images for every commit to master, or only for tagged commits? |
Made a fix https://github.com/uber/jaeger/pull/246, once it's merged will release 0.5.1 to test. |
Great job! |
👍
I don't think it's necessary to push an image for every commit. I haven't seen it in other projects, it pollutes the hub. Rather do proper releases more often :) |
the all-in-one and crossdock images are still published on every commit to master |
ignore |
Purpose of this repository
First, let's define what we expect this repository should provide. I think It should provide the easiest way how to deploy Jaeger on OpenShift with a minimal possible configuration. I think people will anyway modify these templates to fit their workflow and preferred configuration (e.g. pull policy) when using in production.
We have to decide what versions of images we are going to use. Latest vs tagged and what pull policy.
Image versions
Latest
I think this can be risky. We cannot ensure that template will always work.
Possible breaking changes:
Tagged version
When using a tagged version there shouldn't be any cases when template won't be compatible with used images. This has also the advantage that images get updates.
SHA
This is like tagged version but without updates for underlying images.
Pull policy
Always
This ensures that images will be updated (e.g. bug or security fixes).
IfNotPresent
Gives the administrator an option to choose the right image (e.g. run some tests before updating images).
Summary
I think the best is to use proper tag version with Always pull policy. This provides the safest out of the box solution. Currently, there is no proper version of Jaeger then I propose to use SHAs as an intermediate solution.
Useful links:
https://kubernetes.io/docs/concepts/configuration/overview/#container-images
https://kubernetes.io/docs/concepts/containers/images/
Email from #8 (comment) http://post-office.corp.redhat.com/archives/obsidian-team-list/2017-May/msg00333.html
The text was updated successfully, but these errors were encountered: