Commit Graph

268 Commits

Author SHA1 Message Date
Kubernetes Submit Queue
74de0fdb63 Merge pull request #38135 from MHBauer/go-generate-flag-location
Automatic merge from submit-queue

goflags must be after subcommand

**What this PR does / why we need it**:
if GOFLAGS is set when calling make, kubernetes will fail to build

as an example, I often have `GOFLAGS=-v` so I can have some idea of progress during compilation

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

**Special notes for your reviewer**:

**Release note**:

```release-note
NONE
```
2016-12-12 13:28:24 -08:00
Lucas Käldström
afefb19ac4 Fix the cross-build 2016-12-10 16:26:21 +02:00
gajju26
70b92aab45 PR-2 Making docker images availabe for s390x on gcr.io repository and enables s390x support to kube-dns , pause, addon-manager, etcd, hyperkube, kube-discovery modules 2016-12-09 14:38:02 +05:30
Morgan Bauer
3114920d46
goflags must be after subcommand 2016-12-05 12:25:07 -08:00
Sebastian Jug
79202656bc - Moved gobindata, refactored ReadOrDie refs
- Remaining spaghetti untangled
- Missed bazel update and a few hardcoded refs
- New instance of framework.ReadOrDie reference removed post rebase
- Resolve new clientset rebase
- Fixed e2e/generated BUILD dep
- A space
- Missed gobindata ref in golang.sh
2016-12-02 12:57:03 -05:00
Kubernetes Submit Queue
7ec3be4c8e Merge pull request #36964 from ixdy/gobin-build
Automatic merge from submit-queue

Build vendored copy of go-bindata and use that in go generate step

**What this PR does / why we need it**: as the title says, uses the vendored version of `go-bindata` rather than expecting developers to `go get` it (when building outside docker).

**Which issue this PR fixes**: fixes #34067, partially addresses #36655

**Special notes for your reviewer**: we still call `go generate` far too many times:
```console
~/.../src/k8s.io/kubernetes $ which go-bindata
~/.../src/k8s.io/kubernetes $ make
+++ [1116 17:35:28] Building the toolchain targets:
    k8s.io/kubernetes/hack/cmd/teststale
    k8s.io/kubernetes/vendor/github.com/jteeuwen/go-bindata/go-bindata
+++ [1116 17:35:29] Generating bindata:
    test/e2e/framework/gobindata_util.go
+++ [1116 17:35:30] Building go targets for linux/amd64:
    cmd/libs/go2idl/deepcopy-gen
+++ [1116 17:35:35] Building the toolchain targets:
    k8s.io/kubernetes/hack/cmd/teststale
    k8s.io/kubernetes/vendor/github.com/jteeuwen/go-bindata/go-bindata
+++ [1116 17:35:35] Generating bindata:
    test/e2e/framework/gobindata_util.go
+++ [1116 17:35:36] Building go targets for linux/amd64:
    cmd/libs/go2idl/defaulter-gen
+++ [1116 17:35:41] Building the toolchain targets:
    k8s.io/kubernetes/hack/cmd/teststale
    k8s.io/kubernetes/vendor/github.com/jteeuwen/go-bindata/go-bindata
+++ [1116 17:35:41] Generating bindata:
    test/e2e/framework/gobindata_util.go
+++ [1116 17:35:42] Building go targets for linux/amd64:
    cmd/libs/go2idl/conversion-gen
+++ [1116 17:35:47] Building the toolchain targets:
    k8s.io/kubernetes/hack/cmd/teststale
    k8s.io/kubernetes/vendor/github.com/jteeuwen/go-bindata/go-bindata
+++ [1116 17:35:47] Generating bindata:
    test/e2e/framework/gobindata_util.go
+++ [1116 17:35:48] Building go targets for linux/amd64:
    cmd/libs/go2idl/openapi-gen
+++ [1116 17:35:56] Building the toolchain targets:
    k8s.io/kubernetes/hack/cmd/teststale
    k8s.io/kubernetes/vendor/github.com/jteeuwen/go-bindata/go-bindata
+++ [1116 17:35:56] Generating bindata:
    test/e2e/framework/gobindata_util.go
```
Fixing that is a separate effort, though.

cc @sebgoa @ZhangBanger
2016-12-02 07:29:01 -08:00
Jeff Grafton
38690ff7a7 build: don't call unset_platform_envs before building 2016-12-01 10:37:39 -08:00
Jeff Grafton
0d9d623f04 Build vendored copy of go-bindata and use that in go generate step
Additionally remove all instances of `go get`ing go-bindata
2016-11-30 22:23:40 -08:00
Jeff Grafton
9848d6cc8d build: clean platform envs to prevent cross-contamination 2016-11-29 16:35:45 -08:00
Madhusudan.C.S
3c692ebd77 [Federation] Implement the kubefed command.
Also:
1. Add it to the client build targets list.
2. Register `kubefed join` and `kubefed unjoin` commands.
2016-11-02 12:48:20 -07:00
Tim Hockin
7aa91bbff6 Use checksum to rsync results
If dependencies are touched, the Makefile will detect that tools like
deepcopy-gen need to be rebuilt.  It will rebuild them, but Go decides the
dependencies are not actually updated (maybe it was a test file - known
limitation of the current Makefile) and does not touch the resulting binary.
Then the Makefile touches the result explicitly to mark thatthe dep change has
been handled.  Then rsync blows away that change with the older file, and
helpfully preserves the timestamp.

