-
Notifications
You must be signed in to change notification settings - Fork 39.7k
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
Prep for continuous Docker validation test #26813
Prep for continuous Docker validation test #26813
Conversation
We want to continuously validate Docker releases (kubernetes#25215), on GCI. This change adds a new test config variable, `KUBE_GCI_DOCKER_VERSION`, through which we can specify which version of Docker we want to run on the master and nodes. This change also patches the Jenkins e2e-runner with the ability to fetch the latest Docker (pre)release, and sets the aforementioned variable accordingly.
Do we already make GCI image able to handle metadata key gci-docker-version? |
GCI preview images yes. Not in the official releases yet. |
LGTM, leave it to other reviewers for further check |
@dchen1107 Let me know if you want somebody else on your team (Lantao/Tim?) to review. |
# Typical Docker release versions are like v1.11.2-rc1, v1.11.2, and etc. | ||
local -r version_re='.*\"tag_name\":[[:space:]]+\"v([0-9\.r|c-]+)\",.*' | ||
local -r latest_release="$(curl -fsSL --retry 3 https://api.github.com/repos/docker/docker/releases/latest)" | ||
if [[ "${latest_release}" =~ ${version_re} ]]; then |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: quotes "${version_re}"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have been following the bash 3.2 guide on using regular expression by not quoting them:
In fact, quoting in this context is not advisable as it may cause regex evaluation to fail.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, okay. Good :)
e2e-runner.sh looks good. |
@spxtr Thanks for the review. |
LGTM |
GCE e2e build/test passed for commit a3d712c. |
@k8s-bot test this [submit-queue is verifying that this PR is safe to merge] |
GCE e2e build/test passed for commit a3d712c. |
Automatic merge from submit-queue |
Finally this is merged. :-) |
Encountering error during kube-up
|
Can you suggest a workaround for this ? I am unable to kube-up today - the minions come up but the gcloud command to create the master fails. |
Hmm... How come the e2e tests were able to run just fine. They also used @girishkalele A quick workaround for you is to set |
This workaround worked -
|
I am curious how you encountered this though. Can you share how I can reproduce? |
I just do a kube-up.sh. My environment is very clean, it has no variables matching KUBE or GCI. |
Yeah, looks like I needed to add that var def to |
fixes kubernetes#26813 This env var is only set in `config-test.sh` and trying to evaluate it with `nounset` set will end up with an "unbound variable" error.
@wonderfly |
Automatic merge from submit-queue Make GCI_DOCKER_VERSION optional [![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]() fixes #26813 This env var is only set in `config-test.sh` and trying to evaluate it with `nounset` set will end up with an "unbound variable" error. @girishkalele @dchen1107 This is a XS fix. Can you review?
Automatic merge from submit-queue Node E2E: Prep for continuous Docker validation node e2e test Based on #28516, for #25215. #26813 added support to run e2e test on gci preview image and newest docker version. This PR added the same support to node e2e test. The main dependencies of node e2e test are `docker`, `kubelet`, `etcd` and `apiserver`. Currently, node e2e test builds `kubelet` and `apiserver` locally, and copies them into `/tmp` directory in VM instance. GCI also has built-in `docker`. So the only dependency missing is `etcd`. This PR injected a simple cloud-init script when creating instance to install `etcd` during node startup. @andyzheng0831 for the cloud init script. @wonderfly for the gci instance setup. @pwittrock for the node e2e test change. /cc @dchen1107 [![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]()
We want to continuously validate Docker releases (#25215), on GCI. This change
adds a new test config variable,
KUBE_GCI_DOCKER_VERSION
, through which we canspecify which version of Docker we want to run on the master and nodes. This
change also patches the Jenkins e2e-runner with the ability to fetch the latest
Docker (pre)release, and sets the aforementioned variable accordingly.
Tested on my local Jenkins instance that was able to start a cluster with the latest Docker version (different from installed version) running on both master and nodes.
@dchen1107 Can you review?
cc/ @andyzheng0831 for changes in
cluster/gce/gci/helper.sh
, and @ixdy @spxtr for changes to the Jenkins e2e-runnercc/ @kubernetes/goog-image