Commit Graph

372 Commits (0d77f62c02cbf2e88547cd3d114e948a1fdb3371)

Author SHA1 Message Date
yankaiz 5549a330c2 Bump debian-iptables versions to v11.0.2. 2019-04-04 16:46:37 -07:00
Tim Allclair 1b9d0c1094 Bump debian-* base image versions to latest 2019-02-04 11:58:51 -08:00
war-turtle b1b7d0dbae fixing shellcheck warning in build/common.sh 2019-01-26 19:21:17 +05:30
Jeff Grafton f26048ecb1 Use debian-base instead of busybox as base image for server images 2018-10-25 10:19:40 -07:00
Jeff Grafton 003404685d Update to use debian-iptables v11.0 and debian-hyperkube-base 0.12.0 2018-10-24 16:18:53 -07:00
Davanum Srinivas d9cfd77149
Ensure reproducible builds - support for SOURCE_DATE_EPOCH with dockerized builds
- Pass in SOURCE_DATE_EPOCH when we run the docker container
- Looks like cleaning up symbol table also helps
- Also trimming the path

Tips from
- https://blog.filippo.io/reproducing-go-binaries-byte-by-byte/
- https://blog.filippo.io/shrink-your-go-binaries-with-this-one-weird-trick/

Change-Id: Iedba85d9c1a36790fb8814795f7c27c1371cff1b
2018-09-26 07:28:09 -04:00
Jeff Grafton b4635a829a Update to use debian-iptables v10.2 and debian-hyperkube-base 0.10.2 2018-09-17 21:10:04 -07:00
Kubernetes Submit Queue 68d22a878d
Merge pull request #67971 from Katharine/coverage-instrumentation
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions here: https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md.

Add ability to build with runtime coverage instrumentation

**What this PR does / why we need it**:

