Commit Graph

1372 Commits (d488e238dd90080724f3735dcd2d61c824feff59)

Author SHA1 Message Date
Daniel Smith 0727b5a6c8 Merge pull request #1302 from brendandburns/validatez
Add a validator for validating components in the cluster infrastructure.
2014-09-16 14:36:10 -07:00
Clayton Coleman 23307344ee Add round trip tests for default encoding
Turn down iterations a bit for speed
2014-09-16 17:27:59 -04:00
Brendan Burns f8844ce69e Add a validator for validating components in the cluster infrastructure. 2014-09-16 13:37:01 -07:00
Clayton Coleman 61e3ce7ddc Make runtime less global for Codec
* Make Codec separate from Scheme
* Move EncodeOrDie off Scheme to take a Codec
* Make Copy work without a Codec
* Create a "latest" package that imports all versions and
  sets global defaults for "most recent encoding"
  * v1beta1 is the current "latest", v1beta2 exists
  * Kill DefaultCodec, replace it with "latest.Codec"
  * This updates the client and etcd to store the latest known version
* EmbeddedObject is per schema and per package now
* Move runtime.DefaultScheme to api.Scheme
* Split out WatchEvent since it's not an API object today, treat it
like a special object in api
* Kill DefaultResourceVersioner, instead place it on "latest" (as the
  package that understands all packages)
* Move objDiff to runtime.ObjectDiff
2014-09-16 16:26:43 -04:00
Clayton Coleman 154a91cd33 Rename runtime.DefaultScheme to latest.Codec for ease of readability 2014-09-16 16:19:35 -04:00
Clayton Coleman fe614aeda2 Simple refactor for ease of readability
runtime.DefaultCodec -> latest.Codec
2014-09-16 16:12:35 -04:00
Clayton Coleman 10f68902f6 Add v1beta2 API objects 2014-09-16 16:11:26 -04:00
Brendan Burns 5b9e2a55b5 Add a flag to reject privileged containers in the apiserver. 2014-09-16 11:22:32 -07:00
Paul Morie f94198c7a3 Expose validation method for ReplicationControllerState 2014-09-16 12:55:27 -04:00
jhadvig 6da2653b4a Update according to review 2014-09-16 15:40:12 +02:00
Andrew M Bursavich 4e7f8db3a0 pkg/watch: remove test hook 2014-09-15 18:55:29 -07:00
Daniel Smith 9c25792dca Merge pull request #1321 from abursavich/master
pkg/watch: fix potential deadlock
2014-09-15 18:26:19 -07:00
Tim Hockin f8a8df369c Merge pull request #1314 from ddysher/fd-lead
Fix leaking FD
2014-09-15 17:24:29 -07:00
Andrew M Bursavich b9dcfbad76 pkg/watch: deadlock test 2014-09-15 16:58:26 -07:00
Dawn Chen d51c28d757 Merge pull request #1304 from brendandburns/valid
Add some lifecycle validation.
2014-09-15 16:50:03 -07:00
Brendan Burns 6efafb141f Add some lifecycle validation. 2014-09-15 16:45:26 -07:00
Deyuan Deng d5eb731b3f Fix leaking FD. 2014-09-15 19:12:32 -04:00
Daniel Smith 44f340f127 Remove custom scheme stuff
As separate commit to make it easy to get back-- I'm not completely
convince we won't want this in the future.
2014-09-15 13:15:46 -07:00
Daniel Smith 42dafb0e2e add PluginBase to fuzz functions 2014-09-15 13:15:46 -07:00
Daniel Smith b8c955ea17 Fixes:
* Fix kubecfg test, which was writing an internal object straight to yaml
* Address review comments
2014-09-15 13:15:46 -07:00
Daniel Smith 52d2c221b8 pkg/runtime now has a well defined api pluggability model. 2014-09-15 13:15:46 -07:00
Daniel Smith 71e547124c Make needed changes in conversion package to support pluggability 2014-09-15 13:15:46 -07:00
Andrew M Bursavich 435e0b73bb pkg/watch: fix potential deadlock 2014-09-15 12:07:32 -07:00
Clayton Coleman 24b5b7e8d3 Merge pull request #1296 from brendandburns/healthz
Add healthz handlers to the controller manager and scheduler
2014-09-15 11:28:02 -04:00
Clayton Coleman 424447d3b0 Merge pull request #1306 from lavalamp/scheduler
Add ExtractList to runtime.
2014-09-15 11:27:42 -04:00
jhadvig f351691493 Adding endpoint for log retrieval on the minion 2014-09-15 17:02:56 +02:00
Brendan Burns 99f7a4f25d Add healthz handlers to the controller manager and scheduler 2014-09-12 21:13:33 -07:00
Clayton Coleman 0a02c6bcdf Exact copy of v1beta1 as v1beta3 for further iteration 2014-09-12 22:02:27 -04:00
Daniel Smith 7d50aa8ba8 Add ExtractList to runtime. 2014-09-12 16:51:07 -07:00
Tim Hockin 3181f3555d Wrap goroutines in HandleCrash() 2014-09-12 16:47:40 -07:00
Tim Hockin 1e50f118fd Move UDP backend setup to a function 2014-09-12 16:47:40 -07:00
Tim Hockin 86d12681f2 Inject UDP timeout to enable testing 2014-09-12 16:47:40 -07:00
Tim Hockin 38416f6a23 Implement UDP proxying in kube-proxy 2014-09-12 16:47:40 -07:00
Tim Hockin cad6122fe4 Refactor proxy code to make room for UDP 2014-09-12 16:38:17 -07:00
Tim Hockin 9f275c81ac add a 'protocol' field to api.Service 2014-09-12 16:38:17 -07:00
Tim Hockin b566339f0c make service validation test be table-driven 2014-09-12 16:38:17 -07:00
Daniel Smith 6eeb967d3d Merge pull request #1229 from ragnard/aws-provider
Initial impl. of cloud provider for AWS
2014-09-12 15:16:47 -07:00
Brendan Burns 46d0cbd645 Add a global flag to enable/disable privileged containers 2014-09-12 09:56:45 -07:00
Dan Mace 3a3fab3f82 FEATURE: Support privileged containers in a pod
Add a Privileged field to containers in a pod, in order to facilitate pods
performing administrative tasks such as builds via Docker-in-Docker.