Now rsync ignores it if the checksum is the same.  Result = faster build.
2016-10-26 16:30:18 +02:00
Mike Danese
27116c6818 rename build/ to build-tools/ 2016-10-24 14:41:56 -07:00
Jess Frazelle
3193174142
Remove go patches for darwin
Signed-off-by: Jess Frazelle <acidburn@google.com>
2016-10-13 21:12:15 -07:00
Joe Beda
dd3ac00c7d Install test subpackages too
We weren't getting incremental builds because of new test only subpackages.  Our
voodoo combo of 'go install' and 'go test -c' didn't cache things like
'test/e2e_node/services'.  Add the '-i' flag to 'go test' to install test only
dependencies too.
2016-10-03 19:42:21 -07:00
Joe Beda
17454a04ac Remove support for boot2docker 2016-10-03 19:42:20 -07:00
Jeff Grafton
f769b02c8f Use patched go1.7.1 for cross-builds targeting darwin 2016-09-29 17:05:23 -07:00
deads2k
06b1a9636d promote contrib/mesos to incubator 2016-09-28 10:58:09 -04:00
Kubernetes Submit Queue
83b4133ea8 Merge pull request #33496 from mikedanese/build-kubeadm-kubedisco
Automatic merge from submit-queue

build kube-discovery and kubeadm with release

This will start publishing binaries from our ci builds.

@errordeveloper @dgoodwin
2016-09-27 03:46:57 -07:00
Jeff Grafton
13a3313957 Bundle kubemark in test tarball instead of server tarball 2016-09-26 11:06:48 -07:00
Mike Danese
b421bf4315 build kube-discovery and kubeadm with release 2016-09-26 10:20:04 -07:00
Lucas Käldström
b17e107def Various improvements plus added a version command 2016-09-25 22:38:39 +03:00
Kubernetes Submit Queue
dae3bddf90 Merge pull request #32884 from Random-Liu/separate-build-for-node-e2e
Automatic merge from submit-queue

Add separate build process for node test.

This PR is part of https://github.com/kubernetes/kubernetes/pull/31093. However, because currently node e2e is built on `KUBE_TEST_PLATFORMS`, which includes linux/amd64, darwin/amd64, windows/amd64 and linux/arm, it caused #32251 to fail.

In fact, node e2e is running on the same node with kubelet, and it also has built-in apiserver, etcd and namespace controller. All of them are only built on `KUBE_SERVER_PLATFORMS`, so node e2e should also only be built on those platforms.
```
KUBE_SERVER_PLATFORMS=(
     linux/amd64
     linux/arm
     linux/arm64
   )
```

This PR added a separate build process for node e2e to address this.

@vishh Do you need this for v1.4? because this blocks your #32251. /cc @dchen1107
2016-09-16 14:16:57 -07:00
Random-Liu
a67fec6419 Add separate build process for node test. 2016-09-16 11:17:49 -07:00
Lucas Käldström
aa045f786e Use a patched golang version for building linux/arm, fixes kube-apiserver 2016-09-14 18:04:22 +03:00
Dr. Stefan Schimanski
f2f3a459d8 Use portable ln -snf instead of -sTf 2016-08-29 18:58:56 +02:00
Kubernetes Submit Queue
1e42723269 Merge pull request #31525 from dcbw/handle-existing-go_pkg_dir
Automatic merge from submit-queue

Don't error out if ${go_pkg_dir} already exists

I have 'make' aliased to 'make -j4' for various reasons, and that's always worked fine for Kubernetes in the past.  But it recently broke because EEXIST errors from this symlink creation are fatal.  So make them not fatal, because if the path already exists, why try to create it again?  It exists because two invocations of setup_env() are run in parallel due to the -j4, and they race to create the symlink and one obviously fails.

ln: failed to create symbolic link ‘/home/dcbw/Development/containers/kubernetes/_output/local/go/src/k8s.io/kubernetes’: File exists
Makefile.generated_files:285: recipe for target '_output/bin/deepcopy-gen' failed
make[1]: *** [_output/bin/deepcopy-gen] Error 1
make[1]: *** Waiting for unfinished jobs....
+++ [0826 10:18:02] Generating bindata:
    /home/dcbw/Development/containers/kubernetes/test/e2e/framework/gobindata_util.go
+++ [0826 10:18:02] Building the toolchain targets:
    k8s.io/kubernetes/hack/cmd/teststale
+++ [0826 10:18:03] Building go targets for linux/amd64:
    cmd/libs/go2idl/conversion-gen
Makefile:281: recipe for target 'generated_files' failed
make: *** [generated_files] Error 2
2016-08-28 13:57:32 -07:00
Dan Williams
e063c760c2 Don't error out if ${go_pkg_dir} already exists
If it already exists, the world is OK and there's no need to panic.
2016-08-26 13:10:13 -05:00
Madhusudan.C.S
d9cea93eb6 [Federation] Do not build separate binaries for federation control plane components, hyperkube should be sufficient.
Also build the hyperkube docker image on-the-fly.

This is only a temporary fix until the proposal in issue
https://github.com/kubernetes/kubernetes/issues/28630 is implemented.

