Commit Graph

367 Commits (63930183e023492671817c5e33e5b80f1738ae2d)

Author SHA1 Message Date
Robert Bailey 5f4f59e671 Merge pull request #24950 from andyzheng0831/apiserver
GCI/Trusty: Support ABAC authorization
2016-05-06 13:59:39 -07:00
Robert Bailey aa24694c60 Merge pull request #24662 from soltysh/protobuf_selinux
Fix SELinux settings for mounted volumes
2016-05-06 13:36:16 -07:00
Mike Danese 3e1c0b5951 run kube-addon-manager in a pod 2016-05-06 11:01:06 -07:00
Doug Davis 9323760399 Add a better error message to run.sh
I ran build/run.sh w/o any args (by mistake) and it just said
   `Invalid input.`
after several other steps. I had no idea whether I was doing something
wrong or if my env was busted. Clearly, I just forget to include the
command that run.sh was to invoke in the Docker container.  But it took
me time to go track down where this error came from and why. So to help
others I just tweaked the error message to be:
   `Invalid input - please specify a command to run.`

Very minor thing,I know, but if it helps others...

Signed-off-by: Doug Davis <dug@us.ibm.com>
2016-05-05 13:43:14 -07:00
k8s-merge-robot c79c5864e7 Merge pull request #25051 from spxtr/fix-1.6.2
Automatic merge from submit-queue

Use v1.6.2-1 tag for build.

Is there any reason these don't use the VERSION file like everything else? cc @luxas @ixdy
2016-05-05 03:36:27 -07:00
Jeff Grafton 0f041382ee Use HOSTNAME in Docker build image tag hash
Additionally, use REPO_DIR in update-generated-protobuf, since this
should be more unique (when set).
2016-05-02 16:03:27 -07:00
Joe Finney f128b30318 Use v1.6.2-1 tag for build. 2016-05-02 14:43:06 -07:00
Morgan Bauer b8987ba28a
improve the osx build experience
- give the docker-machine VM more memory and access to all CPU cores
 - make DOCKER_MACHINE_NAME not readonly beacuse it is set by docker-machine
 - redirect stderr to ignore unhelpful error messages
 - unquote 'docker-machine create' argument
2016-04-29 10:26:22 -07:00
Andy Zheng 27c9ee3646 GCI/Trusty: Support ABAC authorization 2016-04-28 14:04:28 -07:00
Isaac Hollander McCreery a9c004640e build/push-official-release.sh checks if proper account is active, not just present 2016-04-28 10:55:46 -07:00
Andy Zheng 93929c3853 Add support for running clusters on GCI 2016-04-27 15:24:21 -07:00
Maciej Szulik 5761b4a8bd Fix SELinux settings for mounted volumes 2016-04-27 17:45:04 +02: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 3b2aae809f Merge pull request #22573 from freehan/udpproxy
Automatic merge from submit-queue

Flush conntrack state for removed/changed UDP Services

fixes: #19029
2016-04-19 21:06:45 -07:00
k8s-merge-robot 16e2e87a89 Merge pull request #23605 from mikedanese/pause-kube
Automatic merge from submit-queue

don't ship kube-registry-proxy and pause images in tars.

pause is built into containervm. if it's not on the machine we should just pull
it. nobody that I'm aware of uses kube-registry-proxy and it makes build/deployment
more complicated and slower.
2016-04-15 00:26:20 -07:00
Lucas Käldström 4559a84d3b Build Kubernetes, etcd and flannel for arm64 and ppc64le 2016-04-14 07:29:10 +03:00
Minhan Xia 4fa6f3841a fixing dead endpoint black hole udp traffic 2016-04-13 10:20:02 -07:00
k8s-merge-robot af1803bfb9 Merge pull request #23763 from david-mcmahon/build-regex
Automatic merge from submit-queue

Fix valid CI version regex in parse_and_validate_release_version().

Ref: #23759
cc @ihmccreery
2016-04-12 05:19:55 -07:00
k8s-merge-robot 4f329516ae Merge pull request #22149 from luxas/onedotsix
Automatic merge from submit-queue

Up to golang 1.6

A second attempt to upgrade go version above `go1.4`
Merge ASAP after you've cut the `release-1.2` branch and feel ready.
`go1.6` should perform slightly better than `go1.5`, so this time it might work
@gmarek @wojtek-t @zmerlynn @mikedanese @brendandburns @ixdy @thockin
2016-04-05 13:26:18 -07:00
Mike Danese 32426d6e97 don't ship kube-registry-proxy and pause in tars.
pause is built into containervm. if it's not on the machine we should just pull
it. nobody that I'm aware of uses kube-registry-proxy and it makes build/deployment
more complicated and slower.
2016-04-05 07:32:07 -07:00
k8s-merge-robot b8d000853e Merge pull request #21617 from luxas/hyperkube_for_arm
Automatic merge from submit-queue

Cross-build hyperkube and debian-iptables for ARM. Also add a flannel image

We have to be able to build complex docker images too on `amd64` hosts.
Right now we can't build Dockerfiles with `RUN` commands when building for other architectures e.g. ARM.

Resin has a tutorial about this here: https://resin.io/blog/building-arm-containers-on-any-x86-machine-even-dockerhub/
But it's a bit clumsy syntax.