Discussion: https://github.com/GoogleCloudPlatform/kubernetes/issues/391
2014-09-12 09:38:11 -07:00
Tim Hockin bc9a290241 Merge pull request #1218 from bcwaldon/docker-auth
Authenticated docker pulls, pt. I
2014-09-11 22:53:36 -07:00
Brian Waldon 2f87857b0f kubelet: generate keyring from .dockercfg 2014-09-11 21:01:39 -07:00
brendandburns cc7999c00a Merge pull request #1268 from dchen1107/termination
Proposed ContainerStatus for each individual Container in a Pod.
2014-09-11 16:17:59 -07:00
Dawn Chen 7b46d8c9c5 typo 2014-09-11 16:07:56 -07:00
Dawn Chen 25fbe210f6 Clean up 2014-09-11 15:30:06 -07:00
Dawn Chen 3faf393e7b Introduce ContainerStates. Currently keep it has the same set as PodStatus:
Waiting, Running, Termination. For each state, there are some meaningful
status associated with it.
2014-09-11 15:22:53 -07:00
Dawn Chen ee129cd440 Proposed ContainerStatus for each individual Container in a Pod. 2014-09-11 14:34:21 -07:00
Ragnar Dahlén b548465adf Initial impl. of cloud provider interface for AWS 2014-09-11 22:28:56 +01:00
Daniel Smith 6757b402d5 Merge pull request #1133 from jwforres/enable_cors
Add option to enable a simple CORS implementation for the api server
2014-09-11 13:59:14 -07:00
Jessica Forrester 0f2b8f4f9f Create passthroughLogger when LogOf is called and request has no logger 2014-09-11 16:48:06 -04:00
Brian Waldon 0bf4fabc19 kubelet: move docker-related code into sub-package 2014-09-11 13:12:28 -07:00
derekwaynecarr 0c20fffa06 No DNS in vagrant cross minions, need explicit IP as host 2014-09-11 13:38:50 -04:00
Daniel Smith b5c6edcd79 Merge pull request #1189 from simon3z/ovirt-cloud
Add support for oVirt cloud provider
2014-09-11 09:50:31 -07:00
Federico Simoncelli 320fd528e2 Add support for oVirt cloud provider
This patch adds the initial support for the oVirt cloud provider.

Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
2014-09-11 13:08:46 +00:00
Dawn Chen b48834e198 Fix PodInfo to include last terminated container info when calling
GetPodInfo based on name and UUID. With this fix, if some of containers
are dead, the pod status will stay as Running, not reset back to Waiting.
2014-09-10 14:41:18 -07:00
bgrant0607 fb4199cba7 Merge pull request #1238 from brendandburns/service
Add an earlier check and error for names that won't work for services.
2014-09-10 11:41:57 -07:00
Brendan Burns 80c06f4768 Add an earlier check and error for names that won't work for services. 2014-09-10 11:31:03 -07:00
Joe Beda 9ffe6c05dc Merge pull request #1251 from filbranden/version_string1
Use just GitVersion for the -version output
2014-09-09 16:32:01 -07:00
Daniel Smith 48913672d9 Merge pull request #1248 from brendandburns/replicas
Make replica controllers return current state.
2014-09-09 16:27:21 -07:00
brendandburns e9d12fef05 Merge pull request #1250 from dchen1107/cleanup
Small clean up in validation.
2014-09-09 16:24:12 -07:00
Brendan Burns e7625c8d91 Add current state to replica controller. 2014-09-09 16:19:18 -07:00
Filipe Brandenburger 8de322f196 Use just GitVersion for the -version output
It turns out that that's simply the most useful information about the version
that was built.

For a git tree, it includes information about the closest release, number of
commits since the release, enough of the SHA1 to find the exact commit and
whether the tree was clean or dirty at build time.

For a build from tarball, it will include information of which release was built
and, when using a tarball from a not released commit (e.g. downloading
"master.tar.gz" from GitHub, not recommended!) it will include the -dev prefix
to indicate that was not an official release. (That's as good as we can get with
it.)

If additional information is required, it can be found with -version=raw.

Tested:

- Built from the git tree:

    $ _output/go/bin/kubecfg -version
    Kubernetes v0.2-29-gd916051e9db865
    $ _output/go/bin/kubecfg -version=raw
    version.Info{Major:"0", Minor:"2+", GitVersion:"v0.2-29-gd916051e9db865", GitCommit:"d916051e9db8650899acb9415a4e285e3e3a1f87", GitTreeState:"clean"}

- Built it from a dirty git tree:

    $ { echo 'package version'; echo 'var X = 1'; } >pkg/version/sillyvar.go
    $ make
    $ _output/go/bin/kubecfg -version
    Kubernetes v0.2-29-gd916051e9db865-dirty
    $ _output/go/bin/kubecfg -version=raw
    version.Info{Major:"0", Minor:"2+", GitVersion:"v0.2-29-gd916051e9db865-dirty", GitCommit:"d916051e9db8650899acb9415a4e285e3e3a1f87", GitTreeState:"dirty"}

- Tag it v0.3 and build it:

    $ git tag -a v0.3 -m 'Release Kubernetes v0.3'
    $ make
    $ _output/go/bin/kubecfg -version
    Kubernetes v0.3
    $ _output/go/bin/kubecfg -version=raw
    version.Info{Major:"0", Minor:"3", GitVersion:"v0.3", GitCommit:"d916051e9db8650899acb9415a4e285e3e3a1f87", GitTreeState:"clean"}

- Built it from a tarball:

    $ wget -O kubernetes.tgz https://api.github.com/repos/filbranden/kubernetes/tarball/version_string1
    $ tar xvf kubernetes.tgz
    $ cd filbranden-kubernetes-*/
    $ make
    $ _output/go/bin/kubecfg -version
    Kubernetes v0.2-dev
    $ _output/go/bin/kubecfg -version=raw
    version.Info{Major:"0", Minor:"2+", GitVersion:"v0.2-dev", GitCommit:"", GitTreeState:"not a git tree"}

- Built it with `go get`:

    # I need to prefetch the tree to replace the official tree with mine:
    $ mkdir -p ${TMPDIR}/gopath/src/github.com/
    $ ln -sf filbranden ${TMPDIR}/gopath/src/github.com/GoogleCloudPlatform

    # Now run `go get` to build kubecfg:
    $ GOPATH=${TMPDIR}/gopath go get github.com/filbranden/kubernetes/cmd/kubecfg

    # Check the version:
    $ ${TMPDIR}/gopath/bin/kubecfg -version
    Kubernetes v0.2-dev
    $ ${TMPDIR}/gopath/bin/kubecfg -version=raw
    version.Info{Major:"0", Minor:"2+", GitVersion:"v0.2-dev", GitCommit:"", GitTreeState:"not a git tree"}

Signed-off-by: Filipe Brandenburger <filbranden@google.com>
2014-09-09 16:19:14 -07:00
Dawn Chen 80fa392f6b Small clean up in validation. errs is used as import path alias in validation.go, but it is reused
as a variable for validateVolume.
2014-09-09 16:08:21 -07:00
Filipe Brandenburger 61877f2dd0 Update version to use -dev suffix
According to the plan listed in docs/releasing.md.

The gitMinor will keep using a "+" suffix instead for now.

Added a //TODO to deprecate gitMajor and gitMinor in a follow up.

Tested:
- Built it from the git tree:

    $ make
    $ _output/go/bin/kubecfg -version
    Kubernetes version 0.2+, build 8d31eb03c11d4db64ae26809eef7f73070efd811
    $ _output/go/bin/kubecfg -version=raw
    version.Info{Major:"0", Minor:"2+", GitVersion:"v0.2-29-g8d31eb03c11d4d", GitCommit:"8d31eb03c11d4db64ae26809eef7f73070efd811", GitTreeState:"clean"}

- Built it with a direct `go install` (same as tarball):

    $ GOPATH=${PWD}/_output/go:${PWD}/Godeps/_workspace go install $KUBE_GO_PACKAGE/cmd/kubecfg
    $ _output/go/bin/kubecfg -version=raw
    version.Info{Major:"0", Minor:"2+", GitVersion:"v0.2-dev", GitCommit:"", GitTreeState:"not a git tree"}
    $ _output/go/bin/kubecfg -version
    Kubernetes version 0.2+, build (unknown)

A follow up commit will address the output of the -version (without "raw") command to use gitVersion instead of Major + Minor.