Also, the new build/deployment method completely obviates this step.

We use debian image instead of busybox and do not build hyperkube as a
static binary yet. Wait until PR
https://github.com/kubernetes/kubernetes/pull/26028 is merged to build
static hyperkube binaries.
2016-08-25 14:29:32 -07:00
Jeff Grafton
dec4d1ea33 Disable linux/ppc64le compilation by default.
It can be reenabled with KUBE_BUILD_PPC64LE=y.
2016-08-16 17:05:42 -07:00
Tim Hockin
5217a502d1 Set GOROOT 2016-08-12 21:35:32 -07:00
Tim Hockin
99a6a8ab16 Fix subtle build breakage
Repro case:
$ make clean generated_files
$ hack/update-generated-protobuf.sh

This would complain about not finding `fmt`, and it was indicating the wrong
GOROOT.  The problem was that the first step built binaries for generating
code, which *embeds* the value of GOROOT into the binary.  The whole tree was
bind-mounted into the build container and then JUST the dockerized dir was
mounted over it.  The in-container build tried to use the existing binaries,
but GOROOT is wrong.

This change whites-out the whole _output dir.

I first made just an anonymous volume for _output, but docker makes that as
root, which means I can't write to it from our non-root build.  So I just put
it in the data container.  This seems to work.  The biggest change this makes
is that the $GOPATH/bin/ and $GOPATH/pkg/ dirs will persist across dockerized
builds.
2016-08-12 21:20:38 -07:00
Tim St. Clair
9abdf719b8
Add a verbosity concept to kubernetes scripts
The KUBE_VERBOSE environment variable sets the verbosity level to
use. Log messages can specify a verbosity by setting the V
variable. e.g.

    V=2 kube::log::info foo bar

Would only print "foo bar" if $KUBE_VERBOSE >= 2.
2016-08-04 22:01:22 -07:00
Madhusudan.C.S
31f5525f43 Revert "[Federation] Downsize the release binary distribution." 2016-08-01 23:54:09 -07:00
Madhusudan.C.S
5a3a84968b [Federation] Do not build separate binaries for federation control plane components, hyperkube should be sufficient. 2016-08-01 11:45:21 -07:00
Jay Vyas
6166083c78 kill repo-root : test/e2e/serviceloadbalancers.go
bindata and yaml, Gobindata automation
bindata utils for generating, go generate
match server version
gitignore for dirty, ca, rbase, KUBE_ROOT, buildfix
(rebased jul-25,29)
2016-07-29 14:35:19 -04:00
Mike Brown
6ca905ac37 adds source debug build options
Signed-off-by: Mike Brown <brownwm@us.ibm.com>
2016-07-13 11:01:30 -05:00
Tim Hockin
9613e15801 Make releases work 2016-07-12 21:52:54 -07:00
Tim Hockin
881e21c2d5 Link _output/bin/ to real binaries for this arch
This makes followup commits easier wrt finding binaries during build.
2016-07-12 21:52:00 -07:00
Wojciech Tyczynski
3686e55d37 Remove cmd/integration test 2016-07-04 13:07:12 +02:00
David McMahon
ef0c9f0c5b Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
k8s-merge-robot
337805d1a7 Merge pull request #27816 from spxtr/no-travis
Automatic merge from submit-queue

Remove all traces of travis.
2016-06-28 03:53:34 -07:00
k8s-merge-robot
ba7e0b4dad Merge pull request #27482 from quinton-hoole/2016-06-15-build-darwin-test-binaries-on-os-x
Automatic merge from submit-queue

Build Darwin test binaries on OS X when KUBE_FASTBUILD is set

Without this, on OS X, test binaries would not be built for the local ARCH, and test scripts fail with an obscure error due to not being able to find the correct binary to run.

This makes the behavior on OS X more consistent with Linux.

Tested on OS X and Linux.
2016-06-24 13:57:04 -07:00
Joe Finney
ab4a65c10a Remove all traces of travis. 2016-06-21 15:58:34 -07:00
Quinton Hoole
5c546a187b Build Darwin test binaries on OS X. 2016-06-15 14:42:04 -07:00
Lucas Käldström
9673ca16b2 Enable builds for all ppc64le binaries except hyperkube 2016-06-15 22:59:25 +03:00
k8s-merge-robot
421c12e69e Merge pull request #26458 from david-mcmahon/godep-version
Automatic merge from submit-queue

Check for a valid godep version.
2016-06-03 11:04:38 -07:00
David McMahon
d038c53c0b Check for a valid godep version. 2016-06-02 16:35:14 -07:00
Lucas Käldström
a46a1cdc12 Don't set the env var CC when not cross-compiling 2016-05-30 23:59:34 +03:00
Dr. Stefan Schimanski
a79a420fde Move shell completion generation into 'kubectl completion' command 2016-05-30 07:23:36 +02:00
Eric Paris
cd700ee3eb Merge pull request #26313 from nikhiljindal/fedServerDoc
federation: Adding a tool to generate docs for federation apiserver and controller manager
2016-05-26 23:09:51 -04:00
Colin Hom
a092fd2dd4 Federation build and e2e test integration
Federation components are now buildable and e2e-testable via e2e.go.
2016-05-25 15:07:27 -07:00
nikhiljindal
f98bda0b47 Adding a tool to generate federation docs 2016-05-25 15:04:20 -07:00
nikhiljindal
991eb753a2 Renaming federated-apiserver to federation-apiserver 2016-05-24 11:49:39 -07:00
k8s-merge-robot
0257f54a8c Merge pull request #24850 from madhusudancs/speedup-do-nothing
Automatic merge from submit-queue