The other alternative would be running this command in a Makefile:
```
# This registers in the kernel that ARM binaries should be run by /usr/bin/qemu-{ARCH}-static
docker run --rm --privileged multiarch/qemu-user-static:register --reset
```
and 
```
ADD https://github.com/multiarch/qemu-user-static/releases/download/v2.5.0/x86_64_qemu-arm-static.tar.xz /usr/bin
```
Then the kernel will be able to differ ARM binaries from amd64. When it finds a ARM binary, it will invoke `/usr/bin/qemu-arm-static` first and lets `qemu` translate the ARM syscalls to amd64 ones.
Some code here: https://github.com/multiarch

WDYT is the best approach? If registering `binfmt_misc` in the kernels of the machines is OK, then I think we should go with that.
Otherwise, we'll have to wait for resin's patch to be merged into mainline qemu before we may use the code I have here now.

@fgrzadkowski @david-mcmahon @brendandburns @zmerlynn @ixdy @ihmccreery @thockin
2016-04-04 22:03:32 -07:00
Lucas Käldström 560268e036 Add a flannel image for arm and amd64. Cross-build debian-iptables for arm, arm64 and ppc64le. Build and push hyperkube for arm on every release 2016-04-04 23:33:32 +03:00
David McMahon c7c7d6c0aa Fix valid CI version regex in kube::release::parse_and_validate_release_version(). 2016-04-04 12:14:15 -07:00
David McMahon a7b789cb0a Honor incoming OUT_DIR from the Makefile. 2016-03-28 16:34:07 -07:00
Lucas Käldström 2928d0a8ec Up to golang 1.6 2016-03-27 17:17:04 +03:00
Andy Zheng 0a8e68fb49 Trusty: Avoid reaching GCE custom metadata size limit 2016-03-20 10:22:50 -07:00
zhouhaibing089 884fbf3d22 only pull addon images when it does not exist 2016-03-17 10:52:32 +08:00
k8s-merge-robot 2bb7960b61 Merge pull request #22738 from wojtek-t/build_protobufs_in_docker
Auto commit by PR queue bot
2016-03-15 16:56:26 -07:00
Wojciech Tyczynski 52798beef2 Generate protobuf-related files in Docker 2016-03-09 10:45:24 +01:00
mfanjie d433632cd2 add proxy settings for vagrant 2016-03-07 09:57:26 +08:00
Andy Zheng 242b9977c7 Remove manifest copies from Trusty support
This change revises the way to provide kube-system manifests for clusters on Trusty. Originally, we maintained copies of some manifests under cluster/gce/trusty/kube-manifests, which is not scalable and hard to maintain. With this change, clusters on Trusty will use the same source of manifests as ContainerVM. This change also fixes some minor problems such as shell variables and comments to meet the style guidance better.
2016-03-04 11:16:49 -08:00
David McMahon 7a54cb2ad0 Add Godeps/LICENSES to server tarball. 2016-03-02 11:23:32 -08:00
k8s-merge-robot 6dbdcfe78f Merge pull request #22116 from david-mcmahon/license-tool
Auto commit by PR queue bot
2016-03-02 07:14:40 -08:00
David McMahon ffeaef6201 New Godeps LICENSE generation tool.
Includes initial Godeps/LICENSES and Godeps/.license_file_state file to ensure
fast local generation.
2016-03-01 18:16:09 -08: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
Filip Grzadkowski 6f6cb45638 Make #19601 backward compatible.
Fixes #20047
2016-02-25 14:24:51 +01:00
David McMahon b24fc293e3 Merge pull request #21557 from luxas/fix_typo
Do not push images that don't exist
2016-02-19 11:56:21 -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 bfc9cfdb82 Do not push images that don't exist 2016-02-19 18:45:14 +02:00
k8s-merge-robot 4de373aafd Merge pull request #20714 from fgrzadkowski/push_gcr
Auto commit by PR queue bot
2016-02-18 23:31:13 -08:00
Phillip Wittrock 5fe856c749 Merge pull request #20882 from mikedanese/push-kube-cross
push kube-cross to gcr.io
2016-02-18 16:26:29 -08:00
Filip Grzadkowski 2c51e03759 Switch to k8s.production.user@gmail.com for pushing docker images during the release.
Fixes #19623
2016-02-18 20:15:02 +01:00
laushinka 7ef585be22 Spelling fixes inspired by github.com/client9/misspell 2016-02-18 06:58:05 +07:00
Mike Danese f3b9fa62d6 push kube-cross to gcr.io
And do as much of the build setup work in it as possible.
2016-02-16 10:05:46 -08:00
k8s-merge-robot 62258cab24 Merge pull request #21031 from zmerlynn/distribute-source
Auto commit by PR queue bot
2016-02-14 11:12:18 -08:00
Lucas Käldström b67445b064 Share the host's timezone with the build container 2016-02-11 07:44:05 +02:00
Zach Loafman b857f61009 Output tar of build image during release process
To meet licensing/compliance guidelines, bundle up the source. One of
the easiest ways to do this is just to grab the entire build image
directory - this makes it pretty much guaranteed that the user could
re-run the Docker build again from the exact code point if they wanted
to (they just need to poke at our scripts to figure out how).
2016-02-10 18:04:04 -08:00
k8s-merge-robot fc3316ee1b Merge pull request #20398 from mfanjie/mfanjie-patch-1
Auto commit by PR queue bot
2016-02-09 22:55:18 -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
fmeng aaea05980c change sed_opts as array 2016-02-06 16:49:35 +08:00
Daniel Smith 75c1dcaacd Merge pull request #20463 from andyzheng0831/trusty-master
Support master on Ubuntu Trusty
2016-02-05 15:49:28 -08:00
fmeng ef42dad78e update proxy settings for kubernetes build. 2016-02-04 17:38:07 +08:00
Zach Loafman e87b93f1b8 KUBE_BUILD_GOLANG_VERSION=1.4.2 2016-02-03 11:46:03 -08:00
Andy Zheng b103f0f279 Support master on Ubuntu Trusty
This change support running kubernetes master on Ubuntu Trusty.
It uses pure cloud-config and shell scripts, and completely gets
rid of saltstack or the release salt tarball.
2016-02-03 11:22:28 -08:00
fmeng 368fb2225c fix sed error in build/common.sh 2016-01-29 10:45:50 +08:00
k8s-merge-robot a95f1b84cb Merge pull request #17243 from yifan-gu/gce_coreos
Auto commit by PR queue bot
2016-01-27 13:02:20 -08:00
Zach Loafman 07c304b43d build: Use Go version in cross image tag
The new tag format is cross-<go version>-<cross version>, starting
with cross-1.5.3-1.