Signed-off-by: Filipe Brandenburger <filbranden@google.com>
2014-09-09 15:46:20 -07:00
Brendan Burns 4ba4762827 Insert the current state of a replica controller. 2014-09-09 15:23:34 -07:00
Jessica Forrester d82cf7dd48 Rebased and fixed test cases 2014-09-09 17:50:18 -04:00
Jessica Forrester 0cac1c5f79 Switch LogOf from panicking when logger is missing to creating logger with the defaults.
Update CORS tests to a table-based test and cover more cases.
2014-09-09 17:50:18 -04:00
Jessica Forrester becf6ca4e7 Move RecoverPanics to be the top level wrapped handler. Add new method to be sure a logger has been generated instead of assuming one has. Move regexp list compilation into a utility and pass regexp list into CORS. 2014-09-09 17:50:18 -04:00
Jessica Forrester 8b4ca9c2a7 Move CORS handler wrapping into cmd/apiserver and switch config flag to a list of allowed origins 2014-09-09 17:50:18 -04:00
Jessica Forrester 8723eece49 Add option to enable a simple CORS implementation for the api server 2014-09-09 17:50:18 -04:00
Tim Hockin 4ff76add57 Merge pull request #1147 from dchen1107/restart
Introduce the simplest RestartPolicy and handling.
2014-09-09 14:44:42 -07:00
Brendan Burns 69b359b689 Don't stack trace on 301s 2014-09-09 14:10:46 -07:00
Daniel Smith 1fd12778eb Merge pull request #1231 from brendandburns/service
Fix a bug where we don't return an error.
2014-09-09 12:48:19 -07:00
Brendan Burns a343a93b2d Fix a bug where we don't return an error. 2014-09-09 10:29:00 -07:00
Dave Bailey 5ec748dc5e avoid dumping error pages into error messages 2014-09-09 17:20:58 +00:00
csrwng 6551f4e0f0 Use codec to encode/decode api objects in client and kubecfg parser 2014-09-09 08:45:53 -04:00
Dawn Chen 15cab4d053 Introduce the simplest RestartPolicy and handling. 2014-09-08 22:41:38 -07:00
brendandburns b4e08dd347 Merge pull request #1219 from filbranden/release_v0.2
Release Kubernetes v0.2
2014-09-08 21:04:34 -07:00
Filipe Brandenburger a0abb38157 Release Kubernetes v0.2
This commit will be tagged with a v0.2 annotated git tag.

Tested:
- Created a git tag for it, built it and checked output of -version:

    $ git tag -a -m 'Release Kubernetes v0.2' v0.2

    $ make
    hack/build-go.sh
    Building local go components

    $ _output/go/bin/kubecfg -version
    Kubernetes version 0.2, build b47f9af5c9ea770973be1b001adaffbdfcb08618

    $ _output/go/bin/kubecfg -version=raw
    version.Info{Major:"0", Minor:"2", GitVersion:"v0.2", GitCommit:"b47f9af5c9ea770973be1b001adaffbdfcb08618", GitTreeState:"clean"}

- Made sure hack/test-go.sh and hack/test-cmd.sh still pass.

Fixes: Issue #1018

Signed-off-by: Filipe Brandenburger <filbranden@google.com>
2014-09-08 16:21:36 -07:00
Daniel Smith 41754f5bd4 Merge pull request #1192 from smarterclayton/standardize_etcd_errors
Return standard API errors from etcd registry by operation
2014-09-08 15:57:08 -07:00
Clayton Coleman 3ffe259ac7 Return standard API errors from etcd registry by operation
Adds pkg/api/errors/etcd, which defines default conversions
for common CRUD operations from etcd to api.
2014-09-08 18:46:01 -04:00
Tim Hockin 81b502b0a6 Merge pull request #1217 from lavalamp/fixApi
Rename all XStorage types to REST for clarity
2014-09-08 15:38:47 -07:00
Daniel Smith 759c3f9033 Rename all XStorage types to REST for clarity 2014-09-08 15:19:13 -07:00
Daniel Smith 4c1d5f0c44 Merge pull request #1160 from simon3z/master
Support configurations for cloudproviders
2014-09-08 15:12:51 -07:00
Federico Simoncelli 6add1993c9 Support configurations for cloudproviders
Cloud providers may need specific configurations to run properly (e.g.
authentication parameters, uri, etc.).

This patch adds the simplest implementation for passing configurations
to cloudproviders: a new apiserver -cloud_config flag to specify the
path to an arbitrary configuration file.

Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
2014-09-08 21:46:53 +00:00
Dawn Chen 7ace5a3e83 Passing pod UUID to Kubelet. 2014-09-08 14:24:09 -07:00
Daniel Smith 9345da0bfd Fix build 2014-09-08 13:05:38 -07:00
brendandburns 753b80c9b8 Merge pull request #1105 from lavalamp/proxy
Add a generic proxier
2014-09-08 12:51:24 -07:00
Brian Ketelsen 83d3da1436 changed address variable to bindAddress. Used net.JoinHostPort() instead of fmt.Sprintf() 2014-09-07 23:50:36 -07:00
Brian Ketelsen 34922226fd allow proxy to accept a listen address. fixes #1220 2014-09-07 23:27:43 -07:00
Daniel Smith fc09f988b4 Make tests pass again 2014-09-07 22:26:42 -07:00
Daniel Smith 48ce23ac91 Make client use pointers 2014-09-07 22:19:24 -07:00
Daniel Smith 0d30a656ef Do interface{} -> runtime.Object rename everywhere 2014-09-07 22:19:24 -07:00
Daniel Smith 1c2b65788d Rename Codec and ResourceVersioner to add Default in front, to allow for types of those names 2014-09-07 22:19:24 -07:00
Daniel Smith 828b70abb9 api and api/v1beta1 pass tests again 2014-09-07 22:19:24 -07:00
Daniel Smith 77edb91032 Add Object type to runtime, make runtime test pass. 2014-09-07 22:19:24 -07:00
Daniel Smith 0c6adde92e Change conversion package so that AddKnownTypes takes pointers. 2014-09-07 22:19:24 -07:00
Daniel Smith 2ba6503511 Add continuation to conversion routines 2014-09-07 22:19:24 -07:00
Tim Hockin 6ebe69a875 Merge pull request #1156 from brendandburns/api
Add support for the PostStart event handler.
2014-09-05 22:13:56 -07:00
brendandburns 8e10ee5169 Merge pull request #1197 from lavalamp/fixApi
Rename Object to EmbeddedObject
2014-09-05 21:39:37 -07:00
Clayton Coleman e0c47d979c Merge pull request #1194 from fsouza/remove-godockerclient-copiedstructs
api/v1beta1: use go-dockerclient instead of docker-api-structs
2014-09-05 17:58:03 -04:00
Daniel Smith 7790961011 Rename Object to EmbeddedObject 2014-09-05 14:43:35 -07:00
Joe Beda 77488835fe Merge pull request #1190 from derekwaynecarr/vagrant_cluster_hostname
Improve vagrant hostname support across cluster
2014-09-05 14:30:09 -07:00
derekwaynecarr 7f75aae8ab Improve vagrant hostname support across cluster 2014-09-05 16:39:39 -04:00
Daniel Smith b6f1f84875 Extend proxy test to test all URL rewriting cases. 2014-09-05 13:33:31 -07:00
Daniel Smith 6554ee96f7 Rewrite proxy code for clarity and correctness. 2014-09-05 13:33:30 -07:00
Daniel Smith e2b645ec15 Add a generic proxier
To proxy traffic to anything that implements ResourceLocation.
Currently, this is only services. This is easily extensible to minions
(would supercede existing mechanism) and pods.
2014-09-05 13:33:30 -07:00
Francisco Souza 6d0f84c700 api/v1beta1: use go-dockerclient instead of docker-api-structs
This involves updating go-dockerclient and removing the patched code.

Related to #692 and fsouza/go-dockerclient#146.
2014-09-05 17:31:13 -03:00
Brendan Burns d0884accd7 Add support for the PostStart event handler. 2014-09-05 12:37:57 -07:00
Joe Beda 3c0a736908 Fix/expand kubecfg unit tests 2014-09-04 13:25:39 -07:00
Joe Beda f8e2f927f6 Pretty up the demo a little.
Use images and some better formatting.  Also add scripts to help prevent typos.

