Commit Graph

1893 Commits (ee1c0838d8ab19830a89d422c30ebb2fce9c2b6e)

Author SHA1 Message Date
Filipe Brandenburger 74695d281d Merge pull request #1073 from filbranden/vagrant_empty_array1
Fix `line 55: ldflags[*]: unbound variable`
2014-08-27 19:47:12 -07:00
Filipe Brandenburger e33d4678e6 Fix `line 55: ldflags[*]: unbound variable`
This is caused by bash thinking that an empty array is the same as an
undefined variable and `set -o nounset` treating that as an error.

Fix that by using an empty string as the default for the expansion.

Fixes PR #1069 (6e25f60288).

Tested:
- Before this patch:
  $ mv .git .gitbackup
  $ hack/build-go.sh
  /home/filbranden/devel/kubernetes/hack/config-go.sh: line 55: ldflags[*]: unbound variable

- After this patch:
  $ mv .git .gitbackup
  $ rm -rf output/
  $ hack/build-go.sh
  $ output/go/bin/kubelet -version
  Kubernetes version 0.1+, build (unknown)

Signed-off-by: Filipe Brandenburger <filbranden@google.com>
2014-08-27 19:04:48 -07:00
David Reynolds 462314e68d s/install/get
"install" didn't work for me, but "get" did.
2014-08-27 18:40:49 -07:00
Daniel Smith 0965c4ee77 Merge pull request #1050 from brendandburns/docs
Add initial docs for flake hunting.
2014-08-27 18:18:19 -07:00
Brian Waldon 6b0b4f8522 Add plugin/ to build dir 2014-08-27 17:43:24 -07:00
Joe Beda b1ebfd4824 Merge pull request #1063 from filbranden/versioning_fixes2
Grab complete version information from git
2014-08-27 17:42:36 -07:00
Filipe Brandenburger bf9113ea2e Grab complete version information from git
This replaces the gitcommit() shell function with kube::version_ldflags()
which prepares a string suitable for Go's -ldflags parameter that fills
in the git version fields in pkg/version/base.go.

The gitCommit is now a full 40-character SHA1, the gitVersion will be
filled from `git describe` output (which will only be available once we
have annotated git tags) and gitTreeState will be filled with either
"clean" or "dirty" depending on the tree status at the time of the
build.

Use a kube:: "namespace" (there's really no such a thing in shell, but
the illusion still makes it nice) in order to make this nice to import
into existing shell scripts or on a shell session. (In the future, I'm
planning to introduce more functions and convert some of the top-level
commands into other kube::* shell functions.)

There's a difference now that -version will report a full SHA1, this
will be improved in a follow up change which will improve the Go code
for -version handling to give a more meaningful string that should be
enough to identify the origin of the binary in git.

Tested:
- Built it and checked output of -version:
  $ hack/build-go.sh
  $ output/go/bin/kubelet -version
  Kubernetes version 0.1+, build 3ff7ee4b8c843c7767cd856fbf7d3027cd5410e6

- Ran the release script and checked output of the common.sls file:
  $ release/build-release.sh TESTINSTANCE
  $ cat output/release/master-release/src/saltbase/pillar/common.sls
  instance_prefix: TESTINSTANCE-minion
  go_opt: -ldflags '-X github.com/GoogleCloudPlatform/kubernetes/pkg/version.gitCommit 3ff7ee4b8c843c7767cd856fbf7d3027cd5410e6 -X github.com/GoogleCloudPlatform/kubernetes/pkg/version.gitTreeState clean'

- Successful run of hack/e2e-test.sh end-to-end tests.

Signed-off-by: Filipe Brandenburger <filbranden@google.com>
2014-08-27 17:36:04 -07:00
Filipe Brandenburger 510cc8ecdc Revert "change travis.yml to install godep"
This reverts commit 453c328fc9.

Having `godep` installed is not necessarily for build & test, only to
manage the dependencies under the Godeps/ tree.

Signed-off-by: Filipe Brandenburger <filbranden@google.com>
2014-08-27 17:16:27 -07:00
Filipe Brandenburger 4df5573967 Remove build dependency on `godep`
Instead of using `godep path`, we can simply set the GOPATH directly to
point to the Godeps/_workspace. We can still use `godep` to manage the
dependencies on the Godeps/ tree, but we don't need to have it available
for straight builds from git.

v2: Rebased and moved to inside kube::setup_go_environment() function.

Tested:
- Built it without godep in $PATH:
  $ hack/build-go.sh