Also bump the image we pre-pull / warn-on to 1.5.3

Fixes #19990
2016-01-22 11:45:41 -08:00
Yifan Gu 723402c4e9 build/common.sh: Copy manifests. 2016-01-21 16:32:15 -08:00
Alex Mohr e98fb3c424 Merge pull request #19810 from spiffxp/empty-docker-opts-cp
Support building on remote docker-machine instances
2016-01-21 14:30:57 -08:00
Alex Mohr ae56a2a1d5 Merge pull request #19555 from spiffxp/verify-prereqs-noargs
verify_prereqs doesn't special-case on 'clean' arg
2016-01-21 10:43:41 -08:00
Isaac Hollander McCreery 041f152e80 Add flag to force pull on docker build 2016-01-20 09:14:57 -08:00
Aaron Crickenberger d46a97224a Support building on remote docker-machine instances
Use case: I have a docker-machine instance in the cloud, and an empty
DOCKER_OPTS env var.  I want to `build/run.sh hack/build-go.sh`

Previously, this would invoke `docker '' cp` which was erroring out
with: '' not a command.
2016-01-18 17:44:23 -08:00
Mike Danese c446bf508e Merge pull request #19431 from spiffxp/docker-machine-rm-hardcode
Allow for use of docker-machine not named kube-dev
2016-01-14 13:46:10 -08:00
Aaron Crickenberger 4488f7d33c verify_prereqs doesn't special-case on 'clean' arg
update docs and invocation accordingly
2016-01-12 11:26:59 -08:00
k8s-merge-robot cc7acc0c58 Merge pull request #19061 from fgrzadkowski/release_docker
Auto commit by PR queue bot
2016-01-11 20:56:00 -08:00
k8s-merge-robot ce9b117a19 Merge pull request #16698 from mml/issue3885
Auto commit by PR queue bot
2016-01-09 13:38:41 -08:00
Aaron Crickenberger 5062197ec6 Allow for use of docker-machine not named kube-dev 2016-01-08 17:07:48 -08:00
Matt Liggett c6e9ad066e Initial node drain implementation for #3885.
It cordons (marks unschedulable) the given node, and then deletes every
pod on it, optionally using a grace period.  It will not delete pods
managed by neither a ReplicationController nor a DaemonSet without the
use of --force.