This based on an improved version done by Julia Ferraioli.  She came up with the cool images.
2014-09-04 13:25:39 -07:00
Joe Beda 45aaff9993 Add template update to rollingUpdate 2014-09-04 13:25:38 -07:00
Joe Beda 2444e4e1dc Simplify labels for `kubecfg run`
We created a name=<controller name> label on each object we created.  This was confusing.  Instead, piggyback on `replicationController` label and use that as the selector.
2014-09-04 13:25:38 -07:00
Daniel Smith 779de7361a Merge pull request #1138 from bcwaldon/common-watch-code
Use shared watch code in kubelet etcd config
2014-09-03 23:47:09 -07:00
Deyuan Deng 75470e6adf Include pod status in kebecfg humanreadable result. 2014-09-03 20:26:32 -04:00
Brian Waldon 85bf7064bb Use shared watch code in kubelet etcd config 2014-09-03 15:51:02 -07:00
Clayton Coleman 34c40e4e48 Errors should be part of api/errors, not apiserver
Renames constructor methods to be errors.New<name> which changed a few
places.
2014-09-03 17:16:00 -04:00
Clayton Coleman 6dd4831de8 Move validation errors into their own file 2014-09-03 17:14:03 -04:00
Clayton Coleman 01e668187c Services and Endpoints weren't properly sync'ing
They need incremental changes and a resync on start.
2014-09-03 16:04:55 -04:00
derekwaynecarr ca3f5a9f46 Fixup name vs ID terminology 2014-09-03 10:27:33 -04:00
Brendan Burns dd9ecf5b79 Add types for lifecycle events. 2014-09-02 15:14:13 -07:00
brendandburns 25fdade6fa Merge pull request #1134 from thockin/race
try to fix data race
2014-09-02 14:07:15 -07:00
Daniel Smith d20264351b Merge pull request #1077 from brendandburns/service
Step #1 in migrating the service controller away from the apiserver.
2014-09-02 14:03:52 -07:00
Tim Hockin 8ad98db773 Merge pull request #1121 from filbranden/rawversion2
Add support for -version=raw
2014-09-02 13:53:13 -07:00
Tim Hockin 6a624a2b4f try to fix data race 2014-09-02 13:51:15 -07:00
Daniel Smith a63966e73c Combine pkg/apitools and pkg/api/common and call the result pkg/runtime 2014-09-02 11:15:44 -07:00
Daniel Smith 099c8fd36f Propagate rename; tests pass again. 2014-09-02 10:42:06 -07:00
Daniel Smith 7615c00a9a Make validation work when not in the api package. 2014-09-02 10:42:06 -07:00
Daniel Smith eb5ca80946 Split helper test, move fuzzing to api package as serialization_test.go 2014-09-02 10:40:52 -07:00
Daniel Smith 6121e61f99 Split api into api, api/common, api/validation & apitools 2014-09-02 10:40:52 -07:00
Brendan Burns fee2b90608 Step #1 in migrating the service controller away from the apiserver.
Start using the API server for listing services.
2014-09-02 10:25:04 -07:00
Tim Hockin 5bed06f614 Merge pull request #1129 from VojtechVitek/godoc
Godoc improvements
2014-09-02 09:45:05 -07:00
Clayton Coleman 64c7348a19 Expand api ResourceVersioner test 2014-09-02 09:52:37 -04:00
Vojtech Vitek (V-Teq) 42c656501c Add several missing pkg Godoc files
Signed-off-by: Vojtech Vitek (V-Teq) <vvitek@redhat.com>
2014-09-02 13:41:11 +02:00
Vojtech Vitek (V-Teq) 59f58cd043 Unify Godoc formatting, fix various typos
Signed-off-by: Vojtech Vitek (V-Teq) <vvitek@redhat.com>
2014-09-02 13:41:03 +02:00
Deyuan Deng d528949547 Fix pod status error with List method. 2014-09-01 21:23:50 -04:00
Filipe Brandenburger 1d8067450c Rename `pkg/version/flag` to `pkg/version/verflag`
This avoids some conflict with the built-in `flag` module in Go. The
module was already being renamed to `verflag` on import anyways, so we
might as well just call it that.

Tested:
- hack/build-go.sh and ran the resulting binaries with -version args.

Signed-off-by: Filipe Brandenburger <filbranden@google.com>
2014-08-29 23:19:32 -07:00
Filipe Brandenburger 2421c738a6 Add support for -version=raw to print the Go version.Info
This can be helpful to print the internal fields of the version
information that will contain more details about the git tree than the
short -version output will.

Tested:
- Tested getting the raw version:
  $ _output/go/bin/kubecfg -version=raw
  version.Info{Major:"0", Minor:"1+", GitVersion:"v2.2.1-33-gdc4becd9765393", GitCommit:"dc4becd9765393fa05a3eb06f6af9e00068fe0c5", GitTreeState:"dirty"}

- Tested getting the simple version:
  $ _output/go/bin/kubecfg -version
  Kubernetes version 0.1+, build dc4becd976

- Tested getting the help output:
  $ _output/go/bin/kubecfg 2>&1 | grep -- -version
    -version=false: Print version information and quit

- Made sure -version=true and -version=false works, that -version with
  an invalid argument works as expected (prints usage help) and that
  -version followed by space will not try to use the next word as its
  argument (i.e. `-version raw` prints the version but not the raw one.)

Signed-off-by: Filipe Brandenburger <filbranden@google.com>
2014-08-29 23:15:24 -07:00
Joe Beda 2d8e160775 Merge pull request #1117 from lavalamp/fixApi
Invert api and api/v1beta1 dependencies
2014-08-29 14:59:15 -07:00
Daniel Smith 9928c40ea6 Merge pull request #1099 from smarterclayton/return_resource_version_on_list
Add the resource version to api.*List items from etcd
2014-08-29 13:41:46 -07:00
Daniel Smith aa9b9b9fa8 Invert api and api/v1beta1 dependencies
This is some cleanup that has been needed for a while.
There's still one more step that could usefully be done, which is to
split up our api package into the part that provides the helper
functions and the part that provides the internal types. That can come
later.

The v1beta1 package is now a good example of what an api plugin should
do to version its types.
2014-08-29 12:15:30 -07:00
Clayton Coleman 821f9bd5e7 Merge pull request #1102 from lavalamp/fixApi
Fix incorrect tag in MinionList
2014-08-29 10:54:15 -04:00
Daniel Smith dd862a7c53 Fix flaky scheduler factory test. 2014-08-28 20:32:20 -07:00
Clayton Coleman bafc422ac0 Add the resource version to api.*List items from etcd
Allows clients to watch more easily (can invoke Get, then
Watch).
2014-08-28 23:17:00 -04:00
Daniel Smith a2b03ea93b Fix incorrect tag in MinionList 2014-08-28 20:06:17 -07:00
Daniel Smith e30d229a34 Merge pull request #1097 from bcwaldon/remove-code
Remove unnecessary parameter from NewRegistry
2014-08-28 17:37:05 -07:00
Daniel Smith 93818a9ce0 Merge pull request #1095 from dchen1107/cleanup
Fixed kubelet /healthz by using healthz package
2014-08-28 17:25:56 -07:00
Brian Waldon 816c4a3c76 Remove unnecessary parameter from NewRegistry 2014-08-28 16:52:45 -07:00
Dawn Chen 223fb6e610 Fixed kubelet /healthz by using healthz package
Fixed #1094
2014-08-28 15:34:39 -07:00
Daniel Smith 3c49aa96fe Merge pull request #1026 from lavalamp/redirect
Add simple service redirection
2014-08-28 14:54:10 -07:00
Clayton Coleman 818f357128 Client should validate the incoming host value
Convert host:port and URLs passed to client.New() into the proper
values, and return an error if the value is invalid.  Change CLI
to return an error if -master is invalid.  Remove Client.rawRequest
which was not in use, and fix the involved tests. Add NewOrDie

