Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
e6919f33
Unverified
Commit
e6919f33
authored
Apr 14, 2016
by
Joe Finney
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update Jenkins documentation.
parent
95871a35
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
52 additions
and
8 deletions
+52
-8
README.md
hack/jenkins/README.md
+52
-8
No files found.
hack/jenkins/README.md
View file @
e6919f33
# Jenkins
# Jenkins
[
Jenkins
](
http://jenkins-ci.org/
)
is a pluggable continuous
[
Jenkins
](
http://jenkins-ci.org/
)
is a pluggable continuous
integration system. The Google team is running a Jenkins server on a
integration system. The Google team is running two Jenkins servers in GCE for
private GCE instance for the Kubernetes project in order to run longer
the Kubernetes project. The post-commit instance runs continuous builds, unit
integration tests, continuously, on different providers. Currently, we
tests, integration tests, code verification tests, and end-to-end tests on
are running tests on GCE, GKE, and AWS.
multiple providers using the latest commits to the Kubernetes repo from the
master and release branches. The PR Jenkins instance runs these tests on each
PR by a trusted contributor, it but only runs a subset of the end-to-end tests
and only on GCE.
## General flow
## General flow
The flow of the
Google Jenkins server
:
The flow of the
post-commit Jenkins instance
:
*
Under the
`kubernetes-build`
job: Every 2 minutes, Jenkins polls for a batch
*
Under the
`kubernetes-build`
job: Every 2 minutes, Jenkins polls for a batch
of new commits, after which it runs the
`build.sh`
script (in this directory)
of new commits, after which it runs the
`build.sh`
script (in this directory)
on the latest tip. This results in build assets getting pushed to GCS and the
on the latest tip. This results in build assets getting pushed to GCS and the
...
@@ -18,9 +21,7 @@ The flow of the Google Jenkins server:
...
@@ -18,9 +21,7 @@ The flow of the Google Jenkins server:
*
`kubernetes-e2e-gce`
: Standard GCE e2e.
*
`kubernetes-e2e-gce`
: Standard GCE e2e.
*
`kubernetes-e2e-gke`
: GKE provider e2e, with head k8s client and GKE
*
`kubernetes-e2e-gke`
: GKE provider e2e, with head k8s client and GKE
creating clusters at its default version.
creating clusters at its default version.
*
`kubernetes-e2e-gke-ci`
: GKE provider e2e, with head k8s client and GKE
*
`kubernetes-e2e-aws`
: AWS provider e2e. This only runs once a day.
creating clusters at the head k8s version.
*
`kubernetes-e2e-aws`
: AWS provider e2e.
*
Each job will not run concurrently with itself, so, for instance,
*
Each job will not run concurrently with itself, so, for instance,
Jenkins executor will only ever run one
`kubernetes-build`
Jenkins executor will only ever run one
`kubernetes-build`
job. However, it may run the jobs in parallel,
job. However, it may run the jobs in parallel,
...
@@ -41,6 +42,42 @@ outside this repository, it's tricky to keep documentation for it up
...
@@ -41,6 +42,42 @@ outside this repository, it's tricky to keep documentation for it up
to date quickly. However, the scripts themselves attempt to provide
to date quickly. However, the scripts themselves attempt to provide
color for the configuration(s) that each script runs in.
color for the configuration(s) that each script runs in.
## GCS Log Format
Our
`upload-to-gcs.sh`
script runs at the start and end of every job. Logs on
post-commit Jenkins go under
`gs://kubernetes-jenkins/logs/`
. Logs on PR
Jenkins go under
`gs://kubernetes-jenkins-pull/pr-logs/pull/PULL_NUMBER/`
.
Individual run logs go into the
`JOB_NAME/BUILD_NUMBER`
folder.
At the start of the job, it uploads
`started.json`
containing the version of
Kubernetes under test and the timestamp.
At the end, it uploads
`finished.json`
containing the result and timestamp, as
well as the build log into
`build-log.txt`
. Under
`artifacts/`
we put our
test results in
`junit_XY.xml`
, along with gcp resource lists and cluster logs.
It also updates
`latest-build.txt`
at the end to point to this build number.
In the end, the directory structure looks like this:
```
gs://kubernetes-jenkins/logs/kubernetes-e2e-gce/
latest-build.txt
12345/
build-log.txt
started.json
finished.json
artifacts/
gcp-resources-{before, after}.txt
junit_{00, 01, ...}.xml
jenkins-e2e-master/{kube-apiserver.log, ...}
jenkins-e2e-minion-abcd/{kubelet.log, ...}
12344/
...
```
The munger uses
`latest-build.txt`
and the JUnit reports to figure out whether
or not the job is healthy.
## Job Builder
## Job Builder
New jobs should be specified as YAML files to be processed by
[
Jenkins Job
New jobs should be specified as YAML files to be processed by
[
Jenkins Job
...
@@ -51,4 +88,11 @@ in a Docker container defined in `job-builder-image`, and triggers it using
...
@@ -51,4 +88,11 @@ in a Docker container defined in `job-builder-image`, and triggers it using
[
jenkins_jobs.ini
](
http://docs.openstack.org/infra/jenkins-job-builder/execution.html
)
[
jenkins_jobs.ini
](
http://docs.openstack.org/infra/jenkins-job-builder/execution.html
)
which contains the location and credentials of the Jenkins server.
which contains the location and credentials of the Jenkins server.
E2E Job definitions are templated to avoid code duplication. To add a new job,
add a new entry to the appropriate
`project`
.
[
This
](
https://github.com/kubernetes/kubernetes/commit/eb273e5a4bdd3905f881563ada4e6543c7eb96b5
)
is an example of a commit which does this. If necessary, create a new project, as in
[
this
](
https://github.com/kubernetes/kubernetes/commit/09c27cdabc300e0420a2914100bedb565c23ed73
)
commit.
[

]()
[

]()
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment