Description
EDITED by @dchen1107 on Sept 23, 2016
Description
Currently, Docker (https://www.docker.com/) is the default container runtime used by Kubernetes. Kubernetes release quality is significantly affected by Docker release quality.
The container technology evolves very rapidly, and so does Docker. Kubernetes can’t stick with a specific Docker version because
- Customers might ask for new features in new Docker release.
- Each Docker release solves some known issues and enhances the overall reliability and performance.
Docker releases per month, and before each release there are also several pre-releases. To ensure Kubernetes compatible with new Docker release, every quarter we had to invest at least 2-week engineer time to manually validate Docker release quality. For example, for 1.3 Kubernetes release, Kubernetes engineer manually validated
- Docker 1.9: Validate docker v1.9.0-rc1 release kubernetes#16110
- Docker 1.10: Validate Docker 1.10 kubernetes#19720
- Docker 1.11: Validate Docker v1.11 kubernetes#23397
but we still couldn't cover all Docker (pre)release.
Thus, we developed the automated docker validation framework. It is a framework automatically validates newest Docker (pre)release against Kubernetes HEAD everyday, the validation includes functionality validation and performance validation.
Progress Tracker
- Before Alpha: proposed at Automated docker validation tests kubernetes#22765
- Write and maintain draft quality doc: https://docs.google.com/document/d/1eZHAPG74GR9UkDOdp2GYdOs6_rPaIAS3BS7mtKJ9rj4/edit
- Identify shepherd: @dchen1107
- Identify secondary/backup contact point. @liangchenye, @wonderfly
- Write and maintain draft quality doc: https://docs.google.com/document/d/1eZHAPG74GR9UkDOdp2GYdOs6_rPaIAS3BS7mtKJ9rj4/edit
- Before Beta
- Initial docker micro benchmark: https://github.com/kubernetes/contrib/tree/master/docker-micro-benchmark
- Before Stable
- Write (code + tests + docs) then get them merged.
- Test infrastructure work on k8s side:
- Prep for continuous Docker validation test kubernetes#26813
- Node E2E: Prep for continuous Docker validation node e2e test kubernetes#28213
- Change the docker validation node e2e test to use gci-canary-test kubernetes#28927
- Change SETUP_NODE to True for node e2e docker validation test. kubernetes#29435
- Jenkins support:
- Docker specific test:
- Runtime Conformance Test:
- Runtime Performance Test:
- Add density (batch pods creation latency and resource) and resource performance tests to `test-e2e-node' built for Linux only kubernetes#30026
- TODO: enable performance test on docker validation infrastructure
- Test infrastructure work on k8s side:
- Write (code + tests + docs) then get them merged.
- Docs
- Write user docs and get them merged in.
- Publish the link to access the test result: https://k8s-testgrid.appspot.com/docker