Also add cordon/uncordon, which just toggle node schedulability.
2016-01-06 17:28:18 -08:00
Andy Zheng d27e3ae8a1 Run kube-proxy in Trusty in a static pod.
We copy the manifest from salt configurations, and then remove the salt
content in the file and replace the variables with values.
2016-01-05 16:11:58 -08:00
Filip Grzadkowski e7e8c5af84 Push docker images for cluster components during release. 2016-01-05 12:36:10 +01:00
Mike Danese c00dfe82f8 Revert "Push server docker images during the release" 2015-12-22 19:59:56 -08:00
k8s-merge-robot 78b573e803 Merge pull request #18893 from fgrzadkowski/release_docker
Auto commit by PR queue bot
2015-12-22 16:54:18 -08:00
k8s-merge-robot 3f91f18a55 Merge pull request #18488 from yifan-gu/dockerized_python
Auto commit by PR queue bot
2015-12-19 10:52:15 -08:00
Yifan Gu 516032f336 kube-addons: Use python container if python is not found on the machine.
To build the python image, BUILD_PYTHON_IMAGE should be set during make.
When the addon script is running, it will check if python is installed
on the machine, if not, it will use the python image that built previously.
2015-12-18 15:14:56 -08:00
Filip Grzadkowski f6fce5cd43 Push docker images during the release. 2015-12-18 16:08:44 +01:00
Andy Zheng 75e23a3845 Add release support for trusty kube-system manifests.
This is a follow-up work for PR 18115. It adds release support for
kube-system manifests.
2015-12-10 10:47:01 -08:00
k8s-merge-robot ac65782e03 Merge pull request #17121 from mikedanese/kube-proxy-static
Auto commit by PR queue bot
2015-11-20 07:19:26 -08:00
k8s-merge-robot c8d2ec6ffd Merge pull request #16919 from ihmccreery/enable-prerelease-push-official-release
Auto commit by PR queue bot
2015-11-20 06:47:23 -08:00
Isaac Hollander McCreery 2fad9a1271 Use env variables instead of BASH_REMATCH for parse_and_validates 2015-11-19 09:51:51 -08:00
Isaac Hollander McCreery 58eaa33979 Enable push-official-version to deal with prereleases 2015-11-19 09:51:51 -08:00
Mike Danese 1d9d11c836 run kube-proxy in a static pod 2015-11-18 16:52:10 -08:00
Mike Danese ae05eed14a add a way to discover git version from a built release 2015-11-18 11:11:50 -08:00
k8s-merge-robot 840f3dad53 Merge pull request #16960 from andyzheng0831/trusty
Auto commit by PR queue bot
2015-11-17 01:21:15 -08:00
k8s-merge-robot b250006e65 Merge pull request #17194 from mikedanese/configure-baseimage
Auto commit by PR queue bot
2015-11-16 13:48:49 -08:00
Matt Moore b750d1dddc Drop the beta for GCR v2 images.
beta.gcr.io is no longer needed to pull through v2.
2015-11-14 12:19:02 -08:00
Andy Zheng 5ca070478e Refactor cluster/gce/trusty/node.yaml
The node.yaml has some logic that will be also used by the kubernetes
master on trusty work (issue #16702). This change moves the code
shared by the master and node configuration to a separate script, and
the master and node configuration can source it to use the code.
Moreover, this change stages the script for GKE use.
2015-11-13 16:46:55 -08:00
Mike Danese d68c36a268 all wrapped binaries to use a configurable image as the base image 2015-11-13 08:58:31 -08:00
Matt Liggett d9a178915a Make verify-generated-docs work inside docker.
Add a few missing files to the docker tarball.
2015-11-05 16:59:21 -08:00
Isaac Hollander McCreery eaefc11df9 Fix beta versioning for build/push_ci_build.sh 2015-11-04 13:24:17 -08:00
k8s-merge-robot a3f2ba2e34 Merge pull request #11694 from ncdc/add-spdy-proxy-support
Auto commit by PR queue bot
2015-10-15 06:56:15 -07:00
Steve Milner 57fc4bfa56 build: test/images in test tar and a static kubectl
* release tar now includes test/images/*
* kubectl is now built as a static binary in the test
2015-10-14 09:42:04 -04:00
Isaac Hollander McCreery 5ac539abd5 Implement branched/versioned ci publishing to GCS. 2015-10-13 14:35:58 -07:00
k8s-merge-robot 8580804f77 Merge pull request #15138 from mattmoor/limited-beta-rewrite
Auto commit by PR queue bot
2015-10-10 11:41:34 -07:00
Isaac Hollander McCreery ec43cb0ed0 Make latest.txt files non-cacheable 2015-10-08 11:29:18 -07:00
Matt Moore eeb4eeb17c Move pause and fluentd-elasticsearch to GCR v2.
This scopes down the initially ambitious PR:
https://github.com/kubernetes/kubernetes/pull/14960 to replace just
`pause` and `fluentd-elasticsearch` to come through `beta.gcr.io`.

The v2 versions have been pushed under new tags, `pause:2.0` and
`fluentd-elastisearch:1.12`.

NOTE: `beta.gcr.io` will still serve images using v1 until they are repushed with v2.  Pulls through `gcr.io` will still work after pushing through `beta.gcr.io`, but will be served over v1 (via compat logic).
2015-10-06 16:39:07 -07:00
Isaac Hollander McCreery 9e61f8d632 Use kube::release::gcs::publish_latest_official logic in mark-stable-release.sh and add quote fixups, fixes #14785; implement major- and minor-pinned version releases, fixes #14920 2015-10-06 09:17:48 -07:00
JanetKuo a7cd53bc7e Distribute kubectl bash completion file with kubernetes binaries 2015-09-10 14:25:39 -07:00
Kel Cecil 12647523d2 Fix docker-machine typo in daemon help 2015-08-28 13:33:57 -04:00
Kel Cecil 60905867f1 Refactor to use docker-machine or boot2docker 2015-08-26 17:33:02 -04:00
Andy Zheng 94896d1340 Stage trusty/node.yaml for GKE use 2015-08-24 11:04:57 -07:00
Muhammed Uluyol 3dc10a209b Use gcr.io for proxy image 2015-08-21 13:32:08 -07:00
Muhammed Uluyol 7129d477d3 Launch a cluster-local registry.
This registry can be accessed through proxies that run on each node
listening on port 5000. We send the proxy images to the nodes directly
to avoid requests that hit the network during cluster launch. For now,
we continue to pull the registry itself over the network, especially
given its large size (we should be able to dramatically shrink the
image). On GCE we create a PD and use that for storage, otherwise we
use an emptyDir. The registry is not enabled outside of GCE. All
communication is currently plain HTTP. In order to use SSL, we will
need to be able to request a certificate/key from the apiserver signed
by the apiserver's CA cert.
2015-08-20 18:44:05 -07:00
Jeff Grafton 67b10ac222 Handle errors properly in kube::gcs::release functions 2015-08-06 12:36:08 -07:00
Alex Mohr 8d11137ed6 Merge pull request #12177 from ixdy/retry-gsutil-upload
Retry uploading/publishing CI builds to work around gsutil bug
2015-08-03 21:26:53 -07:00
Jeff Grafton 1289165aeb Add environment variable to delete existing release on GCS 2015-08-03 17:01:50 -07:00
Stef Walter f06474d938 build: Fix docker image lookup for docker 1.6+
Some versions of docker display image listings like this:

docker.io/golang    1.4                 ebd45caf377c        2 weeks ago

The regular expression used to detect presence of images
needs to be updated. It's unfortunate that we're still
screen-scaping here, due to:

https://github.com/docker/docker/issues/8048
2015-07-27 09:58:15 +02:00
Mike Danese 337772a91f fix all tests 2015-07-14 21:51:30 -07:00
Zach Loafman d63860411a Add `build-official-release.sh`
This commit does 4 things:
* Adds a script which will: (a) clone from a git tag, make release,
and give you very detailed instructions as to what to do from that
point.
* Changes `push-official-release.sh` so we can't push "dirty"
releases anymore (which `build-official-release.sh` also double
checks at the end.)
* Fixes #9576 by ensuring a correct umask.
* Changes common.sh to gtar all the way through, to ensure that
bloody OS X tar never touches the release process, because I don't
want to have to understand two tar programs and how release
artifacts are created from both (c.f. #10615.)
2015-07-08 15:20:22 -07:00
Jeff Grafton 1b9219ab25 Revert "Add `build-official-release.sh`"
This reverts commit d64c818744.

The push-*.sh scripts were broken due to TAR not being defined.
2015-07-06 16:55:59 -07:00
Zach Loafman d64c818744 Add `build-official-release.sh`
This commit does 4 things:
* Adds a script which will: (a) clone from a git tag, make release,
and give you very detailed instructions as to what to do from that
point.
* Changes `push-official-release.sh` so we can't push "dirty"
releases anymore (which `build-official-release.sh` also double
checks at the end.)
* Fixes #9576 by ensuring a correct umask.
* Changes common.sh to gtar all the way through, to ensure that
bloody OS X tar never touches the release process, because I don't
want to have to understand two tar programs and how release
artifacts are created from both (c.f. #10615.)
2015-07-02 14:24:34 -07:00
Abhi Shah 3277925ece Revert "Remove raw binaries from distro that are already included in docker image" 2015-06-12 14:25:52 -07:00
Filip Grzadkowski 31fc217527 Remove raw binaries from distro that are already included in docker image 2015-06-12 17:01:12 +02:00
James DeFelice 91238f8b44 Make building contrib code optional 2015-06-10 20:30:10 +00:00
Zach Loafman 8f70779b1b Don't die if the "docker rmi" fails
Slightly neuters #8955, but we haven't had a build succeed in a while
for whatever reason. (I checked on Jenkins and the images in the build
log where deletion was attempted were actually deleted, so I think
this is primarily an exit code / API issue of some sort.)
2015-05-30 09:20:09 -07:00
Dawn Chen 21ade7a531 Remove useless master component images after saving image as tar file. 2015-05-28 14:38:39 -07:00
saadali 4569de7a46 Enable Google Cloud Monitoring and Google Cloud Logging instead of
Influxdb for Google Compute Engine deployments.
2015-05-06 15:23:40 -07:00
Daniel Smith fbe3ec7513 Merge pull request #7316 from ArtfulCoder/master_components_logs
logs for master components
2015-05-04 11:20:03 -07: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
Zach Loafman d3dbaa0008 Build: Push .md5 and .sha1 files for every file we push to GCS
Also by pre-staging and pushing all at once, and by doing the ACL
modify in parallel, this shaves the push time down anyways, despite
the extra I/O.

Along the way: Updates to longer hashes ala #6615
2015-05-01 10:55:44 -07:00
Abhishek Shah 96439b5a52 logs for master components 2015-04-29 09:51:09 -07:00
Abhishek Shah 0f25014d5b use busybox as base image for kube-master docker images 2015-04-16 22:22:04 -07:00
Rohit Jnagal 8b4914dd0f Merge pull request #6472 from zmerlynn/fix_build_status
Add kube::util::wait-for-jobs to report status, unlike builtin wait
2015-04-06 13:39:58 -07:00
Zach Loafman 3b8bbb32bb Fix cluster up failures by cleaning docker build dirs (sigh) 2015-04-06 13:08:15 -07:00
Zach Loafman 2bc5dd559a Add kube::util::wait-for-jobs to report status, unlike builtin wait
** Sigh **

Fixes an additional complaint in #6463
2015-04-06 11:11:49 -07:00
Zach Loafman af34ef4c16 Remove "-f Dockerfile.blah" from make release
Rework the parallel docker build path to create separate docker build
directories for each binary, rather than just separate files,
eliminating the use of "-f Dockerfile.foo". (I think this also shaves
a little more time off, because it was previously sending the whole
dir each time to the docker daemon.)

Also some minor cleanup.

Fixes #6463
2015-04-06 09:43:30 -07:00
Jeff Grafton 274c607f6d Merge pull request #6425 from zmerlynn/less_chatty_push
Be less chatty when we're uploading to GCS
2015-04-03 15:43:41 -07:00
Zach Loafman 18a11c1cb7 Be less chatty when we're uploading to GCS 2015-04-03 14:54:52 -07:00
Zach Loafman 5b6c75f986 And re-tabify that (to make previous easier to review) 2015-04-02 18:40:27 -07:00
Zach Loafman e57171d2cc Parallelize Docker build as well 2015-04-02 18:39:40 -07:00
Zach Loafman 9a6e04dc1f Cleanup output of Docker builds, fix #6389 2015-04-02 18:18:24 -07:00
Zach Loafman 03c7182cac Also build entire tarball phases in parallel 2015-04-02 17:56:45 -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
Abhishek Shah b1b779a8d5 docker image creation 2015-04-02 12:39:12 -07:00
Jeff Grafton 46e8c08fe8 Update kube::log::{error,status} to include timestamp.
Additionally, make the build scripts call these rather than calling
'echo' directly.
2015-03-25 16:02:48 -07:00
Zach Loafman 3458246c10 Publish a gs://kubernetes-release/release/latest.txt when we publish a build
Adds a kube::release::gcs::publish_latest_official that checks the
current contents of this file in GCS, verifies that we're pushing a
newer build, and updates it if so. (i.e. it handles the case of
pushing a 0.13.1 and then later pushing a 0.12.3.) This follows the
pattern of the ci/ build, which Jenkins just updates unconditionally.

I already updated the file for 0.13.1. After this we can update the
get-k8s script, so we don't have to keep updating it.
2015-03-17 13:53:05 -07:00
Zach Loafman 120dba474e Change GCE to use standalone Saltstack config:
Change provisioning to pass all variables to both master and node. Run
Salt in a masterless setup on all nodes ala
http://docs.saltstack.com/en/latest/topics/tutorials/quickstart.html,
which involves ensuring Salt daemon is NOT running after install. Kill
Salt master install. And fix push to actually work in this new flow.

As part of this, the GCE Salt config no longer has access to the Salt
mine, which is primarily obnoxious for two reasons: - The minions
can't use Salt to see the master: this is easily fixed by static
config. - The master can't see the list of all the minions: this is
fixed temporarily by static config in util.sh, but later, by other
means (see
https://github.com/GoogleCloudPlatform/kubernetes/issues/156, which
should eventually remove this direction).

As part of it, flatten all of cluster/gce/templates/* into
configure-vm.sh, using a single, separate piece of YAML to drive the
environment variables, rather than constantly rewriting the startup
script.
2015-03-10 09:04:29 -07:00
Alex Mohr 5ce020817d Update common.sh 2015-03-09 17:46:29 -07:00
Brandon Davis a63338b73b Support other names for GNU tar
The build is only looking for GNU tar as gtar on OSX, which is the name used when installed using brew. Macports installs it as gnutar, so check for that name if gtar is not found.
2015-02-23 17:00:32 -06:00
Sidharta Seethana aea11720fd setting boot2docker env variables for release and clean targets when boot2docker is running 2015-02-20 15:55:39 -08:00
Jeff Lowdermilk 197059b65d Remove kubecfg, cleanup a few stray references. 2015-02-10 16:43:12 -08:00
Brendan Burns 0ff3aa6db7 Fix the build. 2015-02-03 14:49:30 -08:00
rsokolowski 164c3e5e62 Fix removal of release-staging files while running hack/e2e-test.sh 2015-02-03 23:11:26 +01:00
Brendan Burns ffd3d21dc5 Update the release script to delete cruft before packaging. 2015-02-03 12:57:34 -08:00
Joe Beda 621e7037ae Merge pull request #3601 from zmerlynn/deferred_addons_phase_1
Deferred creation of SkyDNS, monitoring and logging objects
2015-01-21 13:25:38 -08:00
Zach Loafman a305269e18 Deferred creation of SkyDNS, monitoring and logging objects
This implements phase 1 of the proposal in #3579, moving the creation
of the pods, RCs, and services to the master after the apiserver is
available.

This is such a wide commit because our existing initial config story
is special:

* Add kube-addons service and associated salt configuration:
** We configure /etc/kubernetes/addons to be a directory of objects
that are appropriately configured for the current cluster.
** "/etc/init.d/kube-addons start" slurps up everything in that dir.
(Most of the difficult is the business logic in salt around getting
that directory built at all.)
** We cheat and overlay cluster/addons into saltbase/salt/kube-addons
as config files for the kube-addons meta-service.
* Change .yaml.in files to salt templates
* Rename {setup,teardown}-{monitoring,logging} to
{setup,teardown}-{monitoring,logging}-firewall to properly reflect
their real purpose now (the purpose of these functions is now ONLY to
bring up the firewall rules, and possibly to relay the IP to the user).
* Rework GCE {setup,teardown}-{monitoring,logging}-firewall: Both
functions were improperly configuring global rules, yet used
lifecycles tied to the cluster. Use $NODE_INSTANCE_PREFIX with the
rule. The logging rule needed a $NETWORK specifier. The monitoring
rule tried gcloud describe first, but given the instancing, this feels
like a waste of time now.
* Plumb ENABLE_CLUSTER_MONITORING, ENABLE_CLUSTER_LOGGING,
ELASTICSEARCH_LOGGING_REPLICAS and DNS_REPLICAS down to the master,
since these are needed there now.

(Desperately want just a yaml or json file we can share between
providers that has all this crap. Maybe #3525 is an answer?)

Huge caveats: I've gone pretty firm testing on GCE, including
twiddling the env variables and making sure the objects I expect to
come up, come up. I've tested that it doesn't break GKE bringup
somehow. But I haven't had a chance to test the other providers.
2015-01-21 12:25:50 -08:00
Joe Beda a735e2d160 Switch official builds to go 1.4.
This fixes #2894
2015-01-21 12:13:22 -08:00
Andrew Seidl 6dee1d7fa4 Fix typos in user-facing strings 2015-01-18 01:32:34 -06:00
Zach Loafman c3858ab322 Commit f1fed3b broke gcs::release in this function, breaking
the build.
2015-01-07 11:10:08 -08:00
Zach Loafman fd9d2df6e1 Merge pull request #3238 from zmerlynn/gcs_bucket
Add script to push CI artifacts to gs://kubernetes-release/ci
2015-01-07 10:08:43 -08:00
Joe Beda 4b94829cf2 Make 'make clean' work with Docker not installed.
Fixes #1959.
2015-01-06 11:36:35 -08:00
Zach Loafman e66e30183b Add script to push continuous integration artifacts to gs://kubernetes-release/ci
This pushes artifacts in a similar manner to the official release,
except that instead of release/vFOO, it goes to ci/$(git describe),
e.g.: gs://kubernetes-release/ci/v0.7.0-315-gcae5722

It also pushes a text file to gs://kubernetes-release/ci/latest.txt,
so anyone can do, for instance:

gsutil ls gs://kubernetes-release/ci/$(gsutil cat gs://kubernetes-release/ci/latest.txt)

(In a parallel change, I'm going to flip the jenkins scripts over to
use git describe, since it's shorter and a little more descriptive)
2015-01-05 18:07:27 -08:00
Joe Beda f1fed3bcfc Remove support for building "run containers".
This was untested, broken and largely unused.

Related to #12 and #2455#issuecomment-68803245.
2015-01-05 16:26:28 -08:00
Zach Loafman a4c4746f7c Fix OS X testtar build break
Handle copy in super portable way. Every tar on the planet should
accept this. Oblig XKCD: http://xkcd.com/1168/
2014-12-18 08:23:46 -08:00
Zach Loafman d3aed6c9cd Add kubernetes-test.tar.gz
Add test artifacts to the build. This lets you do:

tar -xzf kubernetes.tar.gz
tar -xzf kubernetes-test.tar.gz
cd kubernetes
go run ./hack/e2e.go -up -test -down

without having a git checkout.
2014-12-17 14:30:30 -08:00
Zach Loafman 21eb09fb6a Wait/reap build container before removing it
Fixes: https://github.com/GoogleCloudPlatform/kubernetes/issues/1853
2014-12-06 11:12:11 -08:00
James Kyle 361c8dbae5 Support remote docker hosts on OS X.
This commit brings two main changes, notably:

Two new options that can be set as environment variables

- DOCKER_OPTS: any arbitrary set of docker options. Example: --tlsverify
- DOCKER_NATIVE: This forces the use of the native docker available.
                 This is most useful if you're on OS X and do not want
                 to use boot2docker.

Now uses 'docker cp' instead of tar piping to transfer files. This
currently must be done by copying the binaries off of the docker volume
and into a local filesystem (/tmp) before a docker cp is done. This
workaround will no longer be necessary after bug fix
https://github.com/docker/docker/pull/8509 makes it into stable.

This was necessary because the tar | tar method was creating corrupted
archives on OS X even with the < /dev/null workaround.
2014-12-01 11:47:16 -08:00
Joe Beda 5bf43236e3 Support building/packaging Windows client binaries.
Ug -- .exe suffix is a pain.  These are largely untested.
2014-11-24 14:10:28 -08:00
Joe Beda 3a385a8b0b Squash output from 'which' 2014-11-24 12:23:34 -08:00
derekwaynecarr 628eb57917 Fix error in build package_full_tarball 2014-11-20 11:15:16 -05:00
Joe Beda eb8df9e969 Upload "naked" binaries with releases.
Fixes #2476
2014-11-19 15:48:37 -08:00
Joe Beda df844e3b44 Don't blindly delete stuff on GCS 2014-11-19 15:02:26 -08:00
Joe Beda 0cc03f7433 Upload extras from _output, not main repo. 2014-11-19 14:01:50 -08:00
Eric Paris a99c3c7963 rename kube server binaries to kube-
apiserver becomes kube-apiserver
controller-manager -> kube-controller-manager
scheduler and proxy similarly.

Only thing I promise is that right now hack/build-go.sh and
build/release.sh exit with 0.  That's it.  Who knows if any of this
actually works....
2014-11-13 20:08:26 -05:00
Eric Paris 7365a459d8 do not fail build if unable to relabel selinux content
If the failure is a problem, the build will fail later.  But it is
possible that this is not a fatal issue and we should let things go
forward.  (a filesystem mounted with context=something in permissive
would cause chcon to fail, but the build to work)
2014-11-13 09:37:44 -05:00
Maxwell Forbes 8d32faad29 Make slashes always appended to buckets to avoid forgetting them. 2014-11-11 23:16:04 +00:00
Brendan Burns 1f75d20e9b Merge pull request #2263 from jbeda/clean-volumes
Clean out data volumes for real
2014-11-10 21:16:40 -08:00
Joe Beda 8ffa1f6657 Upload extra artifacts with build 2014-11-10 15:35:48 -08:00
Joe Beda a94e8a3d56 Clean out data volumes for real 2014-11-10 12:46:07 -08:00
Joe Beda a839599883 Install client tools on master.
We now include kubecfg and kubectl in "server binary" tar and place them into /usr/local/bin on the master.
2014-11-07 17:13:18 -08:00
Joe Beda b0253c88eb Slim down full release tar 2014-11-07 17:13:18 -08:00
Joe Beda 5d33ce46cc Rework hack/ and build/ directories.
* Rewrite a bunch of the hack/ directory with modular reusable bash libraries.
* Have 'build/*' build on 'hack/*'.  The stuff in build now just runs hack/* in a docker container.
* Use a docker data container to enable faster incremental builds.
* Standardize output to _output/{local,dockerized}/bin/OS/ARCH/*.  This regularized placement makes cross compilation work.
* Move travis specific scripts under hack/travis

With new dockerized incremental builds, I can do a no-op `make quick-release` in ~30s.  This is a significant improvement.
2014-11-01 17:56:41 -07:00
Joe Beda 33869ab644 Don't include '.' in release tars.
Also make ownership, by default, be root.  This won't work on systems that don't have GNU tar so we warn.

Fixes: #1902
2014-10-30 10:51:13 -07:00
Joe Beda 019170e6fb Merge pull request #1716 from proppy/boot2docker-bootstrap
docker: add cluster bootstrap and doc
2014-10-27 11:46:55 -07:00
Johan Euphrosine 966c3dae70 boot2docker: add cluster bootstrap and doc 2014-10-23 18:06:17 -07:00
Vincent Batts 22a457e46f build: cleaner `docker rmi`
no need to pipe to awk for orphan images

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-10-23 14:28:34 -04:00
Joe Beda 0ce5e99ee5 Merge pull request #1658 from proppy/slim-kube-build
build: switch to golang:1.3 and build go for KUBE_CROSSPLATFORMS
2014-10-22 16:55:51 -07:00
Johan Euphrosine 29c4fd6bb3 build: add KUBE_BUILD_GOLANG_VERSION 2014-10-22 16:52:20 -07:00
Joe Beda a7aa41b3c0 Script to do an "official" release push to GCS. 2014-10-21 19:50:04 -07:00
Johan Euphrosine d5e7ddb428 build: fix golang pull message 2014-10-21 15:24:36 -07:00
Johan Euphrosine 6452b0fe97 build: add kube-build:cross base 2014-10-21 15:19:05 -07:00
Joe Beda e48cbb2296 Fix boot2docker with /User mapping.
Fixes #1856

Based on #1858 from @nyaxt.
2014-10-17 23:29:05 -07:00
Brendan Burns ed0b94de5a Fix the build w/ docker 1.3.0 on OS X 2014-10-17 23:22:48 -07:00
Joe Beda 3701c2ac0e Add kubectl to build/release scripts.
Also Refactor build helpers into client/cross and server/linux.  This make it easier to tell users what to build to get just the client binaries.
2014-10-15 16:50:17 -07:00
Vojtech Vitek (V-Teq) b1b9dcc737 Fix OS X build
- Use $(uname) instead of $OSTYPE
- Fix shebang
- Fix typo

Signed-off-by: Vojtech Vitek (V-Teq) <vvitek@redhat.com>
2014-10-14 17:13:13 +02:00
Joe Beda 5df3f54204 Hook 'build/make-clean.sh' into 'make clean' in Makefile 2014-10-11 07:34:22 -07:00
Joe Beda 999aa0f31c One more time.
Basic idea is to clean out the root owned stuff from with the docker build container.
2014-10-10 14:14:37 -07:00
Joe Beda 336cb68e4f Fix things for real this time.
Bash quoting is hard.
2014-10-10 14:12:28 -07:00
Joe Beda 500c77a38e Clean out _output directory from within docker.
This is necessary as some files might be owned by root.
2014-10-10 13:53:06 -07:00
Joe Beda 5f12245d6c Make 'build' commands work with non-interactive shells.
Tested that both './build/release.sh < /dev/null' and './build/shell.sh' work.
2014-10-10 13:35:10 -07:00
Joe Beda 272b9306c4 Uniquify docker names
If you have two repos that are both building at the same time we don't want to have them stomp on each other as they deal with docker.  Work around this by hashing the KUBE_ROOT and mixing that in to the name.
2014-10-10 12:36:58 -07:00
Joe Beda eab54ab000 Apply SELinux policy to _output dir so "build in docker" works on RHEL. 2014-10-10 12:36:58 -07:00
Joe Beda b00f045bd3 Confirm pull of golang:cross as it is huge (1.8G) 2014-10-10 12:36:57 -07:00
Joe Beda 96c1bc17ca Set shell options for reliability.
Tweak a few other small things in our shell scripts.
2014-10-10 12:33:36 -07:00
Joe Beda d43a6ec5a3 Standardize how we refer to the kubernetes root.
Now use $KUBE_ROOT as the variable pretty much everywhere.
2014-10-10 12:33:36 -07:00
Joe Beda 29e42991c2 Update build/README.md 2014-10-10 12:30:12 -07:00
Joe Beda 7a2d8fd01a GCS uploads as part of release are now marked public and non-cached by default. 2014-10-10 12:30:12 -07:00
Joe Beda 881cf80182 Vagrant now using pre-built binaries. 2014-10-10 12:30:12 -07:00
Joe Beda 15cd6f07d6 Use binary releases for cluster push scripts.
This is for GCE right now.  Other clouds/clusters are probably broken.
2014-10-10 12:30:11 -07:00
Johan Euphrosine 44dce00f04 build: add kubelet image 2014-10-08 17:54:52 -07:00
Joe Beda 90f7bfa4f1 Build separate various binary tarballs.
Also a bunch of script clean up.  Make make-clean.sh faster and more robust.

Building the docker run images and uploading to GCS are now optional and turned off by default. Doing a release shouldn't hit the network now (I think).
2014-09-16 09:58:09 -07:00