- Ran unit tests without godep in $PATH:
  $ hack/test-go.sh
- Retested after rebase.

Signed-off-by: Filipe Brandenburger <filbranden@google.com>
2014-08-27 17:15:09 -07:00
Joe Beda 7e0c1fb841 Merge pull request #1069 from filbranden/vagrant_config1
Move go detection and environment setup into its own function.  Fixes #1057.
2014-08-27 17:08:21 -07:00
Filipe Brandenburger 6e25f60288 Move go detection and environment setup into its own function
This way hack/config-go.sh can be used in environments where Go is not
available, such as running release/build-release.sh for Vagrant.

(The intention is to make config-go.sh a general library of helper
functions and import it from most other shell scripts.)

Fixes Issue #1057.

Tested:
- Built it and made sure it works.
  $ hack/build-go.sh
  $ output/go/bin/kubelet -version
  Kubernetes version 0.1+, build 0766e7a411c7-dirty

- Ran unit tests.
  $ hack/test-go.sh
  ok      github.com/GoogleCloudPlatform/kubernetes/examples      1.105s  coverage: 0.0% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/api       6.188s  coverage: 86.1% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/api/errors        1.015s  coverage: 81.8% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/apiserver 1.806s  coverage: 85.1% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/client    1.211s  coverage: 67.2% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/client/cache      1.115s  coverage: 95.5% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/cloudprovider/gce 1.052s  coverage: 7.3% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/cloudprovider/vagrant     1.045s  coverage: 76.8% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/constraint        1.038s  coverage: 100.0% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/controller        1.559s  coverage: 78.8% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/conversion        3.440s  coverage: 72.4% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/election  1.034s  coverage: 71.4% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/health    1.043s  coverage: 94.5% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/healthz   1.034s  coverage: 100.0% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/httplog   1.027s  coverage: 82.4% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/kubecfg   6.081s  coverage: 58.5% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet   1.400s  coverage: 72.2% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/config    1.139s  coverage: 90.1% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/labels    1.041s  coverage: 98.7% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/master    1.033s  coverage: 33.3% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/proxy     1.095s  coverage: 86.5% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/proxy/config      1.038s  coverage: 39.2% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/registry/binding  1.046s  coverage: 100.0% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/registry/controller       1.039s  coverage: 43.6% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/registry/endpoint 1.029s  coverage: 25.0% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/registry/etcd     1.110s  coverage: 79.5% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/registry/minion   1.048s  coverage: 72.3% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/registry/pod      1.052s  coverage: 62.1% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/registry/service  1.054s  coverage: 80.0% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/scheduler 1.030s  coverage: 90.4% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/service   1.363s  coverage: 83.8% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/tools     1.136s  coverage: 81.9% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/util      1.049s  coverage: 83.9% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/util/config       1.036s  coverage: 92.9% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/util/wait 1.029s  coverage: 86.7% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/volume    1.032s  coverage: 83.3% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/pkg/watch     1.040s  coverage: 100.0% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/plugin/pkg/scheduler  1.026s  coverage: 90.9% of statements
  ok      github.com/GoogleCloudPlatform/kubernetes/plugin/pkg/scheduler/factory  1.075s  coverage: 85.4% of statements
  ?       github.com/GoogleCloudPlatform/kubernetes/test/integration      [no test files]

- Ran release/build-release.sh without go or godep in my $PATH.
  $ PATH=...
  $ which go
  $ which godep
  $ release/build-release.sh MYTEST
  Building release tree
  ~/devel/kubernetes ~/devel/kubernetes
  ~/devel/kubernetes
  Packaging release
  $ cat output/release/master-release/src/saltbase/pillar/common.sls
  instance_prefix: MYTEST-minion
  go_opt: -ldflags "-X
  github.com/GoogleCloudPlatform/kubernetes/pkg/version.gitCommit '0766e7a411c7-dirty'"
  $ find output/release/master-release/ | wc -l
  598

