Commit Graph

94 Commits

Author SHA1 Message Date
Zach Loafman
3b8bbb32bb Fix cluster up failures by cleaning docker build dirs (sigh) 2015-04-06 13:08:15 -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