Improve the speed of do-nothing build.

As @thockin found out here https://github.com/kubernetes/kubernetes/issues/24518, vast majority of the do-nothing build time is spent in rebuilding the test binaries. There is no staleness check support for test binaries.

This commit implements the staleness checks for test binaries and uses them while building packages.

On my workstation, do-nothing hack/build-go.sh time goes from ~20 secs to ~4 secs, of which only ~1 sec is from doing test binary staleness check now (as opposed to ~17 secs it took to build the test binaries before). I did some experiments to bring this time down to <1 sec. I measured using go test -bench, but it was not very useful in this case. I believe, a vast majority of that ~1 second is being spent in fork/exec and piping the results back to the staleness check program along with the ser-deser involved, but it needs to be validated. Not a proof, but to provide some supporting evidence to this claim, running `go list -f format packages` in the shell takes about 600ms irrespective of what's in the format.

Tests are TBD. I am still trying to figure out how to test this, but I would like to get early feedback

cc @mikedanese @mml
2016-05-22 10:33:04 -07:00
k8s-merge-robot
a503bb828a Merge pull request #24653 from gtank/go-devel-builds
Automatic merge from submit-queue

hack: allow devel builds of go

This is issue https://github.com/kubernetes/kubernetes/issues/6913. It seems reasonable that someone running a devel build is responsible for making sure it's a sane version.