Signed-off-by: Filipe Brandenburger <filbranden@google.com>
2014-08-27 17:04:19 -07:00
Daniel Smith 1319309174 Merge pull request #1068 from jbeda/fix-e2e
Fix e2e tests w/ http prefix in kube client init
2014-08-27 16:56:09 -07:00
Joe Beda 2ea2c55d16 Fix e2d tests w/ http prefix in kube client init 2014-08-27 16:53:57 -07:00
Daniel Smith 8e4828ab3d Merge pull request #1067 from MSOpenTech/azure-readme
Added getting started guide for Azure.
2014-08-27 16:48:54 -07:00
Jeff Mendoza 705b836f2d Added getting started guide for Azure. 2014-08-27 16:36:44 -07:00
Daniel Smith 0766e7a411 Merge pull request #1058 from vishh/add_list_minions
Adding ListMinions() API to pkg/client.
2014-08-27 14:19:57 -07:00
Daniel Smith af2af373d4 Merge pull request #1062 from filbranden/versioning_fixes3
Fix commitFromGit -> gitCommit in release/build-release.sh
2014-08-27 14:17:46 -07:00
Vishnu Kannan 180e9ed493 Add unit tests for pkg/client.ListMinions() 2014-08-27 21:07:22 +00:00
Filipe Brandenburger 4bc1364224 Fix commitFromGit -> gitCommit in release/build-release.sh
This caused Jenkins break on e2e-test because the version of server and
client did not match exactly, as the server was built without the
version ldflags.

Tested:
- Ran "release/build-release.sh ${instance_name}" and confirmed that
  output/release/master-release/src/saltbase/pillar/common.sls has the
  git version under version.gitCommit no longer version.commitFromGit.

Fixes: b777eb19e2
2014-08-27 14:04:54 -07:00
Joe Beda 3a582c9dbf Merge pull request #1060 from filbranden/clear_ifs1
Do not set IFS to the wrong value
2014-08-27 13:56:59 -07:00
Filipe Brandenburger 8f55ac9651 Do not set IFS to the wrong value
The correct way to reset it to the default would be IFS=$' \t\n', but
there's no reason to assume a wrong setting here, in fact, nothing this
script does should depend on an IFS setting, so let's just drop this
line altogether.

Tested:
- Ran "release/build-release.sh <instance>" before and after this
  change. Compared the two trees for differences, only difference was
  the SHA1 in output/release/master-release/src/saltbase/pillar/common.sls

    $ diff -Naur output.orig/release/master-release/ output/release/master-release/
    diff -Naur output.orig/release/master-release/src/saltbase/pillar/common.sls output/release/master-release/src/saltbase/pillar/common.sls
    --- output.orig/release/master-release/src/saltbase/pillar/common.sls   2014-08-27 13:28:52.104241577 -0700
    +++ output/release/master-release/src/saltbase/pillar/common.sls        2014-08-27 13:29:28.296087806 -0700
    @@ -1,2 +1,2 @@
     instance_prefix: MY_INSTANCE_NAME-minion
    -go_opt: -ldflags "-X github.com/GoogleCloudPlatform/kubernetes/pkg/version.commitFromGit 'e169da2abfbf'"
    +go_opt: -ldflags "-X github.com/GoogleCloudPlatform/kubernetes/pkg/version.commitFromGit '8aea0d85e447-dirty'"

