Commit Graph

400 Commits

Author SHA1 Message Date
Stephen Augustus
a19cc9a245 [go1.15] Use go-runner:buster-v2.2.2 image (built on go1.15.5)
Signed-off-by: Stephen Augustus <saugustus@vmware.com>
2020-11-23 21:23:25 -05:00
Sascha Grunert
b2308f1efe
Make copied localtime file write-able
Some distributions have no default write-access to this file, which
means that it's not possible to update the file and rebuild the project
if not write-able. This patch fixes this by adding an additional
`chmod`.

Signed-off-by: Sascha Grunert <sgrunert@suse.com>
2020-10-14 13:08:57 +02:00
Stephen Augustus
00a07cfd86 build: Update to debian-iptables:buster-v1.3.0
- Uses iptables 1.8.5

Signed-off-by: Stephen Augustus <saugustus@vmware.com>
2020-09-17 13:06:27 -04:00
Stephen Augustus
eb61cf27fe [go1.15] build: Use go-runner:buster-v2.0.1 (built using go1.15.1)
Signed-off-by: Stephen Augustus <saugustus@vmware.com>
2020-09-11 13:15:15 -07:00
Stephen Augustus
3ab1a49766 build/lib/release: Explicitly use '--platform' in building server images
When we switched to go-runner for building the apiserver,
controller-manager, and scheduler server components, we no longer
reference the individual architectures in the image names, specifically
in the 'FROM' directive of the server image Dockerfiles.

As a result, server images for non-amd64 images copy in the go-runner
amd64 binary instead of the go-runner that matches that architecture.

This commit explicitly sets the '--platform=linux/${arch}' to ensure
we're pulling the correct go-runner arch from the manifest list.

Before:
FROM ${base_image}

After:
FROM --platform=linux/${arch} ${base_image}

Signed-off-by: Stephen Augustus <saugustus@vmware.com>
2020-09-05 04:45:42 -04:00
Stephen Augustus
0921f645a3 build/common.sh: Remove extraneous reference to debian-base image
debian-base is no longer used for building core Kubernetes server
components, so we remove the unnecessary local variable referencing it
from kube::build::get_docker_wrapped_binaries().

Signed-off-by: Stephen Augustus <saugustus@vmware.com>
2020-09-05 04:29:14 -04:00
Stephen Augustus
fee5b2245f build: Update to go-runner:buster-v2.0.0
Signed-off-by: Stephen Augustus <saugustus@vmware.com>
2020-08-21 14:41:40 -04:00
Stephen Augustus
13f1a90f74 build: Update to debian-base@v2.1.3 and debian-iptables@v12.1.2
Signed-off-by: Stephen Augustus <saugustus@vmware.com>
2020-08-11 23:17:26 -04:00
Stephen Augustus
87e13f7665 build: Update to debian-base@v2.1.0 and debian-iptables@v12.1.1
Signed-off-by: Stephen Augustus <saugustus@vmware.com>
2020-08-04 01:15:24 -04:00
Stephen Augustus
90c223fa5c [VDF] Remove references to us.gcr.io/k8s-artifacts-prod
Signed-off-by: Stephen Augustus <saugustus@vmware.com>
2020-07-22 16:08:30 -04:00
Davanum Srinivas
b1742f19ef
Switch kube-controller-manager to distroless image
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2020-05-21 22:33:54 -04:00
Dube
d406a635f0 Remove extra spaces to ensure the style of the code. 2020-05-15 23:44:35 +08:00
Kubernetes Prow Robot
2260d97d74
Merge pull request #90994 from thockin/fix_license_again
Fix umask better
2020-05-12 08:25:18 -07:00
Tim Hockin
8d7adb7d94 Fix umask better
While the umask was previously set for builds (and in fact `docker run`
sets it to 0022 by default), the release pipeline `cp`'s files (with
`-a`) which respect the user's umask, and is outside of the build path.

This sets the umask in a common function called by all build tools,
which Stephen agreed was the simplest and most complete fix.  The
`verify-prereqs` function is already poorly named for what it does, and
this only makes it epsilon worse.
2020-05-11 13:23:54 -07:00
Yuwen Ma
1aa67fc525
Switch core master base images from debian to distroless
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2020-05-09 06:55:00 -04:00
Tim Hockin
04c2b1fbdc Purge almost all memories of godep 2020-05-07 21:49:00 -07:00
Stephen Augustus
aa79da2696 deps: Update dependents to use debian-iptables:v12.1.0
Signed-off-by: Stephen Augustus <saugustus@vmware.com>
2020-05-06 01:14:01 -04:00
Stephen Augustus
64300d8fff deps: Update dependents to use debian-base:v2.1.0
Signed-off-by: Stephen Augustus <saugustus@vmware.com>
2020-05-02 23:09:09 -04:00
Stephen Augustus
f828821eea releng: Point debian-base image references to K8s Infra
Signed-off-by: Stephen Augustus <saugustus@vmware.com>
2020-05-02 22:51:40 -04:00
Di Xu
b3ae0f01e5 pass through KUBE_BUILD_PLATFORMS to enable build on specified platforms 2020-01-09 20:02:41 +08:00
Dan Winship
ffe93b3979 Update debian-iptables iptables-wrapper script
The debian-iptables v12.0.0 build didn't work because of another
previously-undiscovered iptables 1.8.x bug. Work around it for now and
bump the version to v12.0.1; we can revert back to the original
version of the script once iptables 1.8.4 is available in
buster-backports.
2019-11-14 09:57:57 -05:00
Tim Hockin
573a99ea51 Bump debian-base to buster 2019-11-14 09:57:56 -05:00
Jordan Liggitt
cd4474ae4f Revert "76093 restructure LICENSES file generation"
This reverts commit d39ac98cc5.
2019-11-13 10:24:32 -05:00
Ji Shan Xing
d39ac98cc5 76093 restructure LICENSES file generation 2019-11-12 20:38:57 -05:00
yuxiaobo
81e9f21f83 Correct spelling mistakes
Signed-off-by: yuxiaobo <yuxiaobogo@163.com>
2019-11-06 20:25:19 +08:00
Odin Ugedal
cce1f32ea5
Fix shellcheck failures SC2034 2019-10-23 22:47:46 +02:00
Davanum Srinivas
adbd1800c8 Drop cloud-controller-manager artifacts from k/k release 2019-08-06 13:51:27 -04:00
hui luo
97087c66f7 Allow customize registry name of base and release images
default behavior does not change, it uses k8s.gcr.io by default
added two vars: KUBE_DOCKER_REGISTRY, KUBE_BASE_IMAGE_REGISTRY.
KUBE_BASE_IMAGE_REGISTRY is for base image registry of server binaries
KUBE_DOCKER_REGISTRY is for released images registry

user can interact with them by:
`KUBE_DOCKER_REGISTRY=### KUBE_BASE_IMAGE_REGISTRY=### make quick-release`

Signed-off-by: Hui Luo <luoh@vmware.com>
2019-07-25 17:43:01 -07:00
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