<!-- Reviewable:start -->
---
This change is [<img src="http://reviewable.k8s.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](http://reviewable.k8s.io/reviews/kubernetes/kubernetes/24653)
<!-- Reviewable:end -->
2016-05-22 08:51:54 -07:00
Abhishek Shah
a92ea56024 added build stuff for kube-dns 2016-05-20 15:08:11 -07:00
Clayton Coleman
2c9b83f291 Disable ppc64le for now 2016-05-19 10:19:35 -04:00
George Tankersley
8b507d8cdc hack: allow devel builds of go 2016-05-16 11:06:21 -07:00
huangyuqi
21fe26bd07 remove the rs&subrs logic from cluster controller 2016-05-16 16:48:27 +08:00
Madhusudan.C.S
7e486bd777 Build and use the teststale binary on only the host platform. 2016-05-14 20:29:39 -07:00
Madhusudan.C.S
dd154350e8 Address review comments. 2016-05-13 23:09:44 -07:00
Madhusudan.C.S
dcaf005ffe Improve the speed of do-nothing build.
As thockin found out here https://github.com/kubernetes/kubernetes/issues/24518,
vast majority of the do-nothing build time is spent in rebuilding the test
binaries. There is no staleness check support for test binaries.

This commit implements the staleness checks for test binaries and uses them
while building packages.

Tests are TBD. I am still trying to figure out how to test this.
2016-05-13 23:09:44 -07:00
Tim Hockin
9a83015e60 Fix path munging funcs and usage
Our `realpath` and `readlink -f` functions (required only because of MacOS,
thanks Steve) were poor substitutes at best.  Mostly they were downright
broken.  This thoroughly overhauls them and adds a test (in comments, since we
don't seem to have shell tests).  For all the interesting cases I could think
of, the fakes act just like the real thing.

Then use those and canonicalize KUBE_ROOT.  In order to make recursive calls of
our shell tool not additively grow `pwd` we have to essentially make the
sourcing of init.sh idempotent.
2016-05-08 20:30:38 -07:00
Tim Hockin
527cb50583 Demand at least go1.6 2016-05-08 20:30:37 -07:00
Tim Hockin
cbf886c7f4 Convert everything to use vendor/ 2016-05-08 20:30:37 -07:00
nikhiljindal
aa4cdac005 hack/build-go tp build federation/cmd/federated-apiserver as well 2016-04-21 12:38:53 -07:00
k8s-merge-robot
d40bf503ed Merge pull request #24256 from porridge/fix-newlines
Automatic merge from submit-queue

Fix spacing in usage_from_stdin and info_from_stdin (issue #24186).

If "a" is a bash array, then the syntax to append the contents of $line as a
new element to the array is a+=("$line"), not messages+=$line

Using the former syntax just seems to append to the first element, creating a
long string and thus losing newline information.

Fixing this allows us to drop some empty lines from invocations of
usage_from_stdin.
2016-04-16 07:31:12 -07:00
Joe Finney
7179296e30
Move cmd/linkcheck to test targets. 2016-04-15 09:55:04 -07:00
k8s-merge-robot
ff1da7674d Merge pull request #24268 from wojtek-t/remove_old_conversions_generator
Automatic merge from submit-queue

Remove old conversion generator
2016-04-15 04:25:19 -07:00
Wojciech Tyczynski
89e860e622 Remove old conversion generator 2016-04-15 12:07:57 +02:00
Daniel Smith
f778cb3bc7 Merge pull request #24223 from tyangliu/generate-yaml-docs
Include genyaml in update/verify generated docs scripts
2016-04-14 16:22:03 -07:00
Marcin Owsiany
9ce855269e Fix spacing in usage_from_stdin and info_from_stdin (issue #24186).
If "a" is a bash array, then the syntax to append the contents of $line as a
new element to the array is a+=("$line"), not messages+=$line

Using the former syntax just seems to append to the first element, creating a
long string and thus losing newline information.

Fixing this allows us to drop some empty lines from invocations of
usage_from_stdin.
2016-04-14 18:19:02 +02:00
Lucas Käldström
4559a84d3b Build Kubernetes, etcd and flannel for arm64 and ppc64le 2016-04-14 07:29:10 +03:00
Thomas Liu
f4f04e2985 Include genyaml in update/verify generated docs scripts 2016-04-13 15:11:31 -07:00
Wojciech Tyczynski
ce9b2ab3e3 Remove old deep-copy generator. 2016-03-18 09:42:15 +01:00
Wojciech Tyczynski
947589607b Print go version when building release 2016-03-02 16:40:35 +01:00
k8s-merge-robot
cdf456af0e Merge pull request #21520 from mikedanese/fastbuild
Auto commit by PR queue bot
2016-02-28 07:23:22 -08:00
Phillip Wittrock
a3623c0c14 Refactor node e2e tests
- Add Makefile targets
- Start services in the test harness and connect locally
- Build test into binary and copy to remote host to start services
- Use tar to copy binaries to remote hosts to simplify design
2016-02-22 20:06:15 -08:00
Mike Danese
132c4271dc add linux fastbuild option to ./build/release.sh 2016-02-19 10:18:05 -08:00
Lucas Käldström
fa39730f0b Add test targets for ARM 2016-02-16 08:25:18 +02:00
Maisem Ali
1c6a223eaa Merge pull request #20865 from maisem/master
Adding a readiness probe to kubectl e2e tests.
2016-02-11 12:55:15 -08:00
Maisem Ali
4dfdb154fb Adding testing-manifests to the test tar ball 2016-02-09 14:09:26 -08:00
Lucas Käldström
c969c041e2 Add support for building arm, arm64 and ppc64le server and client targets 2016-02-07 20:35:14 +02:00
Tim Hockin
2052e334b6 mkdir in build when the output dir is needed 2016-02-06 21:14:20 -08:00
Lucas Käldström
ff9a3d3cb3 Build kubectl statically 2015-12-30 10:31:15 +02:00
Tim Hockin
0df07424e7 Make go version requirements clearer 2015-12-10 12:09:25 -08:00
Mike Danese
0655e65b43 fall back to old behavior when deciding mem availablity during build 2015-12-01 10:25:14 -08:00
Prashanth Balasubramanian
c553b15534 Ingress test revamp
Fixes a number of harder issues the initial test punted on.
2015-11-30 11:29:04 -08:00
k8s-merge-robot
777f24b6c5 Merge pull request #17629 from brendandburns/arm
Auto commit by PR queue bot
2015-11-26 06:01:04 -08:00
k8s-merge-robot
0dbadda69e Merge pull request #17330 from derekwaynecarr/free_mem
Auto commit by PR queue bot
2015-11-24 03:42:27 -08:00
Brendan Burns
d2dbe56820 Add linux/arm to the list of server builds 2015-11-23 13:55:56 -08:00
derekwaynecarr
a043f3c86e Parallel build logic should work against available memory, not total memory 2015-11-19 13:27:30 -05:00
Mike Danese
1d9d11c836 run kube-proxy in a static pod 2015-11-18 16:52:10 -08:00
feisky
13dce74adb Gendocs for docs/admin/kube-* 2015-10-25 19:24:23 +08:00
Isaac Hollander McCreery
a52fcc6f29 Add get-build to our packaged test files for upgrade-tests 2015-10-15 14:41:08 -07:00
jayvyas
c897798c27 Cleaning/Updating k8petstore dev tooling and build fixing, moving webserver to
main.go.  Replacing vagrant tooling with docker-machine.
2015-10-12 08:31:30 -04:00
gmarek
9a74980da2 Make kubemark work on Jenkins 2015-10-01 15:26:39 +02:00
gmarek
dd3bd73948 Initial Kubemark commit 2015-09-28 11:39:05 +02:00
Anastasis Andronidis
e27a76ae81 hack and hooks scripts for generating swagger docs 2015-08-22 02:27:41 +02:00
Mike Danese
fa40ced8f8 move contrib/for-tests to test/images 2015-08-14 20:42:46 -07:00
Tim Hockin
bef7c99619 Remove old 'kubernetes' cmd 2015-08-08 20:39:57 -07:00
Alex Crawford
79f14822a9 Plumb linker flags through from the Makefile 2015-08-05 20:42:54 -07:00
Mike Danese
fb02b33e99 fix build 2015-08-05 17:52:56 -07:00
Mike Danese
b56edd1355 Merge pull request #11727 from ZJU-SEL/build-nonstatic-hyperkube
build hyperkube as a nonstatic binary
2015-07-31 15:46:04 -07:00
Mike Danese
0ae48c449e Merge pull request #11927 from wojtek-t/remove_shell_services
Remove shell services test
2015-07-30 09:56:38 -07:00
Joe Beda
55e4941c5e Fix up memory requirements for release w/ boot2docker. 2015-07-29 13:13:59 -07:00
Wojciech Tyczynski
b69ef7b5ca Remove shell services test 2015-07-28 17:14:18 +02:00
Chao Xu
464385281b add a tool in cmd/ to check links in go file. Currently it's only used to check the links in api descriptions (pkg/api/.../types.go). 2015-07-24 20:21:16 -07:00
Mike Danese
01ee1b8634 Merge pull request #10840 from jbeda/master
Fix up check for min memory for parallel builds
2015-07-24 08:02:33 -07:00
He Simei
a210a96f5f build hyperkube as a nonstatic binary 2015-07-23 09:18:08 +08:00
Eric Tune
c51e35e835 Support for in-place modification of docs
Adds cmd/mungedocs which is framework for processing
all files under docs/ and either verifying that no changes needed or
making in-place changes.

Did not reuse kube::util::gen-docs because that seemed to be
centered around handling added files, and this pass does not
add files.

Planned uses:
 - table of contents automatic updating
 - linkification
 - internal link checker
 - link-path-relativizer or absolutizer
 - example file syncer
 - header inserter.

Just table-of-contents updating in this PR.

Added Table of Contents to docs/networking.md.

Demonstrates use of new TOC generator presubmit.
Other docs will be added in future PRs.
Additional development will be needed to handle some
of the more complex cases.
2015-07-08 14:58:54 -07:00
Joe Beda
6c4ae61f6b Fix up check for min memory for parallel builds 2015-07-07 10:14:23 -07:00
James DeFelice
91238f8b44 Make building contrib code optional 2015-06-10 20:30:10 +00:00
Daniel Smith
6e95388672 allow kubectl to be built statically
* Package kubectl in a container
* Add example with a pod using kubectl as a sidecar
2015-06-03 15:41:09 -07:00
Tim Hockin
a3d5367156 Merge pull request #8765 from eparis/hack-test-failure
Fix build with --use_go_build (e2e.test failure)
2015-05-27 12:43:04 -07:00
Wojciech Tyczynski
b2280db724 Deep-copy functions autogeneration. 2015-05-26 21:16:26 +02:00
Eric Paris
d8187e26d3 Fix build with --use_go_build (e2e.test failure)
hack/build-go.sh --use_go_build would fail because e2e.test was not being
excluded from the set of things that we were "go build"ing

Instead of walking all binaries, only walk static and nonstatic
```
$ hack/build-go.sh
+++ [0524 18:09:51] Building go targets for linux/amd64:
    cmd/kube-proxy
    cmd/kube-apiserver
    cmd/kube-controller-manager
    cmd/kubelet
    cmd/hyperkube
    cmd/kubernetes
    plugin/cmd/kube-scheduler
    cmd/kubectl
    cmd/integration
    cmd/gendocs
    cmd/genman
    cmd/genbashcomp
    examples/k8petstore/web-server
    github.com/onsi/ginkgo/ginkgo
    test/e2e/e2e.test
+++ [0524 18:09:51] +++ Warning: stdlib pkg with cgo flag not found.
+++ [0524 18:09:51] +++ Warning: stdlib pkg cannot be rebuilt since /usr/lib/golang/pkg is not writable by eparis
+++ [0524 18:09:51] +++ Warning: Make /usr/lib/golang/pkg writable for eparis for a one-time stdlib install, Or
+++ [0524 18:09:51] +++ Warning: Rebuild stdlib using the command 'CGO_ENABLED=0 go install -a -installsuffix cgo std'
+++ [0524 18:09:51] +++ Falling back to go build, which is slower
    **************can't load package: package github.com/GoogleCloudPlatform/kubernetes/test/e2e/e2e.test: cannot find package "github.com/GoogleCloudPlatform/kubernetes/test/e2e/e2e.test" in any of:
    /usr/lib/golang/src/github.com/GoogleCloudPlatform/kubernetes/test/e2e/e2e.test (from $GOROOT)
    /storage/kubernetes/_output/local/go/src/github.com/GoogleCloudPlatform/kubernetes/test/e2e/e2e.test (from $GOPATH)
    /storage/kubernetes/Godeps/_workspace/src/github.com/GoogleCloudPlatform/kubernetes/test/e2e/e2e.test
!!! Error in /storage/kubernetes/hack/lib/golang.sh:339
  'go build -o "${outfile}" "${goflags[@]:+${goflags[@]}}" -ldflags "${version_ldflags}" "${binary}"' exited with status 1
Call stack:
  1: /storage/kubernetes/hack/lib/golang.sh:339 kube::golang::build_binaries_for_platform(...)
  2: /storage/kubernetes/hack/lib/golang.sh:488 kube::golang::build_binaries(...)
  3: hack/build-go.sh:26 main(...)
Exiting with status 1
!!! Error in /storage/kubernetes/hack/lib/golang.sh:406
  '( kube::golang::setup_env; local version_ldflags; version_ldflags=$(kube::version::ldflags); local host_platform; host_platform=$(kube::golang::host_platform); local goflags; eval "goflags=(${KUBE_GOFLAGS:-})"; local use_go_build; local -a targets=(); local arg; for arg in "$@";
do
    if [[ "${arg}" == "--use_go_build" ]]; then
        use_go_build=true;
    else
        if [[ "${arg}" == -* ]]; then
            goflags+=("${arg}");
        else
            targets+=("${arg}");
        fi;
    fi;
done; if [[ ${#targets[@]} -eq 0 ]]; then
    targets=("${KUBE_ALL_TARGETS[@]}");
fi; local -a platforms=("${KUBE_BUILD_PLATFORMS[@]:+${KUBE_BUILD_PLATFORMS[@]}}"); if [[ ${#platforms[@]} -eq 0 ]]; then
    platforms=("${host_platform}");
fi; local binaries; binaries=($(kube::golang::binaries_from_targets "${targets[@]}")); local parallel=false; if [[ ${#platforms[@]} -gt 1 ]]; then
    local gigs; gigs=$(kube::golang::get_physmem); if [[ ${gigs} -gt ${KUBE_PARALLEL_BUILD_MEMORY} ]]; then
        kube::log::status "Multiple platforms requested and available ${gigs}G > threshold ${KUBE_PARALLEL_BUILD_MEMORY}G, building platforms in parallel"; parallel=true;
    else
        kube::log::status "Multiple platforms requested, but available ${gigs}G < threshold ${KUBE_PARALLEL_BUILD_MEMORY}G, building platforms in serial"; parallel=false;
    fi;
fi; if [[ "${parallel}" == "true" ]]; then
    kube::log::status "Building go targets for ${platforms[@]} in parallel (output will appear in a burst when complete):" "${targets[@]}"; local platform; for platform in "${platforms[@]}";
    do
        ( kube::golang::set_platform_envs "${platform}"; kube::log::status "${platform}: go build started"; kube::golang::build_binaries_for_platform ${platform} ${use_go_build:-}; kube::log::status "${platform}: go build finished" ) &> "/tmp//${platform//\//_}.build" &
    done; local fails=0; for job in $(jobs -p);
    do
        wait ${job} || let "fails+=1";
    done; for platform in "${platforms[@]}";
    do
        cat "/tmp//${platform//\//_}.build";
    done; exit ${fails};
else
    for platform in "${platforms[@]}";
    do
        kube::log::status "Building go targets for ${platform}:" "${targets[@]}"; kube::golang::set_platform_envs "${platform}"; kube::golang::build_binaries_for_platform ${platform} ${use_go_build:-};
    done;
fi )' exited with status 1
Call stack:
  1: /storage/kubernetes/hack/lib/golang.sh:406 kube::golang::build_binaries(...)
  2: hack/build-go.sh:26 main(...)
Exiting with status 1
```
2015-05-24 19:16:26 -04:00
Tim Hockin
76a0a7dff2 Shush minor stdout noise on builds 2015-05-19 11:24:44 -07:00
Jeff Grafton
90f61f3005 Change into the output directory before running go test -c. 2015-05-19 10:04:27 -07:00
Jeff Grafton
bf1de72f4a Revert "Revert "Use native Ginkgo test runner instead of cmd/e2e (attempt N)""
This reverts commit f4bb6aa37d.
2015-05-19 09:13:08 -07:00
Quinton Hoole
f4bb6aa37d Revert "Use native Ginkgo test runner instead of cmd/e2e (attempt N)" 2015-05-18 21:04:26 -07:00
Jeff Grafton
35c4b92e92 Make e2e compatible with Go 1.3 and OS X.
Go 1.4 added the -o flag to the "go test" command as well as support for
the TestMain() function, so we must work around these not existing in
Go 1.3.

The version of readlink on OS X does not have the -f flag - so we'll
just skip canonicalizing the path.
2015-05-18 12:11:33 -07:00
Jeff Grafton
b79fae5d71 Revert "Revert "Once again, use native Ginkgo test runner instead of cmd/e2e.""
This reverts commit 67da1ac0c8.
2015-05-18 11:39:21 -07:00
Jeff Grafton
67da1ac0c8 Revert "Once again, use native Ginkgo test runner instead of cmd/e2e."
This change broke compilation on go 1.3 and running e2e tests on OS X.

This reverts commit 86b023fdd6.
2015-05-15 16:41:55 -07:00
Jeff Grafton
86b023fdd6 Once again, use native Ginkgo test runner instead of cmd/e2e.
This commit deletes cmd/e2e and updates hack/ginkgo-e2e.sh to use the
'ginkgo' command instead. All logic from cmd/e2e/e2e.go and
test/e2e/driver.go have been combined into the new file
test/e2e/e2e_test.go.

The test tarball now includes a built version of the test/e2e test
binary, which includes all tests under test/e2e. This was accomplished
by updating the build scripts to use 'go test -c' when a target name
ended with '.test', and adding a dependency on test/e2e/e2e.test.

This prebuilt test binary is passed to the Ginkgo runner in
hack/ginkgo-e2e.sh. In a future change, we can add support to run
Ginkgo against the source tree if it is available.

This change is generally intended to have no externally visible changes,
aside from the following caveats:
 - The -t/--tests flag has been removed
 - Calling cmd/e2e/e2e directly obviously won't work, but that was never
   intended to be supported anyway
 - If the GINKGO_PARALLEL environment variable is set to y, then ginkgo
   will run test specs in parallel. (Currently defaults to n, since some
   tests are broken in this mode.)

Additionally, several tests which made poor assumptions about cwd or
used testContext before it had been set have been fixed.
2015-05-15 11:54:53 -07:00
Kenjiro Nakayama
4c9f2d89ba Add genbashcomp to KUBE_TEST_TARGETS 2015-05-05 16:42:23 +09:00
Eric Paris
6b3a6e6b98 Make copyright ownership statement generic
Instead of saying "Google Inc." (which is not always correct) say "The
Kubernetes Authors", which is generic.
2015-05-01 17:49:56 -04:00
Jeff Grafton
1359125a4e Build github.com/onsi/ginkgo/ginkgo as a part of the release.
Additionally, add hack/lib to the testing tarball.
2015-05-01 11:29:11 -07:00
Quinton Hoole
bfaf976df7 Revert "Use native Ginkgo test runner instead of cmd/e2e" 2015-04-30 13:45:46 -07:00
Jeff Grafton
57750ccb51 Use native Ginkgo test runner instead of cmd/e2e.
This commit deletes cmd/e2e and updates hack/ginkgo-e2e.sh to use the
'ginkgo' command instead. All logic from cmd/e2e/e2e.go and
test/e2e/driver.go have been combined into the new file
test/e2e/e2e_test.go.

Additionally, several tests which made poor assumptions about cwd or
used testContext before it was set have been fixed.

This change is generally intended to have no externally visible changes,
aside from the following caveats:
- The -t/--tests flag has been removed
- Calling cmd/e2e/e2e directly obviously won't work, but that was never
  supported anyway
- If the GINKGO_PARALLEL environment variable is set to y, then ginkgo
  will run test specs in parallel. (Currently defaults to n, since some
  tests are broken in this mode.)
2015-04-28 18:42:37 -07:00
Alex Robinson
79b9b1b0ef Build hyperkube into a static binary. 2015-04-28 02:13:09 +00:00
Eric Paris
2915c90200 Remove -installsuffix from go build
This is a go install argument which has no use in go build. Clean it up.
2015-04-17 15:33:00 -04:00
Eric Paris
d7fefb6f39 Indicate progress when doing a go build
It is slow.
2015-04-17 15:32:26 -04:00
Eric Paris
5fb8602c65 fall back to go build when static cgo not possible
Instead of just failing, use go build if people don't have the magic cgo
stuff we need build-able/write-able.
2015-04-17 09:50:54 -04:00
Zach Loafman
c0ed73a10d Only build in parallel if the build machine is >8G 2015-04-02 17:56:45 -07:00
Zach Loafman
e159c02a2a Completely neutral commit that just factors each platform build out to
a function (to make it kinder on reviewers for the next piece).
2015-04-02 17:56:44 -07:00
Zach Loafman
04813f0dcd Revert "Revert "Parallelize architectures in both the building and packaging phases of make release""
This reverts commit 9f60dde320.
2015-04-02 17:56:44 -07:00
Zach Loafman
9f60dde320 Revert "Parallelize architectures in both the building and packaging phases of make release" 2015-04-02 08:49:11 -07:00
Zach Loafman
0bbf4e99f6 Re tab-ify golang.sh 2015-04-01 17:31:15 -07:00
Zach Loafman
44b4c9ff26 Parallelize architectures in "make release"
On my desktop, this took the KUBE_RELEASE_RUN_TESTS=n
"make release" down from 172s to 115s
2015-04-01 17:29:22 -07:00
Tim Hockin
005da75f4a Make the build faster - call 'go install' once 2015-04-01 10:10:27 -07:00
Paul Morie
fdae6748d2 Fix typo in std install instructions for build 2015-03-31 17:36:47 -04:00
Abhishek Shah
745368d6b2 Nicer error msg if stdlib pkg with cgo flag is not installed 2015-03-31 08:37:33 -07:00
Abhishek Shah
9a901ed46d build kube-apiserver, kube-scheduler and kube-controller-manager statically. 2015-03-17 16:03:31 -07:00
Brendan Burns
60b2b5d5b4 Merge pull request #5447 from jayunit100/k8petstore
K8petstore
2015-03-17 07:28:30 -07:00
Jeff Lowdermilk
404b20e6b8 Add dependencies for k8petstore to Godeps
Cleanup k8petstore to use Godeps dependencies, add to hack/build-go.sh
Remove trailing spaces, README
2015-03-17 07:06:01 -04:00
Victor Marmol
d7a7d4da08 Revert #5479, don't force no cgo.
We allow cgo when available since some of our server components (mainly
Kubelet) rely on it. The current driving factor for the static binaries
was building Docker images from scratch. We will instead use images
built from small busybox bases.

Fixes #5517
2015-03-16 16:03:46 -07:00
Tim Hockin
dab2d1a14b Merge pull request #5420 from vmarmol/cross
Make "kubernetes" a server binary.
2015-03-16 14:29:51 -07:00
Abhishek Shah
4b24aa2d7f Build statically linked binaryies. With the change to go 1.4, we probably were generating dynamically linked binaries accidentally. 2015-03-13 23:33:10 -07:00
Victor Marmol
adbc8e2f9c Make "kubernetes" a server binary.
It includes many of the server components which we only expect to be
able to build in the server target architectures, but it is included in
the client build targets.
2015-03-12 17:37:56 -07:00