This PR adds the ability to instrument a subset of kubernetes binaries to report code coverage information. The specific use-case is to help determine coverage of our end-to-end Conformance tests, as well as provide data that can be used to help determine where to focus. This PR focuses on making it possible to build with instrumentation; collecting and using the generated coverage data will be done in later PRs. For more details as to the intent, see the [design doc](https://docs.google.com/document/d/1FKMBFxz7vtA-6ZgUkA47F8m6yR00fwqLcXMVJqsHt0g/edit?usp=sharing) (google doc; requires kubernetes-dev membership).

Specifically, this PR adds a new `KUBE_BUILD_WITH_COVERAGE` make variable, which when set will cause `kube-apiserver`, `kube-controller-manager`, `kube-scheduler`, `kube-proxy` and `kubelet` to be built with coverage instrumentation. These coverage-instrumented binaries will flush coverage information to disk every five seconds, defaulting to a temporary directory unless the `KUBE_COVERAGE_FILE` environment variable is set at launch, in which case it will write to that file instead.

The mechanism used to achieve coverage instrumentation is to build the targeted binaries as "unit tests" with coverage enabled, and then rigging the unit tests to just execute the binary's usual entry point. This is implemented only for the bash build system.

/sig testing

```release-note
NONE
```
2018-09-01 01:32:52 -07:00
Benjamin Elder 037fabd842 add make targets for building server images 2018-08-31 14:31:21 -07:00
Katharine Berry 254618ed61 Pass KUBE_BUILD_WITH_COVERAGE through to docker instance. 2018-08-29 14:48:24 -07:00
Kubernetes Submit Queue f6eb545ad3
Merge pull request #67365 from ixdy/update-debian-container-images
Automatic merge from submit-queue (batch tested with PRs 67396, 67097, 67395, 67365, 67099). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Update to debian-iptables v10.1 and hyperkube-base 0.10.1

**What this PR does / why we need it**: these images are based on the `debian-base` 0.3.2 images, which include CVE fixes (#67026) and permission fixes of the qemu-ARCH-static helper binary (#67026, #67283).

**Release note**:

```release-note
NONE
```
2018-08-15 05:45:24 -07:00
Jeff Grafton 37bb013943 Update to debian-iptables v10.1 and hyperkube-base 0.10.1 2018-08-13 22:32:55 -07:00
Davanum Srinivas a66e1f089e
Drop kube-aggregator container image from release
First version of this was only standalone, now the code is being
vendored by anyone who wants to use it. So the standalone binary and
container are no longer useful.

Change-Id: Ib9369de66b4ecb3451f73ba2a252526d6615b96f
2018-08-08 15:57:52 -04:00
Maciej Pytel 6cdec82868 Unset CDPATH in build scripts 2018-07-17 15:06:32 +02:00
Matthias Bertschy 9b15af19b2 Update all script to use /usr/bin/env bash in shebang 2018-04-19 13:20:13 +02:00
Ismo Puustinen 231f79f89e build: fix building with spaces in directory names.
Fix kubernetes build scripts to work in case the source directory is in
a directory path which contains a space.

You can prepare such a directory like this:

    $ mkdir '/tmp/test dir/'
    $ cd '/tmp/test dir/'
    $ git clone https://github.com/kubernetes/kubernetes.git
    $ cd kubernetes

Then, without the fix:

$ KUBE_FASTBUILD=true KUBE_RELEASE_RUN_TESTS=n build/release.sh
cat: /tmp/test: No such file or directory
cat: dir/kubernetes/build/build-image/cross/VERSION: No such file or directory
cat: /tmp/test: No such file or directory
cat: dír/kubernetes/build/build-image/VERSION: No such file or directory
+++ [0307 18:10:33] Verifying Prerequisites....
cp: target '/tmp/test dir/kubernetes/_output/images/kube-build:build-7c7cd10a18--/Dockerfile' is not a directory
!!! [0307 18:10:33] Call tree:
!!! [0307 18:10:33]  1: build/release.sh:35
kube::build::build_image(...)
!!! Error in build/../build/common.sh:454
  Error in build/../build/common.sh:454. '((i<3-1))' exited with status 1
Call stack:
  1: build/../build/common.sh:454 kube::build::build_image(...)
  2: build/release.sh:35 main(...)
Exiting with status 1

With the fix the compilation succeeds. The fix is done adding double
quotes to required places (and also just in case to other places where
shellcheck recommended adding them).

Note that this fix doesn't help with the official make-based build:
it's tricky to make makefiles work with targets with spaces in their
names.
2018-03-12 09:12:47 +02:00
Kubernetes Submit Queue 5c86ef2150
Merge pull request #59207 from ipuustin/shell-bugfix
Automatic merge from submit-queue (batch tested with PRs 59705, 59207, 59677). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

build: fix a logic error in shell script.

**What this PR does / why we need it**: It looks like that there's a logic error in `build/common.sh`. The return value of a `docker inspect` command is not checked properly, since the value being assigned is actually the previous command's return value (a `0`, because `local` always returns `0` when used like this).

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
Fixes #

**Special notes for your reviewer**:

**Release note**: 

```release-note
NONE
```
2018-02-13 12:29:31 -08:00
Tim Hockin 3586986416 Switch to k8s.gcr.io vanity domain
This is the 2nd attempt.  The previous was reverted while we figured out
the regional mirrors (oops).

New plan: k8s.gcr.io is a read-only facade that auto-detects your source
region (us, eu, or asia for now) and pulls from the closest.  To publish
an image, push k8s-staging.gcr.io and it will be synced to the regionals
automatically (similar to today).  For now the staging is an alias to
gcr.io/google_containers (the legacy URL).

When we move off of google-owned projects (working on it), then we just
do a one-time sync, and change the google-internal config, and nobody
outside should notice.

We can, in parallel, change the auto-sync into a manual sync - send a PR
to "promote" something from staging, and a bot activates it.  Nice and
visible, easy to keep track of.
2018-02-07 21:14:19 -08:00
Ismo Puustinen 7a67246d47 build: fix a logic error in shell script.
The right place to assign the "docker inspect" return value is outside
of the subshell. The last return value was coming from something else
than the expected command.
2018-02-05 11:21:59 +02:00
Kubernetes Submit Queue 0d9e247aaa
Merge pull request #54071 from HubSpot/kube-build-parent-cgroup
Automatic merge from submit-queue (batch tested with PRs 54071, 58393). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Optionally launch build containers inside a specific parent cgroup

**What this PR does / why we need it**: Adds support to the build process for launching containers inside a specific parent cgroup via the `--cgroup-parent` docker arg. We needed this to enforce resource usage when building Kubernetes in our CI environment.

**Special notes for your reviewer**: None

**Release note**:

```release-note
NONE
```
2018-01-23 16:41:30 -08:00
tpetr 4ec6e1288e update if statement 2018-01-23 11:24:08 -05:00
stewart-yu 0601916d78 add KUBE_ROOT in directory 2018-01-12 18:12:37 +08:00
Tim Hockin e9dd8a68f6 Revert k8s.gcr.io vanity domain
This reverts commit eba5b6092a.

Fixes https://github.com/kubernetes/kubernetes/issues/57526
2017-12-22 14:36:16 -08:00
Tim Hockin eba5b6092a Use k8s.gcr.io vanity domain for container images 2017-12-18 09:18:34 -08:00
m1093782566 787a55bb67 install ipset in debian-iptables docker image and bump tag to v10 2017-11-22 15:37:15 +08:00
Christoph Blecker 555b4215d6
Fix .git rsync filter 2017-11-11 10:02:02 -08:00
Ryan Phillips 66965daf56 bump base images to debian stretch 2017-11-10 09:54:10 -06:00
tpetr 0df8838d15 allow setting --cgroup-parent for docker run commands 2017-10-17 10:58:39 -04:00
Dr. Stefan Schimanski 4156ec979b build/common.sh: silence kube::build::has_ip on Mac 2017-10-16 14:44:39 +02:00
Kubernetes Submit Queue 2e6ccc3f98 Merge pull request #52959 from mattjmcnaughton/mattjmcnaughton/dynamically-determine-default-docker-machine-memory
Automatic merge from submit-queue (batch tested with PRs 52959, 53790). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Dynamically determine default docker machine memory

**What this PR does / why we need it**:

Currently, if using `docker-machine` for k8s docker operations on a Mac,
we'll create a VM with 4096MB of memory. The machine's RAM will be the
same regardless of the memory available on the local machine. For
example, if the user has 16GB on their local machine, the VM will still
only have 4GB of RAM.

Update the method for defining the `kube-dev` VM with `docker-machine`,
so we give it access to 50% of the total RAM.

**Release note**:
```release-note
NONE
```
2017-10-13 19:19:29 -07:00
Ryan Phillips de095385b9 common.sh fix to detect ip instead of ifconfig
* Some machines do not have ifconfig and rely on ip
2017-10-06 16:42:53 -05:00
mattjmcnaughton abee38cb4a Dynamically determine default docker machine memory
Currently, if using `docker-machine` for k8s docker operations on a Mac,
we'll create a VM with 4096MB of memory. The machine's RAM will be the
same regardless of the memory available on the local machine. For
example, if the user has 16GB on their local machine, the VM will still
only have 4GB of RAM.

Update the method for defining the `kube-dev` VM with `docker-machine`,
so we give it access to 50% of the total RAM.
2017-10-03 09:10:31 -04:00
Kubernetes Submit Queue e5fb3d7108 Merge pull request #50587 from CaoShuFeng/verify-staging-godeps
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>..

set proxy when build containers for users behind proxy

Fixes: https://github.com/kubernetes/kubernetes/issues/49921

**Release note**:

```
NONE
```
2017-09-24 22:32:39 -07:00
Christoph Blecker b6f6419423
make clean will remove all gitignored files 2017-09-04 11:04:09 -07:00
Kubernetes Submit Queue 5d72d5c31d Merge pull request #50602 from dixudx/user_arm64v8_instead_aarch64
Automatic merge from submit-queue (batch tested with PRs 50602, 51561, 51703, 51748, 49142)

Use arm32v7|arm64v8 images instead of the deprecated armhf|aarch64 image organizations

**What this PR does / why we need it**:

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #50601

**Special notes for your reviewer**:
/assign @ixdy @jbeda @zmerlynn
**Release note**:

```release-note
Use arm32v7|arm64v8 images instead of the deprecated armhf|aarch64 image organizations
```
2017-09-03 01:12:04 -07:00
Kubernetes Submit Queue a244a55c96 Merge pull request #51004 from zhouhaibing089/rsync-fix
Automatic merge from submit-queue (batch tested with PRs 51666, 49829, 51058, 51004, 50938)

add the caller ip into rsync hosts allow list

fixes https://github.com/kubernetes/kubernetes/issues/51003.

This patch allows running build in pods.

```release-note
NONE
```
2017-09-02 22:52:08 -07:00
Christoph Blecker 4f1106c8a5
Modify rsync filter to retain output across runs 2017-08-25 16:58:59 -07:00
zhouhaibing089 ca76002e89 add the caller ip into rsync hosts allow list 2017-08-23 09:58:32 +08:00
Di Xu ec2fbbc85d bump new version due to base image changed 2017-08-21 14:51:44 +08:00
Di Xu d4aa1611bd use more-specific arm64v8 instead of deprecated aarch64 organization 2017-08-21 10:18:19 +08:00
Di Xu 25a786f74d use more-specific arm32v7 instead of deprecated armhf organization 2017-08-21 10:17:43 +08:00
Cao Shufeng 6bc64dffe7 set proxy when build containers for users behind proxy
Fixes: https://github.com/kubernetes/kubernetes/issues/49921
2017-08-15 09:57:40 +08:00
Davanum Srinivas 827af63e72 Avoid rsync of .git directory
We don't really need the .git directory to be transferred. This
problem was introduced in the PR:
"Run the update-staging-godeps script inside a docker container"

Fixes #50272
2017-08-12 20:52:49 -04:00
Christoph Blecker 2ee8983daf
Dockerize update-staging-godeps 2017-07-25 12:26:57 -07:00
Christoph Blecker d3b838b608
rsync git directories into kube-build 2017-07-25 12:11:06 -07:00
Dr. Stefan Schimanski 1f40e75aa0 Workaround docker-wait freeze with 17.06.0 2017-07-11 16:22:53 +02:00
Davanum Srinivas 733bb2c31d Add git branch to make build short hash unique
KUBE_ROOT_HASH depends just on the host name and
directory path. So when working with branches, it could lead
to some confusion since the hash is the same even when
you switch from branch to branch. Let us use the git branch
information when we compute the short hash

Fixes #1801
2017-06-02 21:18:00 -04:00
bruceauyeung 396695af15 fix make release/quick-release doesn't respect go build flags 2017-05-25 17:05:09 +08:00
Jeff Grafton 37eb292bc0 Update bazel build to dockerize cloud-controller-manager 2017-05-02 12:07:13 -07:00
Lucas Käldström 4ee9d047fd
Create a docker image for the cloud controller manager 2017-04-30 10:28:56 +03:00