diff --git a/hack/jenkins/test-history/gen_history b/hack/jenkins/test-history/gen_history
deleted file mode 100755
index ad0efad73ab..00000000000
--- a/hack/jenkins/test-history/gen_history
+++ /dev/null
@@ -1,38 +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.
-
-# Compiles a static HTML site containing the last day's worth of test results.
-# Pass the URL of Jenkins into $1
-
-set -o errexit
-set -o nounset
-
-readonly jenkins="$1"
-readonly datestr=$(date +"%Y-%m-%d")
-
-# Create JSON report
-time python gen_json.py \
- "--server=${jenkins}" \
- "--match=^kubernetes|kubernetes-build|kubelet-gce-e2e-ci"
-
-# Create static HTML reports out of the JSON
-python gen_html.py --output-dir=static --input=tests.json
-
-# Upload to GCS
-readonly bucket="kubernetes-test-history"
-readonly gcs_acl="public-read"
-gsutil -q cp -a "${gcs_acl}" -z json "tests.json" "gs://${bucket}/logs/${datestr}.json"
-gsutil -q cp -ra "${gcs_acl}" "static" "gs://${bucket}/"
diff --git a/hack/jenkins/test-history/gen_html.py b/hack/jenkins/test-history/gen_html.py
deleted file mode 100755
index 0f94fa17b30..00000000000
--- a/hack/jenkins/test-history/gen_html.py
+++ /dev/null
@@ -1,285 +0,0 @@
-#!/usr/bin/env python
-
-# 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.
-
-"""Creates an HTML report for all jobs starting with a given prefix.
-
-Reads the JSON from tests.json, and prints the HTML to stdout.
-
-This code is pretty nasty, but gets the job done.
-
-It would be really spiffy if this used an HTML template system, but for now
-we're old-fashioned. We could also generate these with JS, directly from the
-JSON. That would allow custom filtering and stuff like that.
-"""
-
-from __future__ import print_function
-
-import argparse
-import cgi
-import collections
-import json
-import os
-import string
-import sys
-import time
-
-
-TestMetadata = collections.namedtuple('TestMetadata', [
- 'okay',
- 'unstable',
- 'failed',
- 'skipped',
-])
-
-
-def gen_tests(data, prefix, exact_match):
- """Creates the HTML for all test cases.
-
- Args:
- data: Parsed JSON data that was created by gen_json.py.
- prefix: Considers Jenkins jobs that start with this.
- exact_match: Only match Jenkins jobs with name equal to prefix.
-
- Returns:
- (html, TestMetadata) for matching tests
- """
- html = ['
']
- totals = collections.defaultdict(int)
- for test in sorted(data, key=string.lower):
- test_html = ['
']
- has_test = False
- has_failed = False
- has_unstable = False
- for suite in sorted(data[test]):
- if not suite.startswith(prefix):
- continue
- if exact_match and suite != prefix:
- continue
- has_test = True
- num_failed = 0
- num_builds = 0
- total_time = 0
- for build in data[test][suite]:
- num_builds += 1
- if build['failed']:
- num_failed += 1
- total_time += build['time']
- avg_time = total_time / num_builds
- unit = 's'
- if avg_time > 60:
- avg_time /= 60
- unit = 'm'
- if num_failed == num_builds:
- has_failed = True
- status = 'failed'
- elif num_failed > 0:
- has_unstable = True
- status = 'unstable'
- else:
- status = 'okay'
- test_html.append('