mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-01 07:47:56 +00:00
Merge pull request #24949 from spxtr/remove-jjb
Remove JJB scripts and configs.
This commit is contained in:
commit
3a4f179c75
@ -82,9 +82,11 @@ or not the job is healthy.
|
|||||||
|
|
||||||
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
|
||||||
Builder](http://docs.openstack.org/infra/jenkins-job-builder/). The YAML files
|
Builder](http://docs.openstack.org/infra/jenkins-job-builder/). The YAML files
|
||||||
live in `job-configs` and its subfolders. Jenkins runs Jenkins Job Builder
|
live in `jenkins/job-configs` and its subfolders **in the
|
||||||
in a Docker container defined in `job-builder-image`, and triggers it using
|
[kubernetes/test-infra repository](https://github.com/kubernetes/test-infra)**.
|
||||||
`update-jobs.sh`. Jenkins Job Builder uses a config file called
|
Jenkins runs Jenkins Job Builder in a Docker container defined in
|
||||||
|
`job-builder-image`, and triggers it using `update-jobs.sh`. Jenkins Job Builder
|
||||||
|
uses a config file called
|
||||||
[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.
|
||||||
|
|
||||||
|
@ -1,75 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Copyright 2016 The Kubernetes Authors All rights reserved.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
|
|
||||||
# Uses the kubekins-job-builder Docker image to compute the differences in
|
|
||||||
# the Jenkins job config XML, comparing the current git branch against upstream
|
|
||||||
# master. The filename containing the diff is printed at the end, assuming
|
|
||||||
# everything parsed successfully.
|
|
||||||
|
|
||||||
# Note: anecdotal evidence suggests this doesn't work correctly on OS X.
|
|
||||||
# If you find that there is no diff being generated, you may want to try setting
|
|
||||||
# OUTPUT_DIR to some directory in your home directory.
|
|
||||||
|
|
||||||
# When running this script from inside Docker, you must set REPO_ROOT to point
|
|
||||||
# to the path to the repository on the host, and DOCKER_VOLUME_OUTPUT_DIR must
|
|
||||||
# point to the path of $OUTPUT_DIR on the host. This is due to the way volume
|
|
||||||
# mounts work in Docker-in-Docker.
|
|
||||||
|
|
||||||
set -o errexit
|
|
||||||
set -o nounset
|
|
||||||
set -o pipefail
|
|
||||||
|
|
||||||
readonly JOB_CONFIGS_ROOT="hack/jenkins/job-configs"
|
|
||||||
readonly JOB_BUILDER_IMAGE='gcr.io/google_containers/kubekins-job-builder:1'
|
|
||||||
|
|
||||||
KUBE_ROOT=$(cd $(dirname "${BASH_SOURCE}")/../.. && pwd)
|
|
||||||
REPO_DIR=${REPO_DIR:-"${KUBE_ROOT}"}
|
|
||||||
|
|
||||||
readonly output_dir=${OUTPUT_DIR:=$(mktemp -d -t JJB-XXXXX)}
|
|
||||||
readonly docker_volume_output_dir=${DOCKER_VOLUME_OUTPUT_DIR:="${output_dir}"}
|
|
||||||
readonly diff_file="${output_dir}/diff.txt"
|
|
||||||
|
|
||||||
mkdir -p "${output_dir}/upstream" "${output_dir}/patch"
|
|
||||||
|
|
||||||
echo "Saving output in ${output_dir}"
|
|
||||||
|
|
||||||
readonly common_commands="\
|
|
||||||
git describe --long --tags --abbrev=14 >/output/gitversion.txt && \
|
|
||||||
git rev-parse --abbrev-ref HEAD >/output/gitbranch.txt && \
|
|
||||||
jenkins-jobs test \
|
|
||||||
'${JOB_CONFIGS_ROOT}:${JOB_CONFIGS_ROOT}/kubernetes-jenkins' \
|
|
||||||
-o /output/kubernetes-jenkins && \
|
|
||||||
jenkins-jobs test \
|
|
||||||
'${JOB_CONFIGS_ROOT}:${JOB_CONFIGS_ROOT}/kubernetes-jenkins-pull' \
|
|
||||||
-o /output/kubernetes-jenkins-pull"
|
|
||||||
|
|
||||||
docker run --rm=true -i \
|
|
||||||
-v "${docker_volume_output_dir}/upstream:/output" \
|
|
||||||
"${JOB_BUILDER_IMAGE}" \
|
|
||||||
bash -c "git checkout master && git pull && ${common_commands}"
|
|
||||||
|
|
||||||
docker run --rm=true -i \
|
|
||||||
-v "${docker_volume_output_dir}/patch:/output" \
|
|
||||||
-v "${REPO_DIR}:/kubernetes:ro" \
|
|
||||||
"${JOB_BUILDER_IMAGE}" \
|
|
||||||
bash -c "${common_commands}"
|
|
||||||
|
|
||||||
diff -ruN "${output_dir}/upstream" "${output_dir}/patch" >"${diff_file}" || true
|
|
||||||
if [[ -t 1 ]]; then # Attached to a terminal?
|
|
||||||
less "${diff_file}"
|
|
||||||
fi
|
|
||||||
echo
|
|
||||||
echo " *** Diff saved in ${diff_file} ***"
|
|
@ -1,47 +0,0 @@
|
|||||||
# Copyright 2016 The Kubernetes Authors All rights reserved.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
|
|
||||||
# This docker image runs Jenkins Job Builder (JJB) for automatic job reconciliation.
|
|
||||||
|
|
||||||
FROM ubuntu:14.04
|
|
||||||
MAINTAINER Joe Finney <spxtr@google.com>
|
|
||||||
|
|
||||||
RUN mkdir /build
|
|
||||||
WORKDIR /build
|
|
||||||
|
|
||||||
# Dependencies for JJB
|
|
||||||
RUN apt-get update && apt-get install -y \
|
|
||||||
wget \
|
|
||||||
git \
|
|
||||||
python-dev \
|
|
||||||
python-pip \
|
|
||||||
libyaml-dev \
|
|
||||||
python-yaml
|
|
||||||
RUN pip install PyYAML python-jenkins
|
|
||||||
# Required since JJB supports python 2.6, which doesn't have ordereddict built-in. We have 2.7.
|
|
||||||
RUN wget https://pypi.python.org/packages/source/o/ordereddict/ordereddict-1.1.tar.gz \
|
|
||||||
&& tar -xvf ordereddict-1.1.tar.gz \
|
|
||||||
&& cd ordereddict-1.1 \
|
|
||||||
&& python setup.py install
|
|
||||||
|
|
||||||
RUN git clone https://git.openstack.org/openstack-infra/jenkins-job-builder \
|
|
||||||
&& cd jenkins-job-builder \
|
|
||||||
&& python setup.py install
|
|
||||||
|
|
||||||
# JJB configuration lives in /etc/jenkins_jobs/jenkins_jobs.ini
|
|
||||||
RUN mkdir -p /etc/jenkins_jobs
|
|
||||||
|
|
||||||
WORKDIR /
|
|
||||||
RUN git clone https://github.com/kubernetes/kubernetes.git
|
|
||||||
WORKDIR kubernetes
|
|
@ -1,19 +0,0 @@
|
|||||||
# Copyright 2016 The Kubernetes Authors All rights reserved.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
|
|
||||||
TAG = 1
|
|
||||||
|
|
||||||
all:
|
|
||||||
docker build -t gcr.io/google_containers/kubekins-job-builder:$(TAG) .
|
|
||||||
gcloud docker push gcr.io/google_containers/kubekins-job-builder:$(TAG)
|
|
@ -1,197 +0,0 @@
|
|||||||
# Mail Watcher Plugin alerts the specified address whenever a job config is updated or deleted.
|
|
||||||
- property:
|
|
||||||
name: mail-watcher
|
|
||||||
properties:
|
|
||||||
- raw:
|
|
||||||
xml: |
|
|
||||||
<org.jenkinsci.plugins.mailwatcher.WatcherJobProperty plugin="mail-watcher-plugin@1.13">
|
|
||||||
<watcherAddresses>cloud-kubernetes-team@google.com</watcherAddresses>
|
|
||||||
</org.jenkinsci.plugins.mailwatcher.WatcherJobProperty>
|
|
||||||
|
|
||||||
- publisher:
|
|
||||||
name: gcs-uploader
|
|
||||||
publishers:
|
|
||||||
- postbuildscript:
|
|
||||||
builders:
|
|
||||||
- shell: |
|
|
||||||
mkdir -p _tmp
|
|
||||||
curl -fsS --retry 3 "https://raw.githubusercontent.com/kubernetes/kubernetes/master/hack/jenkins/upload-to-gcs.sh" > ./_tmp/upload-to-gcs.sh
|
|
||||||
chmod +x ./_tmp/upload-to-gcs.sh
|
|
||||||
- conditional-step:
|
|
||||||
condition-kind: current-status
|
|
||||||
condition-worst: SUCCESS
|
|
||||||
condition-best: SUCCESS
|
|
||||||
steps:
|
|
||||||
- shell: 'JENKINS_BUILD_FINISHED=SUCCESS ./_tmp/upload-to-gcs.sh'
|
|
||||||
- conditional-step:
|
|
||||||
condition-kind: current-status
|
|
||||||
condition-worst: UNSTABLE
|
|
||||||
condition-best: UNSTABLE
|
|
||||||
steps:
|
|
||||||
- shell: 'JENKINS_BUILD_FINISHED=UNSTABLE ./_tmp/upload-to-gcs.sh'
|
|
||||||
- conditional-step:
|
|
||||||
condition-kind: current-status
|
|
||||||
condition-worst: FAILURE
|
|
||||||
condition-best: FAILURE
|
|
||||||
steps:
|
|
||||||
- shell: 'JENKINS_BUILD_FINISHED=FAILURE ./_tmp/upload-to-gcs.sh'
|
|
||||||
- conditional-step:
|
|
||||||
condition-kind: current-status
|
|
||||||
condition-worst: ABORTED
|
|
||||||
condition-best: ABORTED
|
|
||||||
steps:
|
|
||||||
- shell: 'JENKINS_BUILD_FINISHED=ABORTED ./_tmp/upload-to-gcs.sh'
|
|
||||||
script-only-if-succeeded: False
|
|
||||||
script-only-if-failed: False
|
|
||||||
# Use the plugin for the build log, since it isn't available on Jenkins slaves.
|
|
||||||
- google-cloud-storage:
|
|
||||||
credentials-id: kubernetes-jenkins
|
|
||||||
uploads:
|
|
||||||
- build-log:
|
|
||||||
log-name: build-log.txt
|
|
||||||
storage-location: gs://kubernetes-jenkins/logs/$JOB_NAME/$BUILD_NUMBER
|
|
||||||
share-publicly: true
|
|
||||||
upload-for-failed-jobs: true
|
|
||||||
|
|
||||||
# Default log parser rules.
|
|
||||||
- publisher:
|
|
||||||
name: log-parser
|
|
||||||
publishers:
|
|
||||||
- logparser:
|
|
||||||
parse-rules: /jenkins-master-data/log_parser_rules.txt
|
|
||||||
unstable-on-warning: false
|
|
||||||
fail-on-error: false
|
|
||||||
|
|
||||||
# There is a junit JJB tag, but it doesn't handle the flaky-test-handler plugin.
|
|
||||||
- publisher:
|
|
||||||
name: junit-publisher
|
|
||||||
publishers:
|
|
||||||
- raw:
|
|
||||||
xml: |
|
|
||||||
<hudson.tasks.junit.JUnitResultArchiver plugin="junit@1.9">
|
|
||||||
<testResults>_artifacts/junit*.xml</testResults>
|
|
||||||
<keepLongStdio>true</keepLongStdio>
|
|
||||||
<testDataPublishers>
|
|
||||||
<de.esailors.jenkins.teststability.StabilityTestDataPublisher plugin="test-stability@1.0"/>
|
|
||||||
<com.google.jenkins.flakyTestHandler.plugin.JUnitFlakyTestDataPublisher plugin="flaky-test-handler@1.0.1"/>
|
|
||||||
<hudson.plugins.claim.ClaimTestDataPublisher plugin="claim@2.7"/>
|
|
||||||
</testDataPublishers>
|
|
||||||
<healthScaleFactor>100.0</healthScaleFactor>
|
|
||||||
</hudson.tasks.junit.JUnitResultArchiver>
|
|
||||||
|
|
||||||
# Implements Docker Build and Publish Plugin
|
|
||||||
# https://wiki.jenkins-ci.org/display/JENKINS/CloudBees+Docker+Build+and+Publish+plugin
|
|
||||||
# From the docs: 'This plugin provides the ability to build projects with a Dockerfile, and publish the resultant
|
|
||||||
# tagged image (repo) to the docker registry.'
|
|
||||||
#
|
|
||||||
# repoName: docker registry repo name to publish the image
|
|
||||||
# dockerfilePath: workspace relative path to the 'Dockerfile' to build
|
|
||||||
# tag: Tag to apply to the built image
|
|
||||||
# credentialsId: Jenkins 'Username with password' credentials ID (hex string) to authenticate to docker registry.
|
|
||||||
# Found under http:<jenkinsurl>/credentials -> "Advanced"
|
|
||||||
- builder:
|
|
||||||
name: docker-build-publish
|
|
||||||
builders:
|
|
||||||
- raw:
|
|
||||||
xml: |
|
|
||||||
<com.cloudbees.dockerpublish.DockerBuilder plugin="docker-build-publish@1.1">
|
|
||||||
<server plugin="docker-commons@1.2"/>
|
|
||||||
<registry plugin="docker-commons@1.2">
|
|
||||||
<credentialsId>{credentialsId}</credentialsId>
|
|
||||||
</registry>
|
|
||||||
<repoName>{repoName}</repoName>
|
|
||||||
<noCache>true</noCache>
|
|
||||||
<forcePull>true</forcePull>
|
|
||||||
<dockerfilePath>{dockerfilePath}</dockerfilePath>
|
|
||||||
<skipBuild>false</skipBuild>
|
|
||||||
<skipDecorate>false</skipDecorate>
|
|
||||||
<repoTag>{tag}</repoTag>
|
|
||||||
<skipPush>false</skipPush>
|
|
||||||
<createFingerprint>true</createFingerprint>
|
|
||||||
<skipTagLatest>true</skipTagLatest>
|
|
||||||
</com.cloudbees.dockerpublish.DockerBuilder>
|
|
||||||
- shell: |
|
|
||||||
#!/bin/bash
|
|
||||||
set -e
|
|
||||||
set -x
|
|
||||||
docker rmi -f {repoName}:{tag}
|
|
||||||
|
|
||||||
# Default email recipients are set in Jenkins global config
|
|
||||||
- defaults:
|
|
||||||
name: global
|
|
||||||
disable_job: false
|
|
||||||
emails: '$DEFAULT_RECIPIENTS'
|
|
||||||
cron-string: 'H/30 * * * *' # Set a 30m floor to start jobs.
|
|
||||||
sq-cron-string: 'H/5 * * * *' # Lower floor to 5m for blocking jobs.
|
|
||||||
# How long to wait after sending TERM to send KILL (minutes)
|
|
||||||
kill-timeout: 15
|
|
||||||
# Just to be safe, use the Jenkins timeout after a long time.
|
|
||||||
jenkins-timeout: 600
|
|
||||||
# report-rc assumes that $rc is set to the exit status of the runner.
|
|
||||||
report-rc: |
|
|
||||||
if [[ ${{rc}} -eq 124 || ${{rc}} -eq 137 ]]; then
|
|
||||||
echo "Build timed out" >&2
|
|
||||||
elif [[ ${{rc}} -ne 0 ]]; then
|
|
||||||
echo "Build failed" >&2
|
|
||||||
fi
|
|
||||||
echo "Exiting with code: ${{rc}}"
|
|
||||||
exit ${{rc}}
|
|
||||||
branch: 'master'
|
|
||||||
job-env: ''
|
|
||||||
runner: bash <(curl -fsS --retry 3 "https://raw.githubusercontent.com/kubernetes/kubernetes/master/hack/jenkins/dockerized-e2e-runner.sh")
|
|
||||||
legacy-runner: bash <(curl -fsS --retry 3 "https://raw.githubusercontent.com/kubernetes/kubernetes/master/hack/jenkins/e2e-runner.sh")
|
|
||||||
old-runner-1-1: bash <(curl -fsS --retry 3 "https://raw.githubusercontent.com/kubernetes/kubernetes/release-1.1/hack/jenkins/e2e.sh")
|
|
||||||
# XXX This is a hack to run only the tests we care about, without importing all of the skip list vars from the v1.1 e2e.sh.
|
|
||||||
default-skip-list-1-1: Autoscaling\sSuite|resource\susage\stracking|Nodes|Etcd\sFailure|MasterCerts|experimental\sresource\susage\stracking|ServiceLoadBalancer|Shell|Daemon\sset|Deployment|Skipped|Restart\sshould\srestart\sall\snodes|Example|Reboot|ServiceLoadBalancer|DaemonRestart\sController\sManager|Daemon\sset\sshould\srun\sand\sstop\scomplex\sdaemon|Resource\susage\sof\ssystem\scontainers|allows\sscheduling\sof\spods\son\sa\sminion\safter\sit\srejoins\sthe\scluster
|
|
||||||
old-runner-1-0: bash <(curl -fsS --retry 3 "https://raw.githubusercontent.com/kubernetes/kubernetes/release-1.0/hack/jenkins/e2e.sh")
|
|
||||||
# XXX This is a hack to run only the tests we care about, without importing all of the skip list vars from the v1.0 e2e.sh.
|
|
||||||
default-skip-list-1-0: Skipped|Restart\sshould\srestart\sall\snodes|Example|Reboot|ServiceLoadBalancer|DaemonRestart\sController\sManager|Daemon\sset\sshould\srun\sand\sstop\scomplex\sdaemon|Resource\susage\sof\ssystem\scontainers|allows\sscheduling\sof\spods\son\sa\sminion\safter\sit\srejoins\sthe\scluster
|
|
||||||
provider-env: ''
|
|
||||||
gce-provider-env: |
|
|
||||||
export KUBERNETES_PROVIDER="gce"
|
|
||||||
export E2E_MIN_STARTUP_PODS="1"
|
|
||||||
export KUBE_GCE_ZONE="us-central1-f"
|
|
||||||
export FAIL_ON_GCP_RESOURCE_LEAK="true"
|
|
||||||
export CLOUDSDK_CORE_PRINT_UNHANDLED_TRACEBACKS="1"
|
|
||||||
gke-provider-env: |
|
|
||||||
export KUBERNETES_PROVIDER="gke"
|
|
||||||
export ZONE="us-central1-f"
|
|
||||||
# By default, GKE tests run against the GKE test endpoint using CI Cloud SDK.
|
|
||||||
# Release jobs (e.g. prod, staging, and test) override these two variables.
|
|
||||||
export CLOUDSDK_BUCKET="gs://cloud-sdk-testing/ci/staging"
|
|
||||||
export CLOUDSDK_API_ENDPOINT_OVERRIDES_CONTAINER="https://test-container.sandbox.googleapis.com/"
|
|
||||||
export FAIL_ON_GCP_RESOURCE_LEAK="true"
|
|
||||||
aws-provider-env: |
|
|
||||||
export KUBERNETES_PROVIDER="aws"
|
|
||||||
export E2E_MIN_STARTUP_PODS="1"
|
|
||||||
export KUBE_AWS_ZONE="us-west-2a"
|
|
||||||
export MASTER_SIZE="m3.medium"
|
|
||||||
export NODE_SIZE="m3.medium"
|
|
||||||
export NUM_NODES="3"
|
|
||||||
post-env: |
|
|
||||||
# Nothing should want Jenkins $HOME
|
|
||||||
export HOME=${{WORKSPACE}}
|
|
||||||
|
|
||||||
# Assume we're upping, testing, and downing a cluster
|
|
||||||
export E2E_UP="${{E2E_UP:-true}}"
|
|
||||||
export E2E_TEST="${{E2E_TEST:-true}}"
|
|
||||||
export E2E_DOWN="${{E2E_DOWN:-true}}"
|
|
||||||
|
|
||||||
# Skip gcloud update checking
|
|
||||||
export CLOUDSDK_COMPONENT_MANAGER_DISABLE_UPDATE_CHECK=true
|
|
||||||
|
|
||||||
# AWS variables
|
|
||||||
export KUBE_AWS_INSTANCE_PREFIX="${{E2E_NAME:-jenkins-e2e}}"
|
|
||||||
|
|
||||||
# GCE variables
|
|
||||||
export INSTANCE_PREFIX="${{E2E_NAME:-jenkins-e2e}}"
|
|
||||||
export KUBE_GCE_NETWORK="${{E2E_NAME:-jenkins-e2e}}"
|
|
||||||
export KUBE_GCE_INSTANCE_PREFIX="${{E2E_NAME:-jenkins-e2e}}"
|
|
||||||
export GCE_SERVICE_ACCOUNT=$(gcloud auth list 2> /dev/null | grep active | cut -f3 -d' ')
|
|
||||||
|
|
||||||
# GKE variables
|
|
||||||
export CLUSTER_NAME="${{E2E_NAME:-jenkins-e2e}}"
|
|
||||||
export KUBE_GKE_NETWORK="${{E2E_NAME:-jenkins-e2e}}"
|
|
||||||
|
|
||||||
# Get golang into our PATH so we can run e2e.go
|
|
||||||
export PATH="${{PATH}}:/usr/local/go/bin"
|
|
@ -1,64 +0,0 @@
|
|||||||
- job:
|
|
||||||
name: 'jenkins-daily-maintenance'
|
|
||||||
description: 'Run gcloud components update and clean Docker images. Test owner: spxtr.'
|
|
||||||
logrotate:
|
|
||||||
numToKeep: 200
|
|
||||||
builders:
|
|
||||||
- shell: |
|
|
||||||
sudo chown -R jenkins:jenkins /usr/local/share/google
|
|
||||||
gcloud components update
|
|
||||||
gcloud components update alpha
|
|
||||||
gcloud components update beta
|
|
||||||
# Select only exited or dead containers that weren't created today.
|
|
||||||
# A sort of work-around for https://github.com/kubernetes/kubernetes/issues/24661
|
|
||||||
containers_to_remove=($(docker ps -a -f 'status=exited' -f 'status=dead' --format='{{.CreatedAt}}\t{{.ID}}' | grep -v ^$(date +%Y-%m-%d) | cut -f2 || true))
|
|
||||||
# Copied from http://blog.yohanliyanage.com/2015/05/docker-clean-up-after-yourself/
|
|
||||||
docker rm -v "${containers_to_remove[@]:+${containers_to_remove[@]}}" || true
|
|
||||||
docker rmi $(docker images -q -f 'dangling=true') || true
|
|
||||||
docker run -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker:/var/lib/docker --rm martin/docker-cleanup-volumes
|
|
||||||
|
|
||||||
- job:
|
|
||||||
name: 'jenkins-daily-maintenance-all'
|
|
||||||
description: 'Run jenkins-daily-maintenance on all nodes. Test owner: spxtr.'
|
|
||||||
logrotate:
|
|
||||||
numToKeep: 200
|
|
||||||
builders:
|
|
||||||
# Run jenkins-daily-maintenance on all nodes.
|
|
||||||
- raw:
|
|
||||||
xml: |
|
|
||||||
<hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.29">
|
|
||||||
<configs>
|
|
||||||
<hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
|
|
||||||
<configs class="empty-list"/>
|
|
||||||
<configFactories>
|
|
||||||
<org.jvnet.jenkins.plugins.nodelabelparameter.parameterizedtrigger.AllNodesBuildParameterFactory plugin="nodelabelparameter@1.7"/>
|
|
||||||
</configFactories>
|
|
||||||
<projects>jenkins-daily-maintenance</projects>
|
|
||||||
<condition>ALWAYS</condition>
|
|
||||||
<triggerWithNoParameters>false</triggerWithNoParameters>
|
|
||||||
<block>
|
|
||||||
<buildStepFailureThreshold>
|
|
||||||
<name>FAILURE</name>
|
|
||||||
<ordinal>2</ordinal>
|
|
||||||
<color>RED</color>
|
|
||||||
<completeBuild>true</completeBuild>
|
|
||||||
</buildStepFailureThreshold>
|
|
||||||
<unstableThreshold>
|
|
||||||
<name>UNSTABLE</name>
|
|
||||||
<ordinal>1</ordinal>
|
|
||||||
<color>YELLOW</color>
|
|
||||||
<completeBuild>true</completeBuild>
|
|
||||||
</unstableThreshold>
|
|
||||||
<failureThreshold>
|
|
||||||
<name>FAILURE</name>
|
|
||||||
<ordinal>2</ordinal>
|
|
||||||
<color>RED</color>
|
|
||||||
<completeBuild>true</completeBuild>
|
|
||||||
</failureThreshold>
|
|
||||||
</block>
|
|
||||||
<buildAllNodesWithLabel>false</buildAllNodesWithLabel>
|
|
||||||
</hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
|
|
||||||
</configs>
|
|
||||||
</hudson.plugins.parameterizedtrigger.TriggerBuilder>
|
|
||||||
triggers:
|
|
||||||
- timed: '@daily'
|
|
@ -1,17 +0,0 @@
|
|||||||
- job:
|
|
||||||
name: kubernetes-update-jenkins-jobs
|
|
||||||
description: 'Update Jenkins jobs based on configs in https://github.com/kubernetes/kubernetes/tree/master/hack/jenkins/job-configs. Test owner: spxtr.'
|
|
||||||
logrotate:
|
|
||||||
daysToKeep: 7
|
|
||||||
node: master
|
|
||||||
triggers:
|
|
||||||
- timed: 'H/15 * * * *'
|
|
||||||
builders:
|
|
||||||
- shell: |
|
|
||||||
curl -fsS https://raw.githubusercontent.com/kubernetes/kubernetes/master/hack/jenkins/update-jobs.sh > update-jobs.sh
|
|
||||||
chmod +x update-jobs.sh
|
|
||||||
./update-jobs.sh "hack/jenkins/job-configs:hack/jenkins/job-configs/kubernetes-jenkins-pull"
|
|
||||||
publishers:
|
|
||||||
- email-ext:
|
|
||||||
recipients: spxtr@google.com
|
|
||||||
|
|
@ -1,60 +0,0 @@
|
|||||||
- job-template:
|
|
||||||
name: 'kubernetes-{build}'
|
|
||||||
description: 'Grab the latest from GitHub, build. Test owner: Build Cop.'
|
|
||||||
node: 'build'
|
|
||||||
logrotate:
|
|
||||||
numToKeep: 200
|
|
||||||
builders:
|
|
||||||
- shell: 'JENKINS_BUILD_STARTED=true bash <(curl -fsS --retry 3 "https://raw.githubusercontent.com/kubernetes/kubernetes/master/hack/jenkins/upload-to-gcs.sh")'
|
|
||||||
- shell: |
|
|
||||||
timeout -k {kill-timeout}m {timeout}m ./hack/jenkins/build.sh && rc=$? || rc=$?
|
|
||||||
{report-rc}
|
|
||||||
properties:
|
|
||||||
- mail-watcher
|
|
||||||
publishers:
|
|
||||||
- claim-build
|
|
||||||
- gcs-uploader
|
|
||||||
- log-parser
|
|
||||||
- email-ext:
|
|
||||||
recipients: $DEFAULT_RECIPIENTS, cloud-kubernetes-team@google.com
|
|
||||||
presend-script: $DEFAULT_PRESEND_SCRIPT
|
|
||||||
fail: true
|
|
||||||
fixed: true
|
|
||||||
send-to:
|
|
||||||
- culprits
|
|
||||||
- recipients
|
|
||||||
scm:
|
|
||||||
- git:
|
|
||||||
url: https://github.com/kubernetes/kubernetes
|
|
||||||
branches:
|
|
||||||
- '{branch}'
|
|
||||||
browser: githubweb
|
|
||||||
browser-url: https://github.com/kubernetes/kubernetes
|
|
||||||
wipe-workspace: false
|
|
||||||
skip-tag: true
|
|
||||||
triggers:
|
|
||||||
- pollscm:
|
|
||||||
cron: 'H/2 * * * *'
|
|
||||||
wrappers:
|
|
||||||
- timeout:
|
|
||||||
timeout: '{jenkins-timeout}'
|
|
||||||
fail: true
|
|
||||||
- timestamps
|
|
||||||
|
|
||||||
- project:
|
|
||||||
name: kubernetes-builds
|
|
||||||
build:
|
|
||||||
- 'build':
|
|
||||||
branch: 'master'
|
|
||||||
timeout: 50
|
|
||||||
- 'build-1.0':
|
|
||||||
branch: 'release-1.0'
|
|
||||||
timeout: 30
|
|
||||||
- 'build-1.1':
|
|
||||||
branch: 'release-1.1'
|
|
||||||
timeout: 30
|
|
||||||
- 'build-1.2':
|
|
||||||
branch: 'release-1.2'
|
|
||||||
timeout: 30
|
|
||||||
jobs:
|
|
||||||
- 'kubernetes-{build}'
|
|
File diff suppressed because it is too large
Load Diff
@ -1,150 +0,0 @@
|
|||||||
- job-template:
|
|
||||||
name: 'kubernetes-kubemark-{suffix}'
|
|
||||||
description: '{description} Test owner: gmarek'
|
|
||||||
logrotate:
|
|
||||||
daysToKeep: 7
|
|
||||||
node: 'e2e'
|
|
||||||
builders:
|
|
||||||
- shell: |
|
|
||||||
{provider-env}
|
|
||||||
{job-env}
|
|
||||||
{post-env}
|
|
||||||
timeout -k {kill-timeout}m {timeout}m {runner} && rc=$? || rc=$?
|
|
||||||
{report-rc}
|
|
||||||
properties:
|
|
||||||
- mail-watcher
|
|
||||||
publishers:
|
|
||||||
- claim-build
|
|
||||||
- junit-publisher
|
|
||||||
- gcs-uploader
|
|
||||||
- log-parser
|
|
||||||
- email-ext:
|
|
||||||
recipients: "gmarek@google.com"
|
|
||||||
triggers:
|
|
||||||
- reverse:
|
|
||||||
jobs: 'kubernetes-build'
|
|
||||||
result: success
|
|
||||||
- timed: '{cron-string}'
|
|
||||||
wrappers:
|
|
||||||
- ansicolor:
|
|
||||||
colormap: xterm
|
|
||||||
- timeout:
|
|
||||||
timeout: '{jenkins-timeout}'
|
|
||||||
fail: true
|
|
||||||
- timestamps
|
|
||||||
- workspace-cleanup
|
|
||||||
|
|
||||||
- project:
|
|
||||||
name: kubernetes-kubemark
|
|
||||||
provider-env: '{gce-provider-env}'
|
|
||||||
suffix:
|
|
||||||
- '5-gce':
|
|
||||||
description: 'Run minimal Kubemark to make sure it is not broken.'
|
|
||||||
timeout: 60
|
|
||||||
cron-string: '{sq-cron-string}'
|
|
||||||
job-env: |
|
|
||||||
export E2E_NAME="kubemark-5"
|
|
||||||
export PROJECT="k8s-jenkins-kubemark"
|
|
||||||
export E2E_TEST="false"
|
|
||||||
export USE_KUBEMARK="true"
|
|
||||||
export KUBEMARK_TESTS="starting\s30\spods\sper\snode"
|
|
||||||
export KUBEMARK_TEST_ARGS="--gather-resource-usage=true"
|
|
||||||
# Override defaults to be independent from GCE defaults and set kubemark parameters
|
|
||||||
export NUM_NODES="1"
|
|
||||||
export MASTER_SIZE="n1-standard-1"
|
|
||||||
export NODE_SIZE="n1-standard-2"
|
|
||||||
export KUBE_GCE_ZONE="us-central1-f"
|
|
||||||
export KUBEMARK_MASTER_SIZE="n1-standard-1"
|
|
||||||
export KUBEMARK_NUM_NODES="5"
|
|
||||||
# The kubemark scripts build a Docker image
|
|
||||||
export JENKINS_ENABLE_DOCKER_IN_DOCKER="y"
|
|
||||||
- '100-gce':
|
|
||||||
description: 'Run small-ish kubemark cluster to continuously run performance experiments'
|
|
||||||
timeout: 240
|
|
||||||
cron-string: 'H H/6 * * *'
|
|
||||||
job-env: |
|
|
||||||
export E2E_NAME="kubemark-100"
|
|
||||||
export PROJECT="k8s-jenkins-kubemark"
|
|
||||||
export E2E_TEST="false"
|
|
||||||
export USE_KUBEMARK="true"
|
|
||||||
export KUBEMARK_TESTS="\[Feature:Performance\]"
|
|
||||||
export CREATE_SERVICES="true"
|
|
||||||
# Override defaults to be independent from GCE defaults and set kubemark parameters
|
|
||||||
export NUM_NODES="3"
|
|
||||||
export MASTER_SIZE="n1-standard-2"
|
|
||||||
export NODE_SIZE="n1-standard-4"
|
|
||||||
export KUBE_GCE_ZONE="us-central1-f"
|
|
||||||
export KUBEMARK_MASTER_SIZE="n1-standard-4"
|
|
||||||
export KUBEMARK_NUM_NODES="100"
|
|
||||||
# The kubemark scripts build a Docker image
|
|
||||||
export JENKINS_ENABLE_DOCKER_IN_DOCKER="y"
|
|
||||||
- 'high-density-100-gce':
|
|
||||||
description: 'Run Kubemark high-density (100 pods/node) test on a fake 100 node cluster.'
|
|
||||||
timeout: 160
|
|
||||||
cron-string: 'H 20 * * 6'
|
|
||||||
job-env: |
|
|
||||||
export E2E_NAME="kubemark-100pods"
|
|
||||||
export PROJECT="k8s-jenkins-kubemark"
|
|
||||||
export E2E_TEST="false"
|
|
||||||
export USE_KUBEMARK="true"
|
|
||||||
export KUBEMARK_TESTS="\[Feature:HighDensityPerformance\]"
|
|
||||||
export KUBEMARK_TEST_ARGS="--gather-resource-usage=true"
|
|
||||||
# Override defaults to be independent from GCE defaults and set kubemark parameters
|
|
||||||
export NUM_NODES="3"
|
|
||||||
export MASTER_SIZE="n1-standard-2"
|
|
||||||
export NODE_SIZE="n1-standard-4"
|
|
||||||
export KUBE_GCE_ZONE="us-east1-d"
|
|
||||||
export KUBEMARK_MASTER_SIZE="n1-standard-4"
|
|
||||||
export KUBEMARK_NUM_NODES="100"
|
|
||||||
# The kubemark scripts build a Docker image
|
|
||||||
export JENKINS_ENABLE_DOCKER_IN_DOCKER="y"
|
|
||||||
- '500-gce':
|
|
||||||
description: 'Run Kubemark test on a fake 500 node cluster to test for regressions on bigger clusters'
|
|
||||||
timeout: 300
|
|
||||||
cron-string: '@hourly'
|
|
||||||
job-env: |
|
|
||||||
# XXX Not a unique project
|
|
||||||
export E2E_NAME="kubemark-500"
|
|
||||||
export PROJECT="kubernetes-scale"
|
|
||||||
export E2E_TEST="false"
|
|
||||||
export USE_KUBEMARK="true"
|
|
||||||
export KUBEMARK_TESTS="\[Feature:Performance\]"
|
|
||||||
export KUBEMARK_TEST_ARGS="--gather-resource-usage=true"
|
|
||||||
export FAIL_ON_GCP_RESOURCE_LEAK="false"
|
|
||||||
# Override defaults to be independent from GCE defaults and set kubemark parameters
|
|
||||||
export NUM_NODES="6"
|
|
||||||
export MASTER_SIZE="n1-standard-4"
|
|
||||||
export NODE_SIZE="n1-standard-8"
|
|
||||||
export KUBE_GCE_ZONE="us-central1-f"
|
|
||||||
export KUBEMARK_MASTER_SIZE="n1-standard-16"
|
|
||||||
export KUBEMARK_NUM_NODES="500"
|
|
||||||
# The kubemark scripts build a Docker image
|
|
||||||
export JENKINS_ENABLE_DOCKER_IN_DOCKER="y"
|
|
||||||
- 'gce-scale':
|
|
||||||
description: 'Run Density test on Kubemark in very large cluster. Currently only scheduled to run every 12 hours so as not to waste too many resources.'
|
|
||||||
# 12h - load tests take really, really, really long time.
|
|
||||||
timeout: 720
|
|
||||||
cron-string: 'H H/12 * * *'
|
|
||||||
job-env: |
|
|
||||||
# XXX Not a unique project
|
|
||||||
export E2E_NAME="kubemark-1000"
|
|
||||||
export PROJECT="kubernetes-scale"
|
|
||||||
export E2E_TEST="false"
|
|
||||||
export USE_KUBEMARK="true"
|
|
||||||
export KUBEMARK_TESTS="\[Feature:Performance\]"
|
|
||||||
export KUBEMARK_TEST_ARGS="--gather-resource-usage=true"
|
|
||||||
export FAIL_ON_GCP_RESOURCE_LEAK="false"
|
|
||||||
# Override defaults to be independent from GCE defaults and set kubemark parameters
|
|
||||||
# We need 11 so that we won't hit max-pods limit (set to 100). TODO: do it in a nicer way.
|
|
||||||
export NUM_NODES="11"
|
|
||||||
export MASTER_SIZE="n1-standard-4"
|
|
||||||
# Note: can fit about 17 hollow nodes per core so NUM_NODES x
|
|
||||||
# cores_per_node should be set accordingly.
|
|
||||||
export NODE_SIZE="n1-standard-8"
|
|
||||||
export KUBEMARK_MASTER_SIZE="n1-standard-16"
|
|
||||||
export KUBEMARK_NUM_NODES="1000"
|
|
||||||
export KUBE_GCE_ZONE="us-central1-f"
|
|
||||||
# The kubemark scripts build a Docker image
|
|
||||||
export JENKINS_ENABLE_DOCKER_IN_DOCKER="y"
|
|
||||||
jobs:
|
|
||||||
- 'kubernetes-kubemark-{suffix}'
|
|
@ -1,160 +0,0 @@
|
|||||||
- job-template:
|
|
||||||
name: 'kubernetes-soak-weekly-deploy-{suffix}'
|
|
||||||
description: '{deploy-description} Test owner: {test-owner}'
|
|
||||||
logrotate:
|
|
||||||
daysToKeep: 14
|
|
||||||
node: 'master'
|
|
||||||
builders:
|
|
||||||
- shell: |
|
|
||||||
{provider-env}
|
|
||||||
{soak-deploy}
|
|
||||||
{job-env}
|
|
||||||
{post-env}
|
|
||||||
timeout -k {kill-timeout}m 90m {legacy-runner} && rc=$? || rc=$?
|
|
||||||
{report-rc}
|
|
||||||
properties:
|
|
||||||
- build-blocker:
|
|
||||||
use-build-blocker: true
|
|
||||||
blocking-jobs:
|
|
||||||
- 'kubernetes-soak-continuous-e2e-{suffix}'
|
|
||||||
publishers:
|
|
||||||
- email-ext
|
|
||||||
- gcs-uploader
|
|
||||||
triggers:
|
|
||||||
- timed: 'H 0 * * 2'
|
|
||||||
wrappers:
|
|
||||||
- ansicolor:
|
|
||||||
colormap: xterm
|
|
||||||
- timeout:
|
|
||||||
timeout: '{jenkins-timeout}'
|
|
||||||
fail: true
|
|
||||||
- timestamps
|
|
||||||
- workspace-cleanup
|
|
||||||
|
|
||||||
- job-template:
|
|
||||||
name: 'kubernetes-soak-continuous-e2e-{suffix}'
|
|
||||||
description: '{e2e-description} Test Owner: {test-owner}'
|
|
||||||
workspace: '/var/lib/jenkins/jobs/kubernetes-soak-weekly-deploy-{suffix}/workspace'
|
|
||||||
logrotate:
|
|
||||||
daysToKeep: 7
|
|
||||||
node: 'master'
|
|
||||||
builders:
|
|
||||||
- shell: |
|
|
||||||
{provider-env}
|
|
||||||
{soak-continuous}
|
|
||||||
{job-env}
|
|
||||||
{post-env}
|
|
||||||
timeout -k {kill-timeout}m 360m {legacy-runner} && rc=$? || rc=$?
|
|
||||||
{report-rc}
|
|
||||||
properties:
|
|
||||||
- build-blocker:
|
|
||||||
use-build-blocker: true
|
|
||||||
blocking-jobs:
|
|
||||||
- 'kubernetes-soak-weekly-deploy-{suffix}'
|
|
||||||
queue-scanning: ALL
|
|
||||||
publishers:
|
|
||||||
- claim-build
|
|
||||||
- email-ext
|
|
||||||
- gcs-uploader
|
|
||||||
- junit-publisher
|
|
||||||
- log-parser
|
|
||||||
triggers:
|
|
||||||
- timed: '{cron-string}'
|
|
||||||
wrappers:
|
|
||||||
- ansicolor:
|
|
||||||
colormap: xterm
|
|
||||||
- timeout:
|
|
||||||
timeout: '{jenkins-timeout}'
|
|
||||||
fail: true
|
|
||||||
- timestamps
|
|
||||||
|
|
||||||
- project:
|
|
||||||
name: soak
|
|
||||||
test-owner: 'Build Cop'
|
|
||||||
soak-deploy: |
|
|
||||||
export FAIL_ON_GCP_RESOURCE_LEAK="false"
|
|
||||||
export E2E_TEST="false"
|
|
||||||
export E2E_DOWN="false"
|
|
||||||
soak-continuous: |
|
|
||||||
export JENKINS_USE_EXISTING_BINARIES="y"
|
|
||||||
export FAIL_ON_GCP_RESOURCE_LEAK="false"
|
|
||||||
export E2E_UP="false"
|
|
||||||
export E2E_DOWN="false"
|
|
||||||
# Clear out any orphaned namespaces in case previous run was interrupted.
|
|
||||||
export E2E_CLEAN_START="true"
|
|
||||||
# TODO: Remove when we figure out #22166 and other docker potential slowness.
|
|
||||||
export DOCKER_TEST_LOG_LEVEL="--log-level=warn"
|
|
||||||
# We should be testing the reliability of a long-running cluster. The
|
|
||||||
# [Disruptive] tests kill/restart components or nodes in the cluster,
|
|
||||||
# defeating the purpose of a soak cluster. (#15722)
|
|
||||||
export GINKGO_TEST_ARGS="--ginkgo.skip=\[Disruptive\]|\[Flaky\]|\[Feature:.+\]"
|
|
||||||
suffix:
|
|
||||||
- 'gce':
|
|
||||||
deploy-description: |
|
|
||||||
Deploy Kubernetes to soak cluster using the latest successful
|
|
||||||
Kubernetes build every week.<br>
|
|
||||||
If a kubernetes-soak-continuous-e2e-gce build is running,
|
|
||||||
this deployment build will be blocked and remain in the queue
|
|
||||||
until the test run is complete.<br>
|
|
||||||
e2e-description: |
|
|
||||||
Assumes Kubernetes soak cluster is already deployed.<br>
|
|
||||||
If a kubernetes-soak-weekly-deploy-gce build is enqueued,
|
|
||||||
builds will be blocked and remain in the queue until the
|
|
||||||
deployment is complete.<br>
|
|
||||||
branch: 'master'
|
|
||||||
provider-env: '{gce-provider-env}'
|
|
||||||
job-env: |
|
|
||||||
export PROJECT="k8s-jkns-gce-soak"
|
|
||||||
- 'gce-2':
|
|
||||||
deploy-description: Clone of kubernetes-soak-weekly-deploy-gce.
|
|
||||||
e2e-description: Clone of kubernetes-soak-continuous-e2e-gce.
|
|
||||||
branch: 'master'
|
|
||||||
provider-env: '{gce-provider-env}'
|
|
||||||
job-env: |
|
|
||||||
export HAIRPIN_MODE="hairpin-veth"
|
|
||||||
export PROJECT="k8s-jkns-gce-soak-2"
|
|
||||||
- 'gce-1.2':
|
|
||||||
deploy-description: |
|
|
||||||
Deploy Kubernetes to soak cluster using the latest successful
|
|
||||||
release-1.2 Kubernetes build every week.<br>
|
|
||||||
If a kubernetes-soak-continuous-e2e-gce-1.2 build is running,
|
|
||||||
this deployment build will be blocked and remain in the queue
|
|
||||||
until the test run is complete.<br>
|
|
||||||
e2e-description: |
|
|
||||||
Assumes Kubernetes soak cluster is already deployed.<br>
|
|
||||||
If a kubernetes-soak-weekly-deploy-gce-1.2 build is enqueued,
|
|
||||||
builds will be blocked and remain in the queue until the
|
|
||||||
deployment is complete.<br>
|
|
||||||
provider-env: '{gce-provider-env}'
|
|
||||||
job-env: |
|
|
||||||
export PROJECT="k8s-jkns-gce-soak-1-2"
|
|
||||||
export JENKINS_PUBLISHED_VERSION="ci/latest-1.2"
|
|
||||||
- 'gke':
|
|
||||||
deploy-description: |
|
|
||||||
Deploy Kubernetes to a GKE soak cluster using the staging GKE
|
|
||||||
Kubernetes build every week.<br>
|
|
||||||
If a kubernetes-soak-continuous-e2e-gke build is running, this
|
|
||||||
deployment build will be blocked and remain in the queue until
|
|
||||||
the test run is complete.<br>
|
|
||||||
Current Settings:<br>
|
|
||||||
- provider: GKE<br>
|
|
||||||
- apiary: staging<br>
|
|
||||||
- borg job: staging<br>
|
|
||||||
- client (kubectl): release/stable.txt<br>
|
|
||||||
- cluster (k8s): release/stable.txt<br>
|
|
||||||
- tests: release/stable.txt<br>
|
|
||||||
e2e-description: |
|
|
||||||
Assumes Kubernetes GKE soak cluster is already deployed.<br>
|
|
||||||
If a kubernetes-soak-weekly-deploy-gke build is enqueued,
|
|
||||||
builds will be blocked and remain in the queue until the
|
|
||||||
deployment is complete.<br>
|
|
||||||
branch: 'master'
|
|
||||||
provider-env: '{gke-provider-env}'
|
|
||||||
job-env: |
|
|
||||||
export PROJECT="k8s-jkns-gke-soak"
|
|
||||||
# Need at least n1-standard-2 nodes to run kubelet_perf tests
|
|
||||||
export MACHINE_TYPE="n1-standard-2"
|
|
||||||
export E2E_OPT="--check_version_skew=false"
|
|
||||||
jobs:
|
|
||||||
- 'kubernetes-soak-weekly-deploy-{suffix}'
|
|
||||||
- 'kubernetes-soak-continuous-e2e-{suffix}'
|
|
@ -1,89 +0,0 @@
|
|||||||
- job-template:
|
|
||||||
name: 'kubernetes-test-{suffix}'
|
|
||||||
description: |
|
|
||||||
Grab the latest from GitHub, then run unit and integration tests.<br>
|
|
||||||
Test Owner: Build Cop
|
|
||||||
logrotate:
|
|
||||||
numToKeep: 200
|
|
||||||
node: unittest
|
|
||||||
builders:
|
|
||||||
- shell: 'JENKINS_BUILD_STARTED=true bash <(curl -fsS --retry 3 "https://raw.githubusercontent.com/kubernetes/kubernetes/master/hack/jenkins/upload-to-gcs.sh")'
|
|
||||||
- shell: |
|
|
||||||
export KUBE_FORCE_VERIFY_CHECKS='y'
|
|
||||||
export KUBE_VERIFY_GIT_BRANCH='{branch}'
|
|
||||||
timeout -k {kill-timeout}m {timeout}m ./hack/jenkins/gotest-dockerized.sh && rc=$? || rc=$?
|
|
||||||
{report-rc}
|
|
||||||
publishers:
|
|
||||||
- claim-build
|
|
||||||
- gcs-uploader
|
|
||||||
- log-parser
|
|
||||||
- email-ext
|
|
||||||
- xunit:
|
|
||||||
thresholds:
|
|
||||||
- failed:
|
|
||||||
unstable: 0
|
|
||||||
unstablenew: 0
|
|
||||||
failure:
|
|
||||||
failurenew:
|
|
||||||
- skipped:
|
|
||||||
unstable:
|
|
||||||
unstablenew:
|
|
||||||
failure:
|
|
||||||
failurenew:
|
|
||||||
types:
|
|
||||||
- junit:
|
|
||||||
pattern: '_artifacts/**.xml'
|
|
||||||
deleteoutput: false
|
|
||||||
scm:
|
|
||||||
- git:
|
|
||||||
url: https://github.com/kubernetes/kubernetes
|
|
||||||
branches:
|
|
||||||
- '{branch}'
|
|
||||||
browser: githubweb
|
|
||||||
browser-url: https://github.com/kubernetes/kubernetes
|
|
||||||
wipe-workspace: false
|
|
||||||
skip-tag: true
|
|
||||||
triggers:
|
|
||||||
- pollscm:
|
|
||||||
cron: 'H/2 * * * *'
|
|
||||||
- timed: '{cron-string}'
|
|
||||||
wrappers:
|
|
||||||
- ansicolor:
|
|
||||||
colormap: xterm
|
|
||||||
- timeout:
|
|
||||||
timeout: '{jenkins-timeout}'
|
|
||||||
fail: true
|
|
||||||
- timestamps
|
|
||||||
- raw:
|
|
||||||
xml: |
|
|
||||||
<hudson.plugins.ws__cleanup.PreBuildCleanup plugin="ws-cleanup@0.28">
|
|
||||||
<patterns>
|
|
||||||
<hudson.plugins.ws__cleanup.Pattern>
|
|
||||||
<pattern>*</pattern>
|
|
||||||
<type>INCLUDE</type>
|
|
||||||
</hudson.plugins.ws__cleanup.Pattern>
|
|
||||||
</patterns>
|
|
||||||
<deleteDirs>true</deleteDirs>
|
|
||||||
<cleanupParameter/>
|
|
||||||
<externalDelete>sudo rm -rf %s</externalDelete>
|
|
||||||
</hudson.plugins.ws__cleanup.PreBuildCleanup>
|
|
||||||
|
|
||||||
- project:
|
|
||||||
name: kubernetes-test-go
|
|
||||||
suffix:
|
|
||||||
- 'go':
|
|
||||||
branch: 'master'
|
|
||||||
cron-string: '{sq-cron-string}'
|
|
||||||
timeout: 100
|
|
||||||
- 'go-release-1.2':
|
|
||||||
branch: 'release-1.2'
|
|
||||||
# Every 3 hours
|
|
||||||
cron-string: 'H H/3 * * *'
|
|
||||||
timeout: 100
|
|
||||||
- 'go-release-1.1':
|
|
||||||
branch: 'release-1.1'
|
|
||||||
# Every 6 hours
|
|
||||||
cron-string: 'H H/12 * * *'
|
|
||||||
timeout: 60
|
|
||||||
jobs:
|
|
||||||
- 'kubernetes-test-{suffix}'
|
|
@ -1,21 +0,0 @@
|
|||||||
- job:
|
|
||||||
name: kubernetes-test-summary
|
|
||||||
description: 'Create a daily test summary and upload to GCS. Test owner: spxtr.'
|
|
||||||
triggers:
|
|
||||||
# Run every night at midnight at a random minute.
|
|
||||||
- timed: 'H 0 * * *'
|
|
||||||
scm:
|
|
||||||
- git:
|
|
||||||
url: https://www.github.com/kubernetes/kubernetes
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
browser: githubweb
|
|
||||||
browser-url: https://github.com/kubernetes/kubernetes
|
|
||||||
skip-tag: true
|
|
||||||
builders:
|
|
||||||
- shell: |
|
|
||||||
cd hack/jenkins/test-history
|
|
||||||
./gen_history http://jenkins-master:8080/
|
|
||||||
publishers:
|
|
||||||
- email-ext:
|
|
||||||
recipients: spxtr@google.com
|
|
@ -1,16 +0,0 @@
|
|||||||
- job:
|
|
||||||
name: kubernetes-update-jenkins-jobs
|
|
||||||
description: 'Update Jenkins jobs based on configs in https://github.com/kubernetes/kubernetes/tree/master/hack/jenkins/job-configs. Test owner: spxtr.'
|
|
||||||
logrotate:
|
|
||||||
daysToKeep: 7
|
|
||||||
triggers:
|
|
||||||
- timed: 'H/15 * * * *'
|
|
||||||
builders:
|
|
||||||
- shell: |
|
|
||||||
curl -fsS https://raw.githubusercontent.com/kubernetes/kubernetes/master/hack/jenkins/update-jobs.sh > update-jobs.sh
|
|
||||||
chmod +x update-jobs.sh
|
|
||||||
./update-jobs.sh "hack/jenkins/job-configs:hack/jenkins/job-configs/kubernetes-jenkins"
|
|
||||||
publishers:
|
|
||||||
- email-ext:
|
|
||||||
recipients: spxtr@google.com
|
|
||||||
|
|
@ -1,283 +0,0 @@
|
|||||||
# These configs rely on the fact that previous branches will overwrite any
|
|
||||||
# environment variables that they need. Currently, 1.0 and 1.1 jobs use the
|
|
||||||
# old e2e.sh script on their branches. To turn up new upgrade jobs from these
|
|
||||||
# releases, you will need to fiddle with e2e.sh on their branches. For all
|
|
||||||
# branches after those, you will simply need to add a new entry in one of the
|
|
||||||
# projects below.
|
|
||||||
|
|
||||||
- job-template:
|
|
||||||
name: 'kubernetes-upgrade-{provider}-{version-old}-{version-new}'
|
|
||||||
disabled: false
|
|
||||||
description: 'Upgrade multijob from {version-old} to {version-new}. Test owner: ihmccreery.'
|
|
||||||
project-type: multijob
|
|
||||||
triggers:
|
|
||||||
- timed: '@hourly'
|
|
||||||
node: 'master'
|
|
||||||
builders:
|
|
||||||
# TODO(ihmccreery) In theory, we could get ourselves into trouble by
|
|
||||||
# editing these things in the middle of a run. Jenkins Job Builder
|
|
||||||
# would delete jobs, and they'd leave resources lying around. We
|
|
||||||
# should either (1) make this not a multi-job, or (2) add a script here
|
|
||||||
# to update these jobs only at the beginning of a multijob run.
|
|
||||||
#
|
|
||||||
# This pain would also pretty much disappear with #18119, too.
|
|
||||||
- multijob:
|
|
||||||
name: Deploy
|
|
||||||
condition: SUCCESSFUL
|
|
||||||
projects:
|
|
||||||
- name: 'kubernetes-upgrade-{provider}-{version-old}-{version-new}-step1-deploy'
|
|
||||||
- multijob:
|
|
||||||
name: Kubectl Test New
|
|
||||||
condition: COMPLETED
|
|
||||||
projects:
|
|
||||||
- name: 'kubernetes-upgrade-{provider}-{version-old}-{version-new}-step2-kubectl-e2e-new'
|
|
||||||
- multijob:
|
|
||||||
name: Upgrade Master
|
|
||||||
condition: COMPLETED
|
|
||||||
projects:
|
|
||||||
- name: 'kubernetes-upgrade-{provider}-{version-old}-{version-new}-step3-upgrade-master'
|
|
||||||
- multijob:
|
|
||||||
name: Test Old
|
|
||||||
condition: COMPLETED
|
|
||||||
projects:
|
|
||||||
- name: 'kubernetes-upgrade-{provider}-{version-old}-{version-new}-step4-e2e-old'
|
|
||||||
- multijob:
|
|
||||||
name: Upgrade Cluster
|
|
||||||
condition: COMPLETED
|
|
||||||
projects:
|
|
||||||
- name: 'kubernetes-upgrade-{provider}-{version-old}-{version-new}-step5-upgrade-cluster'
|
|
||||||
- multijob:
|
|
||||||
name: Test Old
|
|
||||||
condition: COMPLETED
|
|
||||||
projects:
|
|
||||||
- name: 'kubernetes-upgrade-{provider}-{version-old}-{version-new}-step6-e2e-old'
|
|
||||||
- multijob:
|
|
||||||
name: Test New
|
|
||||||
condition: COMPLETED
|
|
||||||
projects:
|
|
||||||
- name: 'kubernetes-upgrade-{provider}-{version-old}-{version-new}-step7-e2e-new'
|
|
||||||
|
|
||||||
- job-template:
|
|
||||||
name: 'kubernetes-upgrade-{provider}-{version-old}-{version-new}-step1-deploy'
|
|
||||||
description: 'Deploy a cluster at {version-old} to be tested and upgraded to {version-new}. Test owner: ihmccreery.'
|
|
||||||
logrotate:
|
|
||||||
daysToKeep: 7
|
|
||||||
node: 'master'
|
|
||||||
builders:
|
|
||||||
- shell: |
|
|
||||||
# per-provider variables
|
|
||||||
{provider-env}
|
|
||||||
# per-upgrade-flow variables, such as project name
|
|
||||||
{project-env}
|
|
||||||
# per-step variables, such as whether to run tests
|
|
||||||
{job-env}
|
|
||||||
{post-env}
|
|
||||||
timeout -k {kill-timeout}m 60m {runner} && rc=$? || rc=$?
|
|
||||||
{report-rc}
|
|
||||||
properties:
|
|
||||||
- mail-watcher
|
|
||||||
publishers:
|
|
||||||
- claim-build
|
|
||||||
# No junit-publisher, since we're not running any tests
|
|
||||||
- gcs-uploader
|
|
||||||
- log-parser
|
|
||||||
- email-ext:
|
|
||||||
recipients: 'ihmccreery@google.com'
|
|
||||||
wrappers:
|
|
||||||
- ansicolor:
|
|
||||||
colormap: xterm
|
|
||||||
- timeout:
|
|
||||||
timeout: '{jenkins-timeout}'
|
|
||||||
fail: true
|
|
||||||
- timestamps
|
|
||||||
- workspace-cleanup
|
|
||||||
|
|
||||||
- job-template:
|
|
||||||
name: 'kubernetes-upgrade-{provider}-{version-old}-{version-new}-{step}'
|
|
||||||
description: '{description} Test owner: ihmccreery.'
|
|
||||||
# Use the same workspace as step1
|
|
||||||
workspace: /var/lib/jenkins/jobs/kubernetes-upgrade-{provider}-{version-old}-{version-new}-step1-deploy/workspace/
|
|
||||||
logrotate:
|
|
||||||
daysToKeep: 7
|
|
||||||
node: 'master'
|
|
||||||
builders:
|
|
||||||
- shell: |
|
|
||||||
# per-provider variables
|
|
||||||
{provider-env}
|
|
||||||
# per-upgrade-flow variables, such as project name
|
|
||||||
{project-env}
|
|
||||||
# per-step variables, such as whether to run tests
|
|
||||||
{job-env}
|
|
||||||
{post-env}
|
|
||||||
timeout -k {kill-timeout}m 300m {runner} && rc=$? || rc=$?
|
|
||||||
{report-rc}
|
|
||||||
properties:
|
|
||||||
- mail-watcher
|
|
||||||
publishers:
|
|
||||||
- claim-build
|
|
||||||
- junit-publisher
|
|
||||||
- gcs-uploader
|
|
||||||
- log-parser
|
|
||||||
- email-ext:
|
|
||||||
recipients: 'ihmccreery@google.com'
|
|
||||||
wrappers:
|
|
||||||
- ansicolor:
|
|
||||||
colormap: xterm
|
|
||||||
- timeout:
|
|
||||||
timeout: '{jenkins-timeout}'
|
|
||||||
fail: true
|
|
||||||
- timestamps
|
|
||||||
# Don't clean the workspace; we want to keep configs intact across steps in the multijob
|
|
||||||
|
|
||||||
- job-group:
|
|
||||||
name: '{provider}-{version-old}-{version-new}-upgrades'
|
|
||||||
jobs:
|
|
||||||
- 'kubernetes-upgrade-{provider}-{version-old}-{version-new}'
|
|
||||||
- 'kubernetes-upgrade-{provider}-{version-old}-{version-new}-step1-deploy':
|
|
||||||
runner: '{runner-old}'
|
|
||||||
job-env: |
|
|
||||||
export E2E_TEST="false"
|
|
||||||
export E2E_DOWN="false"
|
|
||||||
export JENKINS_PUBLISHED_VERSION="ci/latest-{version-old}"
|
|
||||||
- 'kubernetes-upgrade-{provider}-{version-old}-{version-new}-{step}':
|
|
||||||
step: 'step2-kubectl-e2e-new'
|
|
||||||
runner: '{runner-new}'
|
|
||||||
description: 'Run {version-new} kubectl tests against the cluster running {version-old}.'
|
|
||||||
job-env: |
|
|
||||||
export E2E_OPT="--check_version_skew=false"
|
|
||||||
export E2E_UP="false"
|
|
||||||
export E2E_DOWN="false"
|
|
||||||
export JENKINS_PUBLISHED_VERSION="ci/latest-{version-new}"
|
|
||||||
export GINKGO_TEST_ARGS="--ginkgo.focus=Kubectl"
|
|
||||||
- 'kubernetes-upgrade-{provider}-{version-old}-{version-new}-{step}':
|
|
||||||
step: 'step3-upgrade-master'
|
|
||||||
runner: '{runner-new}'
|
|
||||||
description: 'Upgrade the master from {version-old} to {version-new}.'
|
|
||||||
job-env: |
|
|
||||||
export E2E_OPT="--check_version_skew=false"
|
|
||||||
export E2E_UP="false"
|
|
||||||
export E2E_DOWN="false"
|
|
||||||
export JENKINS_PUBLISHED_VERSION="ci/latest-{version-new}"
|
|
||||||
export GINKGO_TEST_ARGS="--ginkgo.focus=\[Feature:MasterUpgrade\] --upgrade-target=ci/latest-{version-new}"
|
|
||||||
- 'kubernetes-upgrade-{provider}-{version-old}-{version-new}-{step}':
|
|
||||||
step: 'step4-e2e-old'
|
|
||||||
runner: '{runner-old}'
|
|
||||||
description: 'Run {version-old} e2e tests against the cluster with master at {version-new} and nodes still at {version-old}.'
|
|
||||||
job-env: |
|
|
||||||
export E2E_OPT="--check_version_skew=false"
|
|
||||||
export E2E_UP="false"
|
|
||||||
export E2E_DOWN="false"
|
|
||||||
export JENKINS_PUBLISHED_VERSION="ci/latest-{version-old}"
|
|
||||||
- 'kubernetes-upgrade-{provider}-{version-old}-{version-new}-{step}':
|
|
||||||
step: 'step5-upgrade-cluster'
|
|
||||||
runner: '{runner-new}'
|
|
||||||
description: 'Upgrade the nodes from {version-old} to {version-new}.'
|
|
||||||
job-env: |
|
|
||||||
export E2E_OPT="--check_version_skew=false"
|
|
||||||
export E2E_UP="false"
|
|
||||||
export E2E_DOWN="false"
|
|
||||||
export JENKINS_PUBLISHED_VERSION="ci/latest-{version-new}"
|
|
||||||
export GINKGO_TEST_ARGS="--ginkgo.focus=\[Feature:NodeUpgrade\] --upgrade-target=ci/latest-{version-new}"
|
|
||||||
- 'kubernetes-upgrade-{provider}-{version-old}-{version-new}-{step}':
|
|
||||||
step: 'step6-e2e-old'
|
|
||||||
runner: '{runner-old}'
|
|
||||||
description: 'Run {version-old} e2e tests against the cluster with master and nodes at {version-new}.'
|
|
||||||
job-env: |
|
|
||||||
export E2E_OPT="--check_version_skew=false"
|
|
||||||
export E2E_UP="false"
|
|
||||||
export E2E_DOWN="false"
|
|
||||||
export JENKINS_PUBLISHED_VERSION="ci/latest-{version-old}"
|
|
||||||
- 'kubernetes-upgrade-{provider}-{version-old}-{version-new}-{step}':
|
|
||||||
step: 'step7-e2e-new'
|
|
||||||
runner: '{runner-new}'
|
|
||||||
description: 'Run {version-new} e2e tests against the cluster with master and nodes at {version-new}.'
|
|
||||||
job-env: |
|
|
||||||
# TODO(15011): these really shouldn't be (very) version skewed, but
|
|
||||||
# because we have to get ci/latest again, it could get slightly out of
|
|
||||||
# whack.
|
|
||||||
export E2E_OPT="--check_version_skew=false"
|
|
||||||
export E2E_UP="false"
|
|
||||||
export JENKINS_PUBLISHED_VERSION="ci/latest-{version-new}"
|
|
||||||
|
|
||||||
- project:
|
|
||||||
name: 'upgrade-gke'
|
|
||||||
provider: 'gke'
|
|
||||||
provider-env: |
|
|
||||||
{gke-provider-env}
|
|
||||||
export JENKINS_TOLERATE_DIRTY_WORKSPACE="y"
|
|
||||||
export FAIL_ON_GCP_RESOURCE_LEAK="false"
|
|
||||||
jobs:
|
|
||||||
- '{provider}-{version-old}-{version-new}-upgrades':
|
|
||||||
version-old: '1.0'
|
|
||||||
version-new: '1.2'
|
|
||||||
runner-old: curl -fsS --retry 3 "https://raw.githubusercontent.com/kubernetes/kubernetes/release-1.0/hack/jenkins/e2e.sh" | bash -
|
|
||||||
runner-new: curl -fsS --retry 3 "https://raw.githubusercontent.com/kubernetes/kubernetes/master/hack/jenkins/e2e-runner.sh" | bash -
|
|
||||||
project-env: |
|
|
||||||
export E2E_NAME="upgrade-gke-1-0-1-2"
|
|
||||||
export PROJECT="kubernetes-jenkins-gke-upgrade"
|
|
||||||
- '{provider}-{version-old}-{version-new}-upgrades':
|
|
||||||
version-old: '1.1'
|
|
||||||
version-new: '1.2'
|
|
||||||
runner-old: curl -fsS --retry 3 "https://raw.githubusercontent.com/kubernetes/kubernetes/release-1.1/hack/jenkins/e2e.sh" | bash -
|
|
||||||
runner-new: curl -fsS --retry 3 "https://raw.githubusercontent.com/kubernetes/kubernetes/master/hack/jenkins/e2e-runner.sh" | bash -
|
|
||||||
project-env: |
|
|
||||||
export E2E_NAME="upgrade-gke-1-1-1-2"
|
|
||||||
export PROJECT="kubernetes-jenkins-gke-upgrade"
|
|
||||||
- '{provider}-{version-old}-{version-new}-upgrades':
|
|
||||||
version-old: '1.1'
|
|
||||||
version-new: '1.3'
|
|
||||||
runner-old: curl -fsS --retry 3 "https://raw.githubusercontent.com/kubernetes/kubernetes/release-1.1/hack/jenkins/e2e.sh" | bash -
|
|
||||||
runner-new: curl -fsS --retry 3 "https://raw.githubusercontent.com/kubernetes/kubernetes/master/hack/jenkins/e2e-runner.sh" | bash -
|
|
||||||
project-env: |
|
|
||||||
export E2E_NAME="upgrade-gke-1-1-1-3"
|
|
||||||
export PROJECT="kubernetes-jenkins-gke-upgrade"
|
|
||||||
- '{provider}-{version-old}-{version-new}-upgrades':
|
|
||||||
version-old: '1.2'
|
|
||||||
version-new: '1.3'
|
|
||||||
runner-old: curl -fsS --retry 3 "https://raw.githubusercontent.com/kubernetes/kubernetes/master/hack/jenkins/e2e-runner.sh" | bash -
|
|
||||||
runner-new: curl -fsS --retry 3 "https://raw.githubusercontent.com/kubernetes/kubernetes/master/hack/jenkins/e2e-runner.sh" | bash -
|
|
||||||
project-env: |
|
|
||||||
export E2E_NAME="upgrade-gke-1-2-1-3"
|
|
||||||
export PROJECT="kubernetes-jenkins-gke-upgrade"
|
|
||||||
|
|
||||||
- project:
|
|
||||||
name: 'upgrade-gce'
|
|
||||||
provider: 'gce'
|
|
||||||
provider-env: |
|
|
||||||
{gce-provider-env}
|
|
||||||
export NUM_NODES=5
|
|
||||||
export JENKINS_TOLERATE_DIRTY_WORKSPACE="y"
|
|
||||||
export FAIL_ON_GCP_RESOURCE_LEAK="false"
|
|
||||||
jobs:
|
|
||||||
- '{provider}-{version-old}-{version-new}-upgrades':
|
|
||||||
version-old: '1.0'
|
|
||||||
version-new: '1.2'
|
|
||||||
runner-old: curl -fsS --retry 3 "https://raw.githubusercontent.com/kubernetes/kubernetes/release-1.0/hack/jenkins/e2e.sh" | bash -
|
|
||||||
runner-new: curl -fsS --retry 3 "https://raw.githubusercontent.com/kubernetes/kubernetes/master/hack/jenkins/e2e-runner.sh" | bash -
|
|
||||||
project-env: |
|
|
||||||
export E2E_NAME="upgrade-gce-1-0-1-2"
|
|
||||||
export PROJECT="kubernetes-jenkins-gce-upgrade"
|
|
||||||
- '{provider}-{version-old}-{version-new}-upgrades':
|
|
||||||
version-old: '1.1'
|
|
||||||
version-new: '1.2'
|
|
||||||
runner-old: curl -fsS --retry 3 "https://raw.githubusercontent.com/kubernetes/kubernetes/release-1.1/hack/jenkins/e2e.sh" | bash -
|
|
||||||
runner-new: curl -fsS --retry 3 "https://raw.githubusercontent.com/kubernetes/kubernetes/master/hack/jenkins/e2e-runner.sh" | bash -
|
|
||||||
project-env: |
|
|
||||||
export E2E_NAME="upgrade-gce-1-1-1-2"
|
|
||||||
export PROJECT="kubernetes-jenkins-gce-upgrade"
|
|
||||||
- '{provider}-{version-old}-{version-new}-upgrades':
|
|
||||||
version-old: '1.1'
|
|
||||||
version-new: '1.3'
|
|
||||||
runner-old: curl -fsS --retry 3 "https://raw.githubusercontent.com/kubernetes/kubernetes/release-1.1/hack/jenkins/e2e.sh" | bash -
|
|
||||||
runner-new: curl -fsS --retry 3 "https://raw.githubusercontent.com/kubernetes/kubernetes/master/hack/jenkins/e2e-runner.sh" | bash -
|
|
||||||
project-env: |
|
|
||||||
export E2E_NAME="upgrade-gce-1-1-1-3"
|
|
||||||
export PROJECT="kubernetes-jenkins-gce-upgrade"
|
|
||||||
- '{provider}-{version-old}-{version-new}-upgrades':
|
|
||||||
version-old: '1.2'
|
|
||||||
version-new: '1.3'
|
|
||||||
runner-old: curl -fsS --retry 3 "https://raw.githubusercontent.com/kubernetes/kubernetes/master/hack/jenkins/e2e-runner.sh" | bash -
|
|
||||||
runner-new: curl -fsS --retry 3 "https://raw.githubusercontent.com/kubernetes/kubernetes/master/hack/jenkins/e2e-runner.sh" | bash -
|
|
||||||
project-env: |
|
|
||||||
export E2E_NAME="upgrade-gce-1-2-1-3"
|
|
||||||
export PROJECT="kubernetes-jenkins-gce-upgrade"
|
|
@ -1,160 +0,0 @@
|
|||||||
# Job template to checkout source from github to $WORKSPACE/go/src/{gitbasedir} and build + publish a docker image.
|
|
||||||
# - Tags the docker image with 'canary'.
|
|
||||||
# - Job is executed daily and when changes are found polling github (every 5m).
|
|
||||||
# - Console output is published to google cloud storage.
|
|
||||||
#
|
|
||||||
# gitproject: name of the project - for display purposes only
|
|
||||||
# owner: owner to be notified for job failures. test results are published to owner email
|
|
||||||
# repoName: github repo to checkout e.g. kubernetes/kubernetes or google/cadvisor. Must match the docker image repo name where the image will be published.
|
|
||||||
# gitbasedir: directory under $WORKSPACE/go/src to checkout source repo to - e.g. k8s.io/kubernetes or github.com/google/cadvisor
|
|
||||||
# dockerfilePath: workspace relative path to the 'Dockerfile' to build
|
|
||||||
- job-template:
|
|
||||||
name: '{gitproject}-dockercanarybuild-ci'
|
|
||||||
disabled: '{obj:disable_job}'
|
|
||||||
description: 'Build and push {gitproject} docker image.<br>Test Owner: {owner}.'
|
|
||||||
node: 'node'
|
|
||||||
logrotate:
|
|
||||||
numToKeep: 200
|
|
||||||
builders:
|
|
||||||
- docker-build-publish:
|
|
||||||
repoName: '{repoName}'
|
|
||||||
dockerfilePath: 'go/src/{gitbasedir}/{dockerfilePath}'
|
|
||||||
tag: 'canary'
|
|
||||||
credentialsId: '1f361efb-5b85-4f61-91a7-4ec7fb2a5c23'
|
|
||||||
publishers:
|
|
||||||
- claim-build
|
|
||||||
- gcs-uploader
|
|
||||||
- log-parser
|
|
||||||
- email-ext:
|
|
||||||
recipients: '{owner}'
|
|
||||||
scm:
|
|
||||||
- git:
|
|
||||||
url: 'https://github.com/{repoName}'
|
|
||||||
browser: githubweb
|
|
||||||
browser-url: 'https://github.com/{repoName}'
|
|
||||||
branches:
|
|
||||||
- 'master'
|
|
||||||
skip-tag: true
|
|
||||||
basedir: 'go/src/{gitbasedir}'
|
|
||||||
triggers:
|
|
||||||
- pollscm:
|
|
||||||
cron: 'H/5 * * * *'
|
|
||||||
- timed: '@daily'
|
|
||||||
wrappers:
|
|
||||||
- ansicolor:
|
|
||||||
colormap: xterm
|
|
||||||
- timeout:
|
|
||||||
timeout: 30
|
|
||||||
fail: true
|
|
||||||
- timestamps
|
|
||||||
|
|
||||||
# Job template to checkout source from github to $WORKSPACE/go/src/{gitbasedir}, setup go environment variables, and execute a
|
|
||||||
# shell script.
|
|
||||||
# - Job is executed daily and when changes are found polling github (every 5m).
|
|
||||||
# - Console output is published to google cloud storage.
|
|
||||||
#
|
|
||||||
# gitproject: name of the project - for display purposes only
|
|
||||||
# owner: owner to be notified for job failures. test results are published to owner email
|
|
||||||
# repoName: github repo to checkout e.g. kubernetes/kubernetes or google/cadvisor
|
|
||||||
# gitbasedir: directory under $WORKSPACE/go/src to checkout source repo to - e.g. k8s.io/kubernetes or github.com/google/cadvisor
|
|
||||||
# shell: bash command to execute from gitbasedir. should be a single script such as {gitproject}-jenkins.sh
|
|
||||||
- job-template:
|
|
||||||
name: '{gitproject}-gce-e2e-ci'
|
|
||||||
description: '{gitproject} continuous e2e tests.<br>Test Owner: {owner}.'
|
|
||||||
disabled: '{obj:disable_job}'
|
|
||||||
node: 'node'
|
|
||||||
logrotate:
|
|
||||||
numToKeep: 200
|
|
||||||
builders:
|
|
||||||
- shell: |
|
|
||||||
#!/bin/bash
|
|
||||||
set -e
|
|
||||||
set -x
|
|
||||||
cd go/src/{gitbasedir}
|
|
||||||
{shell}
|
|
||||||
publishers:
|
|
||||||
- claim-build
|
|
||||||
- gcs-uploader
|
|
||||||
- log-parser
|
|
||||||
- email-ext:
|
|
||||||
recipients: '{owner}'
|
|
||||||
scm:
|
|
||||||
- git:
|
|
||||||
url: 'https://github.com/{repoName}'
|
|
||||||
browser: githubweb
|
|
||||||
browser-url: 'https://github.com/{repoName}'
|
|
||||||
branches:
|
|
||||||
- 'master'
|
|
||||||
skip-tag: true
|
|
||||||
basedir: 'go/src/{gitbasedir}'
|
|
||||||
triggers:
|
|
||||||
- pollscm:
|
|
||||||
cron: 'H/5 * * * *'
|
|
||||||
- timed: 'H/30 * * * *'
|
|
||||||
wrappers:
|
|
||||||
- ansicolor:
|
|
||||||
colormap: xterm
|
|
||||||
- timeout:
|
|
||||||
timeout: 90
|
|
||||||
fail: true
|
|
||||||
- timestamps
|
|
||||||
- inject:
|
|
||||||
properties-content: |
|
|
||||||
GOROOT=/usr/local/go
|
|
||||||
GOPATH=$WORKSPACE/go
|
|
||||||
PATH=$PATH:$GOROOT/bin:$WORKSPACE/go/bin
|
|
||||||
- workspace-cleanup
|
|
||||||
|
|
||||||
- project:
|
|
||||||
name: node-docker-canary-build
|
|
||||||
repoName: 'google/cadvisor'
|
|
||||||
gitproject:
|
|
||||||
- 'cadvisor':
|
|
||||||
repoName: 'google/cadvisor'
|
|
||||||
gitbasedir: 'github.com/google/cadvisor'
|
|
||||||
dockerfilePath: 'deploy/canary/Dockerfile'
|
|
||||||
owner: 'stclair@google.com'
|
|
||||||
- 'heapster':
|
|
||||||
repoName: 'kubernetes/heapster'
|
|
||||||
gitbasedir: 'k8s.io/heapster'
|
|
||||||
dockerfilePath: 'deploy/docker/canary/Dockerfile'
|
|
||||||
owner: 'pszczesniak@google.com'
|
|
||||||
jobs:
|
|
||||||
- '{gitproject}-dockercanarybuild-ci'
|
|
||||||
wrappers:
|
|
||||||
- workspace-cleanup
|
|
||||||
|
|
||||||
- project:
|
|
||||||
name: node-gce-e2e
|
|
||||||
repoName: 'google/cadvisor'
|
|
||||||
gitproject:
|
|
||||||
- 'cadvisor':
|
|
||||||
repoName: 'google/cadvisor'
|
|
||||||
gitbasedir: 'github.com/google/cadvisor'
|
|
||||||
owner: 'stclair@google.com'
|
|
||||||
shell: |
|
|
||||||
go get -u github.com/tools/godep
|
|
||||||
|
|
||||||
./build/presubmit.sh
|
|
||||||
godep go build -tags test github.com/google/cadvisor/integration/runner
|
|
||||||
./runner --logtostderr --test-retry-count=8 --test-retry-whitelist=integration/runner/retrywhitelist.txt \
|
|
||||||
--ssh-options "-i /home/jenkins/.ssh/google_compute_engine -o UserKnownHostsFile=/dev/null -o IdentitiesOnly=yes -o CheckHostIP=no -o StrictHostKeyChecking=no" \
|
|
||||||
e2e-cadvisor-ubuntu-trusty \
|
|
||||||
e2e-cadvisor-coreos-beta \
|
|
||||||
e2e-cadvisor-container-vm-v20151215 \
|
|
||||||
e2e-cadvisor-container-vm-v20160127 \
|
|
||||||
e2e-cadvisor-rhel-7
|
|
||||||
- 'heapster':
|
|
||||||
repoName: 'kubernetes/heapster'
|
|
||||||
gitbasedir: 'k8s.io/heapster'
|
|
||||||
owner: 'pszczesniak@google.com'
|
|
||||||
shell: 'make test-unit test-integration'
|
|
||||||
disable_job: true # Issue #23538
|
|
||||||
- 'kubelet':
|
|
||||||
cron-string: '{sq-cron-string}'
|
|
||||||
repoName: 'kubernetes/kubernetes'
|
|
||||||
gitbasedir: 'k8s.io/kubernetes'
|
|
||||||
owner: 'pwittroc@google.com'
|
|
||||||
shell: 'test/e2e_node/jenkins/e2e-node-jenkins.sh test/e2e_node/jenkins/jenkins-ci.properties'
|
|
||||||
jobs:
|
|
||||||
- '{gitproject}-gce-e2e-ci'
|
|
@ -1,36 +0,0 @@
|
|||||||
- job:
|
|
||||||
name: 'kubernetes-test-linkchecker'
|
|
||||||
description: |
|
|
||||||
Grab the latest from GitHub, then run hack/verify-linkcheck.sh.<br>
|
|
||||||
Test Owner: Build Cop
|
|
||||||
disable_job: true # Issue #23162
|
|
||||||
logrotate:
|
|
||||||
numToKeep: 200
|
|
||||||
builders:
|
|
||||||
- shell: |
|
|
||||||
export PATH=${PATH}:/usr/local/go/bin
|
|
||||||
./hack/verify-linkcheck.sh
|
|
||||||
publishers:
|
|
||||||
- claim-build
|
|
||||||
- gcs-uploader
|
|
||||||
- email-ext:
|
|
||||||
recipients: 'xuchao@google.com'
|
|
||||||
scm:
|
|
||||||
- git:
|
|
||||||
url: https://github.com/kubernetes/kubernetes
|
|
||||||
branches:
|
|
||||||
- 'master'
|
|
||||||
browser: githubweb
|
|
||||||
browser-url: https://github.com/kubernetes/kubernetes
|
|
||||||
wipe-workspace: false
|
|
||||||
skip-tag: true
|
|
||||||
triggers:
|
|
||||||
- timed: '@daily'
|
|
||||||
wrappers:
|
|
||||||
- ansicolor:
|
|
||||||
colormap: xterm
|
|
||||||
- timeout:
|
|
||||||
timeout: 60
|
|
||||||
fail: true
|
|
||||||
- timestamps
|
|
||||||
- workspace-cleanup
|
|
@ -1,46 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Copyright 2015 The Kubernetes Authors All rights reserved.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
|
|
||||||
# Update all Jenkins jobs in a folder specified in $1. It can be the union of
|
|
||||||
# multiple folders separated with a colon, like with the PATH variable.
|
|
||||||
|
|
||||||
if [[ $# -eq 1 ]]; then
|
|
||||||
config_dir=$1
|
|
||||||
else
|
|
||||||
echo "Usage: $0 <dir>" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Run the container if it isn't present.
|
|
||||||
if ! docker inspect job-builder &> /dev/null; then
|
|
||||||
# jenkins_jobs.ini contains administrative credentials for Jenkins.
|
|
||||||
# Store it in the workspace of the Jenkins job that calls this script.
|
|
||||||
if [[ -e jenkins_jobs.ini ]]; then
|
|
||||||
docker run -idt \
|
|
||||||
--net host \
|
|
||||||
--name job-builder \
|
|
||||||
--restart always \
|
|
||||||
gcr.io/google_containers/kubekins-job-builder:1
|
|
||||||
docker cp jenkins_jobs.ini job-builder:/etc/jenkins_jobs
|
|
||||||
else
|
|
||||||
echo "jenkins_jobs.ini not found in workspace" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
docker exec job-builder git checkout master
|
|
||||||
docker exec job-builder git pull
|
|
||||||
docker exec job-builder jenkins-jobs update ${config_dir}
|
|
@ -1,42 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Copyright 2016 The Kubernetes Authors All rights reserved.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
|
|
||||||
# Tests the Jenkins job configs and computes a diff of any changes when there
|
|
||||||
# have been local changes of the configs.
|
|
||||||
|
|
||||||
set -o errexit
|
|
||||||
set -o nounset
|
|
||||||
set -o pipefail
|
|
||||||
|
|
||||||
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
|
|
||||||
source "${KUBE_ROOT}/hack/lib/init.sh"
|
|
||||||
|
|
||||||
readonly branch=${1:-${KUBE_VERIFY_GIT_BRANCH:-master}}
|
|
||||||
if ! [[ ${KUBE_FORCE_VERIFY_CHECKS:-} =~ ^[yY]$ ]] && \
|
|
||||||
! kube::util::has_changes_against_upstream_branch "${branch}" 'hack/jenkins/job-configs/'; then
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# By using ARTIFACTS_DIR, we can write the diff out to the artifacts directory
|
|
||||||
# (and then up to GCS) when running on Jenkins.
|
|
||||||
export OUTPUT_DIR="${ARTIFACTS_DIR:+${ARTIFACTS_DIR}/jjb}"
|
|
||||||
# When running inside Docker (e.g. on Jenkins) we'll need to reference the
|
|
||||||
# host's artifacts directory for the Docker-in-Docker volume mount to work.
|
|
||||||
export DOCKER_VOLUME_OUTPUT_DIR="${HOST_ARTIFACTS_DIR:+${HOST_ARTIFACTS_DIR}/jjb}"
|
|
||||||
|
|
||||||
# This script should pass, assuming the configs are not broken. Diffs won't
|
|
||||||
# cause failures.
|
|
||||||
"${KUBE_ROOT}/hack/jenkins/diff-job-config-patch.sh"
|
|
Loading…
Reference in New Issue
Block a user