Signed-off-by: Filipe Brandenburger <filbranden@google.com>
2014-08-27 13:32:09 -07:00
Daniel Smith e169da2abf Merge pull request #899 from smarterclayton/watch_services_and_endpoints
Allow Kube proxy to watch for service/endpoint changes
2014-08-27 13:11:39 -07:00
Clayton Coleman 9006eadcfe kube-proxy can read config from the apiserver
All clients that talk to a "master" as a host:port or URL
(scheme://host:port) parameter.  Add tests.
2014-08-27 15:49:01 -04:00
Clayton Coleman 083d81b6d7 Expose REST resource for endpoints and watch on services/endpoints
Will allow kube-proxies to listen on endpoints.
2014-08-27 15:49:01 -04:00
Clayton Coleman b5e1e044bc Move EndpointsController to its own package
Avoids recursive loop with endpoint registry defined
2014-08-27 15:49:00 -04:00
Clayton Coleman ae698bcff8 Allow field/label users to get info from fields
Allows a consumer to get at the information stored in the field selector
for querying an underlying data store.  Not generic, but offers a
simple start.
2014-08-27 15:49:00 -04:00
Vishnu Kannan a4b00e33e0 Adding ListMinions() API to pkg/client. 2014-08-27 18:57:29 +00:00
Daniel Smith 2606ece6e9 Merge pull request #1056 from filbranden/versioning_fixes1
Versioning fixes
2014-08-27 10:19:46 -07:00
Filipe Brandenburger b777eb19e2 Add additional ldflags constants for Kubernetes versioning
Now it is possible to push these variables through ldflags:
- gitMajor
- gitMinor
- gitVersion (from latest annotated tag, output of git describe)
- gitCommit (renamed commitFromGit, intended to have the full sha1)
- gitTreeState (either "clean" or "dirty")

These are spawned into its separate source file, since they are meant to
be updated separately when a new version is released.

Also use the notation vX.Y+ for when git information is not present.
(This is consistent with the kernel build, e.g. Linux 3.15+ means its
version is >= 3.15 and < 3.16.)

v2: Added comments to the individual fields in pkg/version/base.go

Tested:
- Built it and checked the -version output:
  $ hack/build-go.sh
  $ output/go/bin/kubelet -version
  Kubernetes version 0.1+, build c328679ef8aa

Signed-off-by: Filipe Brandenburger <filbranden@google.com>
2014-08-27 10:06:22 -07:00
Filipe Brandenburger 7785f14b32 Fix gitcommit() in hack/config-go.sh
Previously it would only print a version when the tree was dirty. Fix it
so that it will also print one on a clean tree.

Tested:
- Built it from a committed tree:
  $ hack/build-go.sh
  $ output/go/bin/kubelet -version
  Kubernetes version 0.1, build a091590dd10c

Signed-off-by: Filipe Brandenburger <filbranden@google.com>
2014-08-27 09:16:35 -07:00
Clayton Coleman 31dadca04f Merge pull request #1047 from lavalamp/fixApiObj
Cleanup: remove deprecated fields the proper way
2014-08-27 11:43:27 -04:00
Daniel Smith 923b2c12c2 Merge pull request #1051 from brendandburns/flake
Deflake operation listing.
2014-08-26 23:06:57 -07:00
Brendan Burns 52473bdf11 Deflake operation listing. 2014-08-26 22:48:24 -07:00
Daniel Smith 97b05619f1 Remove deprecated bits from kubelet 2014-08-26 22:39:00 -07:00
Brendan Burns 4c6c484900 Add initial docs for flake hunting. 2014-08-26 21:08:17 -07:00
Daniel Smith e1a361a84b Merge pull request #1049 from brendandburns/flake
Fix a flake by extending the time out, so we don't race a go routine.
2014-08-26 21:00:23 -07:00
Daniel Smith 4d232cfee2 Merge pull request #1046 from ghodss/start-etcd-local-up-cluster
Modify hack/local-up-cluster.sh to use start_etcd function
2014-08-26 17:33:35 -07:00
Daniel Smith 2a62d72140 Cleanup: remove deprecated fields the proper way 2014-08-26 17:28:36 -07:00
Brendan Burns d83091ea52 Fix a flake by extending the time out, so we don't race a go routine.
Empirically this eliminates a flake.
2014-08-26 17:09:38 -07:00
Sam Ghods 242e1f9690 Modify hack/local-up-cluster.sh to use start_etcd function 2014-08-26 16:57:36 -07:00
Clayton Coleman f5a835b067 Merge pull request #978 from rajatchopra/podnet
Add IP per pod with Open vSwitch in Vagrant
2014-08-26 19:29:42 -04:00
Joe Beda 26c497c242 Merge pull request #1045 from smarterclayton/nuke_autogenerated
Trick Git into removing autogenerated.go on all clients
2014-08-26 16:27:17 -07:00
Clayton Coleman 80ac6c44ae Purge autogenerated.go (2/2) 2014-08-26 19:24:02 -04:00
Clayton Coleman 95b2538d06 Purge autogenerated from clients (1/2) 2014-08-26 19:23:47 -04:00
Daniel Smith 2672b9865e Merge pull request #1044 from jbeda/release-version
Propagate version info into salt config and use to build.
2014-08-26 16:21:49 -07:00
Joe Beda 5722eba780 Propagate version info into salt config and use to build.
Fixes #1043.
2014-08-26 16:17:06 -07:00
Dawn Chen 1b24fe880a Merge pull request #836 from brendandburns/runin
Add an API for calling RunInContainer on the kubelet.
2014-08-26 15:57:11 -07:00
Joe Beda 169e6f079a Merge pull request #1036 from brendandburns/godep
Fix up the docs somewhat.
2014-08-26 14:21:27 -07:00
Brendan Burns 556eb0f400 Add a run command to the kublet server 2014-08-26 13:57:44 -07:00
Rajat Chopra a0b88e2f2d add test to check minion to master reachability; logfiling and some cosmetification. 2014-08-26 12:52:02 -07:00