Preserves the behavior of the client to not auth when a non-https
URL is passed (although in the future this should be corrected).
2014-08-28 13:47:36 -04:00
brendandburns b743c3de77 Merge pull request #1082 from smarterclayton/incorrect_manifest_validation
Incorrect validation error for container image
2014-08-28 09:32:29 -07:00
Clayton Coleman cc1ab0a3db Incorrect validation error for container image 2014-08-28 09:58:16 -04:00
Vojtech Vitek (V-Teq) 5500bbade6 Fix typos in pkg docs
Signed-off-by: Vojtech Vitek (V-Teq) <vvitek@redhat.com>
2014-08-28 11:43:35 +02:00
Daniel Smith 4de254444e Add simple service redirection 2014-08-27 20:51:41 -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
Vishnu Kannan 180e9ed493 Add unit tests for pkg/client.ListMinions() 2014-08-27 21:07:22 +00: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
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
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
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 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
Brendan Burns 556eb0f400 Add a run command to the kublet server 2014-08-26 13:57:44 -07:00
Daniel Smith c7999a7f75 Merge pull request #964 from smarterclayton/return_validation_errors_from_api
Return validation errors via the REST API
2014-08-26 12:44:00 -07:00
Clayton Coleman 7487f9a951 Merge pull request #1040 from brendandburns/hostname
Switch the hostname in a container to be the pod id.
2014-08-26 15:02:05 -04:00
Brendan Burns 4f1fa939f7 Switch the hostname in a container to be the pod id. 2014-08-26 11:13:53 -07:00
Joe Beda bce7a4bd90 Merge pull request #1014 from smarterclayton/set_commit_with_ldflags
Use -ldflags to set git commit version
2014-08-26 10:56:56 -07:00
Clayton Coleman 0a841a49fd Naming of Reason constants is inconsistent
Changed ReasonType to StatusReason (to match the field) and
changed CauseReason to CauseType and renamed StatusCause.Reason to
Type.
2014-08-26 13:39:21 -04:00
Clayton Coleman 52923a1348 Return validation errors from storage create/update 2014-08-26 13:30:55 -04:00
Clayton Coleman 84db1da42b Convert field errors into a selector for the object
Satisfies the "Field" condition for a Cause.  Also addresses
parts of #914.
2014-08-26 13:30:55 -04:00
Clayton Coleman d326ba2976 Add a Causes array to status details for validation errors
Uses the same constant values as api/errors for each nested
reason.
2014-08-26 13:30:55 -04:00
Clayton Coleman 60126bfe64 Make the validation types match the pending ReasonCauses 2014-08-26 13:30:55 -04:00
Daniel Smith aeaa3f99fb Merge pull request #1037 from thockin/proxy
Fix a race in proxy.
2014-08-25 22:10:54 -07:00
Tim Hockin 23fc00be5c Fix a race in proxy.
addService() eventually calls getServiceInfo(), but the serviceInfo object may
not be installed yet (race).
2014-08-25 21:38:16 -07:00
brendandburns 6f84f6d92f Merge pull request #1000 from lavalamp/fix2
Need to remove pods that change labels.
2014-08-25 21:20:33 -07:00
Satnam Singh 3f0f119e42 Very minor change to use camelCase for ReasonType as suggested in issue #914. 2014-08-25 16:57:13 -07:00
Daniel Smith 6b69ed402b Change 'sendCreate' to 'sendAdd'; integration passes. 2014-08-25 15:56:55 -07:00
Daniel Smith db1c0db5c7 Move etcd watch code to its own files 2014-08-25 15:56:54 -07:00
Daniel Smith 72b35816cd Need to remove pods that change labels. 2014-08-25 15:56:54 -07:00
brendandburns 5155222edc Merge pull request #961 from lavalamp/removeAssignCall
Remove synchronous assignPod call from create pod
2014-08-25 15:25:27 -07:00
Daniel Smith b8c57ea181 Merge pull request #1006 from satnam6502/master
Make validation check for legal service port numbers.
2014-08-25 14:51:22 -07:00
Clayton Coleman 9336373857 Use -ldflags to set git commit version 2014-08-25 16:40:47 -04:00
Daniel Smith 98ef76c164 Remove references to scheduler from pod storage. 2014-08-25 11:59:00 -07:00
Daniel Smith ddba004ad0 Add constraint package to let us reject invalid assignments. 2014-08-25 11:59:00 -07:00
Daniel Smith 0a1dfa366e Make integration test pass. 2014-08-25 11:59:00 -07:00
Daniel Smith 29e9e13188 Remove synchronous assignPod call from create pod 2014-08-25 11:59:00 -07:00
Brendan Burns 3012c10ae3 Add a log when we drop a minion because of health checks. 2014-08-25 11:43:02 -07:00
Satnam Singh 4105f7ef61 Code review changes to adjust pacakge name for storage_test.go 2014-08-25 10:38:11 -07:00
Clayton Coleman b01d0c2874 Merge pull request #1002 from smarterclayton/improve_wait_api
Improve the wait.Poll GoDoc and api
2014-08-25 13:07:04 -04:00
csrwng 938548a9fb Break up API client into per-resource client and common code 2014-08-25 07:54:35 -04:00
Clayton Coleman 58f8ac860f Set creation timestamp on services 2014-08-23 14:33:24 -04:00
Clayton Coleman 286c3c543c Improve the wait.Poll GoDoc and api
Add more tests, and switch to timeouts instead of cycles.
Deflake TestPoller
2014-08-23 12:18:03 -04:00
Satnam Singh 7fcaf80f67 Make validation check for legal serive port numbers. 2014-08-22 14:44:21 -07:00
Clayton Coleman bd2cbdc312 Merge pull request #996 from brendandburns/selector
Add a validation that replicaSelector matches PodTemplate.Labels
2014-08-22 13:46:06 -04:00
Brendan Burns 5839378adc Add a validation that replicaSelector matches PodTemplate.Labels 2014-08-21 22:18:55 -07:00
Daniel Smith 42685ad8f1 Merge pull request #985 from brendandburns/kubecfg
Make rolling update be blocking.
2014-08-21 17:00:18 -07:00
Clayton Coleman 1c68247954 Merge pull request #909 from lavalamp/scheduler3
Scheduler plugin v1
2014-08-21 19:04:51 -04:00
Brendan Burns de1480fd2f Make rolling update be blocking. 2014-08-21 15:58:17 -07:00
Daniel Smith 3ab35c63f3 Merge pull request #828 from roberthbailey/config
Add validation when processing pod manifests from a URL.
2014-08-21 14:34:25 -07:00
Paul Morie 47fd5842ad Fix typo in tests 2014-08-21 17:02:28 -04:00
Dawn Chen df260c830f Merge pull request #905 from erictune/cleanup6
Dereference string* before printing it with "%s%".
2014-08-21 09:23:19 -07:00
brendandburns 8f5dd8cf63 Merge pull request #984 from thockin/make_vs_new
Rename a bunch of "Make" functions to "New"
2014-08-20 22:06:57 -07:00
Tim Hockin 0f97a73c1b Rename a bunch of "Make" functions to "New"
Also rename some to other names that make better reading.  There are still a
bunch of "make" functions but they do things like assemble a string from parts
or build an array of things.  It seemed that "make" there seemed fine.  "New"
is for "constructors".
2014-08-20 21:27:19 -07:00
brendandburns 1bd4ae0c62 Merge pull request #943 from smarterclayton/only_wait_for_acceptance
Clients must wait for completion of actions
2014-08-20 21:01:21 -07:00
brendandburns 25b3da718f Merge pull request #980 from thockin/cloudproviders
Make cloud providers into plugins
2014-08-20 21:00:51 -07:00
Tim Hockin edff541524 Treat async loops the same.
In the name of consistency, treat the PodCache loop the same as the
EndpointController.
2014-08-20 20:17:16 -07:00
Tim Hockin caadf10197 clarity: rename minionRegistryMaker to makeMinionRegistry 2014-08-20 20:17:16 -07:00
Tim Hockin f7d54390f9 Make cloud providers be plugins 2014-08-20 20:16:41 -07:00
Tim Hockin eb9f3394c5 Move VagrantCloud into its own pkg 2014-08-20 20:16:41 -07:00
Tim Hockin b23bef26eb Move GCECloud into its own pkg 2014-08-20 20:16:41 -07:00
Tim Hockin 95e0be9a63 Move FakeCloud into its own pkg 2014-08-20 20:16:41 -07:00
Daniel Smith 3d47c8bad1 Fix up client tests now that we check the query in FakeHandler 2014-08-20 16:50:02 -07:00
Daniel Smith 8a9eaf911f For testability & reuse, move scheduler setup into its own package. 2014-08-20 16:50:02 -07:00
Clayton Coleman 493863eb93 Return immediately when controllers/pods are committed
Add client waiting conditions.
2014-08-20 18:46:10 -04:00
Clayton Coleman 34031dbc6a Remove excessive waiting in kubelet etcd loop
Listen to etcd longer, and wait a shorter time before reconnecting.
No longer an argument to the source.
2014-08-20 18:46:10 -04:00
Daniel Smith 4c4ca59050 Add poller to cache. 2014-08-20 15:32:49 -07:00
Daniel Smith dddad888b5 Begin scheduler plugin 2014-08-20 15:32:49 -07:00
Daniel Smith 4c3f509d94 Make cache.Reflector more injectable. Add test for resource version state keeping. 2014-08-20 15:32:49 -07:00
brendandburns 6ca912e07f Merge pull request #977 from pmorie/unit
Add missing case for IntOrString unit tests
2014-08-20 14:30:38 -07:00
Paul Morie 5331cd6ec0 Add missing case for IntOrString unit tests 2014-08-20 17:22:29 -04:00
derekwaynecarr fd8741edf2 Refactor kubelet to use http.ServeMux 2014-08-20 16:08:08 -05:00
Clayton Coleman 6b05d71d74 Merge pull request #972 from brendandburns/pod
Switch api.Status to *api.Status in a bunch of places.
2014-08-20 16:53:36 -04:00
Vishnu Kannan 2b61831c22 Improve kubelet logging - log the docker container image name when docker pull fails. 2014-08-20 10:30:42 -07:00
Brendan Burns a198bbb0ae Switch api.Status to *api.Status in a bunch of places. 2014-08-20 10:21:49 -07:00
Daniel Smith f650337ec3 Merge pull request #913 from csrwng/pluggable_type_printing
Allow kubecfg to print custom types
2014-08-20 10:01:56 -07:00
csrwng 14714f2638 Allow kubecfg to print custom types 2014-08-20 12:23:02 -04:00
Deyuan Deng c104551025 Improve pkg/registry/service code coverage. 2014-08-19 20:13:00 -04:00
Daniel Smith b4973bbac4 Merge pull request #956 from brendandburns/service
Fix the proxier when a service with the same port is re-created after being deleted.
2014-08-19 16:22:04 -07:00
brendandburns a9ba3687f4 Merge pull request #958 from dchen1107/port
Fix #926
2014-08-19 16:15:15 -07:00
Dawn Chen 5a2365b323 Fix #926
Make HostPort a real option without being set to ContainerPort if absent.
2014-08-19 15:44:50 -07:00
Brendan Burns da74625ac6 Fix the proxier when a service with the same port is re-created, actually restart the proxy. 2014-08-19 12:24:10 -07:00
brendandburns bd53643647 Merge pull request #851 from derekwaynecarr/cloud_provider
Vagrant supports a cloud provider
2014-08-18 18:23:49 -07:00
brendandburns 88baa52134 Merge pull request #918 from lavalamp/bindImpl
Implement bindings
2014-08-18 18:19:33 -07:00
brendandburns 5756a635c9 Merge pull request #949 from lavalamp/bugFix
Add comment for clarity and logging for debugging.
2014-08-18 18:15:37 -07:00
Daniel Smith f689d44d25 Add comment for clarity and logging for debugging. 2014-08-18 17:43:10 -07:00
Daniel Smith d363d5d942 Merge pull request #944 from brendandburns/service
Add a better test for service environment variables. Fix bugs.
2014-08-18 16:59:21 -07:00
brendandburns 0126688ca0 Merge pull request #939 from derekwaynecarr/kubecfg_stop_should_reuse_code
Use common resize controller logic for stop in kubecfg
2014-08-18 16:58:56 -07:00
Daniel Smith 138b560efb Implement bindings
This will effectively cause no changes until we remove the assignPod
call from CreatePod().
2014-08-18 16:55:44 -07:00
Brendan Burns 3eb044b495 Add a better test for service environment variables
Fix bugs.
2014-08-18 16:53:59 -07:00
Clayton Coleman bcf7a37e21 Merge pull request #906 from lavalamp/watch
Watch improvements.
2014-08-18 17:11:08 -04:00
derekwaynecarr 3c68b0a009 Use common resize controller logic for stop 2014-08-18 15:58:31 -04:00
Brendan Burns 05ab1e49fb Address some follow up comments. 2014-08-18 12:49:52 -07:00
Tim Hockin e472752ff9 Merge pull request #875 from brendandburns/exec
Add a in container exec based health check.
2014-08-18 12:19:22 -07:00
Brendan Burns 0caae9c1d4 Add a in container exec based health check. 2014-08-18 12:00:11 -07:00
derekwaynecarr 8df21b84a1 Add vagrant cloudprovider 2014-08-18 14:30:31 -04:00
brendandburns 53f53516f6 Merge pull request #933 from derekwaynecarr/issue_878
Enforce isDir, elliminates message in kubelet.log
2014-08-18 11:07:59 -07:00
Clayton Coleman 13c3efbc4c The default client poll interval is extremely long
Most operations complete much more quickly than 20s, and those that
do take longer are going to be fixed to make them take less time
(#353)
2014-08-18 13:40:35 -04:00
derekwaynecarr 39293eaf56 Enforce isDir, elliminates message in kubelet.log 2014-08-18 13:17:41 -04:00
Daniel Smith b00afd7f3b Merge pull request #924 from thockin/cleanups2
Validation return types cleanup
2014-08-18 09:38:07 -07:00
Robert Bailey ce572050a8 Add tests for invalid container manifests. 2014-08-18 00:44:46 -07:00
Robert Bailey fecfe23ed1 Refactor tests to be table driven. 2014-08-18 00:17:06 -07:00
Robert Bailey 9ce364d498 Add validation when processing pod manifests from a URL. 2014-08-17 22:50:53 -07:00
Daniel Smith 4b2867fd8a Standardize watch usage in registry/storage objects. Fix up extremely confusing pod test object. 2014-08-16 19:07:41 -07:00
Daniel Smith d900134a60 Add filter to watch 2014-08-16 19:07:30 -07:00
Daniel Smith ca55bfb29c Add mux type to watch package 2014-08-16 19:07:29 -07:00
Daniel Smith e40e5b53a7 Add Watch to /pods. 2014-08-16 19:07:29 -07:00
Tim Hockin e0d9002717 All validations return ErrorList now 2014-08-16 13:48:48 -07:00
Tim Hockin a69979d22b Change ErrorList.Append() to append() 2014-08-16 13:34:06 -07:00
brendandburns 0426055940 Merge pull request #919 from lavalamp/delMem
Remove unused and not completely correct code
2014-08-15 20:24:31 -07:00
Daniel Smith 26e2256178 Remove unused and not completely correct code 2014-08-15 18:20:37 -07:00
Daniel Smith 2946e21f80 Merge pull request #916 from smarterclayton/unify_fake_client
Replace pkg/kubecfg#FakeKubeClient with the fake in pkg/client
2014-08-15 17:15:19 -07:00
Clayton Coleman 12a22db2a9 Merge pull request #911 from derekwaynecarr/fix_verify_boilerplate
Fix verify-boilerplate
2014-08-15 17:28:57 -04:00
Clayton Coleman 82b0ec5115 Replace pkg/kubecfg#FakeKubeClient with the fake in pkg/client 2014-08-15 17:15:53 -04:00
Daniel Smith daab393562 Merge pull request #780 from brendandburns/native
Add a utility for doing master election via etcd.
2014-08-15 11:48:13 -07:00
Brendan Burns a17acd30ee Add a utility for doing master election via etcd. 2014-08-15 11:42:16 -07:00
derekwaynecarr 8c07a0f524 Fix verify-boilerplate 2014-08-15 13:12:01 -05:00
Daniel Smith 881234c7ec Merge pull request #900 from thockin/cleanups2
Move validation errors into a pkg
2014-08-15 10:01:48 -07:00
brendandburns 39d2020392 Merge pull request #897 from smarterclayton/watch_starting_too_early
Watch should start from next index when getting the initial state
2014-08-15 09:46:13 -07:00
Tim Hockin b9e65c2438 Use new api/errors, get rid of api.* error code 2014-08-15 00:14:38 -07:00
Tim Hockin bcd588ec15 Break api error handling into a new pkg 2014-08-15 00:14:38 -07:00
Clayton Coleman befbf8466f Only write to etcd if values have changed
This prevents certain loops from writing data to etcd every few
seconds (when data hasn't changed).
2014-08-14 20:34:36 -04:00
Clayton Coleman 7c67cbff04 Watch should start from next index when getting the initial state
Also, the fake response we return should have an Action that is
appropriate for the operation.
2014-08-14 20:32:46 -04:00
csrwng 5538bfca01 Allow kubecfg to parse other types via initialization map 2014-08-14 18:14:12 -04:00
brendandburns 8daf8c7a30 Merge pull request #896 from smarterclayton/return_correct_index_for_delete
Delete should use current node, not prev node index
2014-08-14 14:59:52 -07:00
Joe Beda 5654f5b247 Merge pull request #904 from erictune/cleanup5
Return not required after panic.
2014-08-14 14:30:41 -07:00
Joe Beda 8092a80ad9 Merge pull request #903 from erictune/cleanup4
Pass obj with lock by reference.
2014-08-14 14:29:01 -07:00
Joe Beda 9f7f46d06b Merge pull request #901 from erictune/cleanup3
Remove unreachable code.
2014-08-14 14:27:31 -07:00
Clayton Coleman 87256127e0 Merge pull request #856 from pmorie/workaround-timestamp
Set CreationTimestamp in each storage implementation
2014-08-14 17:25:58 -04:00
Eric Tune 3d02700cc8 Dereference string* before printing it with "%s%".
Suggested by "go vet".
2014-08-14 14:06:09 -07:00
Eric Tune c42d8b8e73 Return not required after panic.
Suggested by "go vet".
2014-08-14 14:04:39 -07:00
Eric Tune ee91a19f90 Pass obj with lock by reference. Methods->funcs.
Fixes "lock passed by value" issues raised by "go vet".
2014-08-14 14:01:27 -07:00
Eric Tune 7de0df0be8 Remove unreachable code. 2014-08-14 13:56:42 -07:00
Paul Morie c69160059b Change CreationTimestamp to a util.Time and set in each storage implementation
Because time.Time doesn't work correctly with our YAML package, it is necessary
to introduce a type, util.Time, which serializes correctly to JSON and YAML.

Eventually we would like timestamping to cut across storage implementations;
for now, we set it in each storage.
2014-08-14 16:26:29 -04:00
Clayton Coleman 2872e565a2 Delete should use current node, not prev node index
The index an object was deleted on should be resp.Node.ModifiedIndex
2014-08-14 16:14:24 -04:00
Brendan Burns 7ea2a37219 deflake tests. 2014-08-13 15:41:42 -07:00
Daniel Smith 9355fae71e Merge pull request #881 from smarterclayton/etcd_closes_watch_channel
Etcd can close the watch channel for services
2014-08-13 14:11:50 -07:00
Joe Beda e5e4c8a7d3 Merge pull request #378 from monnand/godep
Use godep to manage dependencies
2014-08-13 13:28:15 -07:00
Daniel Smith 4d36502c9c Merge pull request #842 from smarterclayton/add_api_groups
Extract RESTHandler and allow API groupings
2014-08-13 13:05:02 -07:00
Nan Monnand Deng 41b0e5f34c move go-dockerclient-copiedstructs to third_party/docker-api-structs 2014-08-13 14:49:03 -04:00
Clayton Coleman 231ed95a61 Typo in name 2014-08-13 14:36:23 -04:00
Clayton Coleman 7d24615d8e Etcd can close the watch channel for services
Need to loop and reopen if it's closed.
2014-08-13 14:21:16 -04:00
Clayton Coleman bbf3b55e76 Extract RESTHandler and allow API groupings
Prepare for running multiple API versions on the same HTTP server
by decoupling some of the mechanics of apiserver.  Define a new
APIGroup object which represents a version of the API.
2014-08-13 10:53:34 -04:00
Daniel Smith aeea1b1e06 Merge pull request #732 from mfojtik/etcd_log
Avoid log flooding with messages about missing missing registry/services
2014-08-12 18:17:04 -07:00
Daniel Smith ab24790e8f Fix go files with wrong boilerplate 2014-08-12 17:48:00 -07:00
Daniel Smith 1a5a22c539 Fix files missing gofmt 2014-08-12 17:48:00 -07:00
brendandburns 74a7179e2e Merge pull request #858 from lavalamp/fix
Fix flaky TestOpGet
2014-08-12 15:19:13 -07:00
Daniel Smith f220aa1aba Fix flaky TestOpGet and TestSyncCreateTimeout 2014-08-12 14:23:12 -07:00
Michal Fojtik afbd7a6147 Make proxy/config/etcd.go less verbose when etcd is not available 2014-08-12 11:51:44 +02:00
Kelsey Hightower c21a0ca39f Breakup the registry package into separate packages.
Currently all registry implementations live in a single package,
which makes it bit harder to maintain. The different registry
implementations do not follow the same coding style and naming
conventions, which makes the code harder to read.

Breakup the registry package into smaller packages based on
the registry implementation. Refactor the registry packages
to follow a similar coding style and naming convention.

This patch does not introduce any changes in behavior.
2014-08-11 20:58:09 -07:00
Clayton Coleman c6dcfd544f Merge pull request #839 from yugui/fix/api-status
Make storage.Delete return *api.Status instead of api.Status
2014-08-11 20:01:28 -04:00
Daniel Smith c372b74bc8 Merge pull request #847 from thockin/health
Use IntOrString for health checks
2014-08-11 16:28:24 -07:00
Daniel Smith 6460a8cbf8 Correct confusing comment. 2014-08-11 15:58:59 -07:00
brendandburns 3222f61bca Merge pull request #557 from lavalamp/podLocation
Prepare for external scheduler
2014-08-11 15:27:24 -07:00
Tim Hockin 1c8704befc Merge pull request #592 from lavalamp/schedulerApi
Proposal for scheduler API
2014-08-11 15:20:45 -07:00
Daniel Smith 5e34a9784f Merge pull request #852 from smarterclayton/deliver_state_on_nil_version
Watch delivers current state for resourceVersion=0
2014-08-11 15:13:15 -07:00
Daniel Smith b5352a81c7 Use DesiredState rather than CurrentState for Host. 2014-08-11 15:12:51 -07:00
Dan Mace b986c520a7 Apply resource versioning to list extractions from etcd
Set the resource version on lists of objects extracted from etcd to prevent
them from always being interpreted as new during updates.
2014-08-11 21:11:08 +00:00
Clayton Coleman c5630a9567 Watch delivers current state for resourceVersion=0
Allows clients to get the current state without having to execute
a get followed by a watch.  Makes integration with action loops
much cleaner.
2014-08-11 17:07:14 -04:00
Daniel Smith b7752a86d4 Add debugging info printing to etcd fake
And make tests pass again.
2014-08-11 13:09:24 -07:00
Daniel Smith 9050c819dc Merge pull request #722 from smarterclayton/improve_errors
Normalize apiserver error handling of standard errors
2014-08-11 12:43:06 -07:00
Tim Hockin bca90f4866 Reduce and comment exports 2014-08-11 00:11:59 -07:00
Tim Hockin 7beac7a9af Split health_check.go into smaller parts.
Distinct files for core, http, and tcp.
2014-08-11 00:01:17 -07:00
Tim Hockin 24c516ec1d Move HTTP code out of health.go
Put it with the related HTTP code.
2014-08-10 23:50:06 -07:00
Tim Hockin c67c1edfb4 Use IntOrString for TCP health check ports
Clean up code to be more testable.  Add test cases for named and numeric
ports in TCP health checks.  Improve tests.
2014-08-10 23:44:42 -07:00
Tim Hockin 7201227cb1 Use IntOrString for HTTP health check ports
Clean up code to be more testable.  Add test cases for named and numeric
ports in HTTP health checks.  Improve tests.
2014-08-10 23:26:42 -07:00
Daniel Smith 7d605467dc New scheduler API
This commit adds a Binding object. The idea is that schedulers can write
these to cause pods to be asssigned to hosts. I'll provide an implementation
along with a rudimentary scheduler plugin.

This continues k8s' tradition of phrasing all APIs as RESTful handlers.
2014-08-10 19:05:03 -07:00
Daniel Smith 5cdce0e35a Prepare for external scheduler
1. Change names of Pod statuses (Waiting, Running, Terminated).
2. Store assigned host in etcd.
3. Change pod key to /registry/pods/<podid>. Container location remains
   the same (/registry/hosts/<machine>/kublet).
2014-08-10 15:05:36 -07:00
Clayton Coleman d419eedb06 Watch handler not returning after 404 2014-08-09 10:46:56 -04:00
Yuki Yugui Sonoda d359f3c396 Make storage.Delete return *api.Status instead of api.Status
as apiserver.APIServer.finishReq expects.

This solves the warning in finishReq:
"programmer error: use *api.Status as a result, not api.Status."
2014-08-09 22:18:24 +09:00
Clayton Coleman 0083fae453 Provide helpers and tests for common error types
Unify error handling in apiserver into a single path - RESTStorage
objects must provide appropriate errors individually.  Ensure ALL
errors which can be traced to logical faults with RESTStorage are
returned as api.Status objects.
2014-08-08 19:44:47 -04:00
Daniel Smith 079c9043bd Switch to new external fuzz package 2014-08-08 15:54:09 -07:00
Clayton Coleman 71c6e082d4 Merge pull request #805 from lavalamp/serverWatch
Improve watch
2014-08-08 17:30:28 -04:00
brendandburns 4c00acdde0 Merge pull request #827 from brendandburns/kubelet
Add container hashing to the container name, and restart containers on changes.
2014-08-08 14:17:11 -07:00
Daniel Smith 5dd130a350 Prevent accidental setting of sync or timeout 2014-08-08 14:09:14 -07:00
Daniel Smith 49cded3800 Simplify ResourceWatcher interface to one function. 2014-08-08 14:09:13 -07:00
Daniel Smith 71709ae09e Make replication controller use client 2014-08-08 14:09:13 -07:00
Daniel Smith 51caf759c3 Add WatchReplicationControllers to kubecfg's fake 2014-08-08 14:09:13 -07:00
Daniel Smith 85ff1d3e7f Add fake client to make testing easier. 2014-08-08 14:09:13 -07:00
Daniel Smith 097147545c Allow more general parameters to be made by client. Also fix style and comments. 2014-08-08 14:09:13 -07:00
Daniel Smith 283fdba6ab Add more parameters to Watch
* Add labels selector (same as List)
* Add fields selector
 * Plan to let you select pods by Host and/or Status
* Add resourceVersion to let you resume a watch where you left off.
2014-08-08 14:09:13 -07:00
Clayton Coleman a74fac7d70 Centralize path magic in apiserver into the New method
Make OperationHandler and WatchHandler properly encapsulate their
concerns and make them not depend on the global path
2014-08-08 16:33:44 -04:00
Brendan Burns 2986db9885 Add container hashing to the container name, and restart containers on changes. 2014-08-08 13:32:07 -07:00
Daniel Smith 2297bf8cea Merge pull request #830 from brendandburns/net
Delete containers for a pod if we have to create the network container.
2014-08-08 13:12:42 -07:00
Brendan Burns 38900a9c58 Delete containers for a pod if we have to create the network container. 2014-08-08 12:34:59 -07:00
Daniel Smith ac6d6ec974 Merge pull request #807 from smarterclayton/abstract_apiserver_encoding
Decouple apiserver from codec implementation
2014-08-08 11:57:04 -07:00
Victor Marmol adc57da3f3 Merge pull request #825 from brendandburns/runin
Add support for "run in"
2014-08-07 23:47:19 -07:00
Brendan Burns d31d0781b2 Add support for "run in" 2014-08-07 20:27:58 -07:00
Clayton Coleman c9fc0bcf3d Decouple apiserver from codec implementation
The apiserver on initialization must be provided with a codec
for encoding and decoding all handled objects including api.Status
and api.ServerOp.  In addition, the RESTStorage Extract() method
has been changed to New(), which returns a pointer object that the
codec must decode into (the internal object).  Switched registry
methods to use pointers for Create/Update instead of values.
2014-08-07 13:35:35 -04:00
Clayton Coleman d7f46718a8 Kubelet should have a max think time before auto resync
The sync frequency should be part of the syncLoop and resync no
less often than every X seconds.  The current implementation runs
even if a config update was delivered less than X seconds ago.
2014-08-07 10:40:03 -04:00
brendandburns b43e3865b4 Merge pull request #789 from thockin/cleanups2
Rename files: stringlist -> list (similar to set)
2014-08-06 22:41:46 -07:00
csrwng 92be0b3f43 Fix the wrong action being recorded on GetService
Fix the action recorded when GetService gets called on FakeKubeClient
Also fix parameter names (controller -> service)
2014-08-07 00:15:44 -04:00
Tim Hockin 37309ece6d Rename files: stringlist -> list (similar to set) 2014-08-06 20:13:40 -07:00
Tim Hockin ebef8af8fe Merge pull request #688 from Sarsate/volume-cleanup-loop
Volume reconciliation loop
2014-08-06 16:59:17 -07:00