Commit Graph

2124 Commits (b3527f41f01f900954e378eb8d78a0b5a72dbfde)

Author SHA1 Message Date
Rafael Chacón c9a3ab168d Validate pod on create and update.
* This commit adds pod validations on when creating and updating a pod.
2014-07-28 18:02:30 -07:00
Daniel Smith 811d710385 Merge pull request #674 from brendandburns/service
Don't hard code load balancer zone.
2014-07-28 17:15:22 -07:00
Brendan Burns c717b872a3 Don't hard code load balancer zone. 2014-07-28 15:54:16 -07:00
Daniel Smith 31a78c3e2b Merge pull request #619 from brendandburns/controller
Make individual controller actions asynchronous.
2014-07-28 15:35:19 -07:00
Brendan Burns 1a3e4f8baf Add some more synchronization. 2014-07-28 15:05:39 -07:00
Daniel Smith b3cc696486 All types stored in etcd are now API objects.
This means I made an api.ContainerManifestList, and added a JSONBase to
endpoints (and changed Name -> JSONBase.ID).
2014-07-28 11:27:36 -07:00
Clayton Coleman 5bc19584a5 Update Service and ReplControllers to validate
Validations are performed on update and on create.
2014-07-27 19:55:03 -04:00
James DeFelice 8e3e65e0f3 named container ports should have sane env var names 2014-07-25 17:55:52 -04:00
Brendan Burns bf5ae4bb9d Fork API types. 2014-07-24 21:47:08 -07:00
Jonathan Boulle c43035088b assorted formatting and typo fixes 2014-07-24 15:10:36 -07:00
Kelsey Hightower fce90dc761 Improve test coverage for the health package and remove mocks
The current tests for the health package utilize a fake HTTP client
for testing health checks and only cover a limited set of test cases.

This patch removes the need for mocks by using the httptest package
from the standard library. After removing the fake HTTP client a bug
was found in the health.Check function; it incorrectly assumes that
a http.Response is always non-nil. Fix the issue by moving the defer
that closes the http.Response.Body after error handling.

Related tests in the registry package have be refactored to work with
the changes made to the health.Check function. All methods that implement
the health.HTTPGetInterface interface now return a http.Response with
with a noop http.Response.Body.

This patch does not introduce any changes in behavior.
2014-07-21 15:30:29 -07:00
Daniel Smith 05f01a3654 Revert "assorted formatting and typo fixes" 2014-07-18 17:16:30 -07:00
Daniel Smith 211f6b312f Merge pull request #520 from jonboulle/master
assorted formatting and typo fixes
2014-07-18 17:15:30 -07:00
Daniel Smith 60b6f5b6bd Merge pull request #524 from brendandburns/service
Make the service reconciller use the API, not a PodRegistry
2014-07-18 15:01:09 -07:00
Brendan Burns c6255afe37 Make the service reconciller use the API, not a PodRegistry 2014-07-18 13:54:33 -07:00
Daniel Smith d8faca9e81 Merge pull request #512 from smarterclayton/communicate_missing_pod_info
PodInfo should indicate when a pod is not found
2014-07-18 13:03:16 -07:00
Jonathan Boulle 9e63c3a633 assorted formatting and typo fixes 2014-07-18 13:02:59 -07:00
Clayton Coleman a17f0d04d4 PodInfo should indicate when a pod is not found
Client should react.  Also, dial down the chattiness of errors for
pods which do not exist and stop processing NotFound earlier in
the podinfo chain
2014-07-18 13:32:10 -04:00
Brendan Burns fa69781b41 Add some more logging to service updates. 2014-07-18 09:29:49 -07:00
Yuki Yugui Sonoda 2aa3de12d4 Make RESTful operations return 404 Not Found when the target resource
does not exist.

In the original implementation, GET, DELETE and PUT operations on
non-existent resources used to return 500 but not 404.
2014-07-18 14:16:56 +09:00
Brendan Burns dceafbadab Add a caching minion registry. 2014-07-16 14:52:32 -07:00
Daniel Smith 3d63d733e3 Merge pull request #456 from brendandburns/health
Move health checking logic out to a utility. Add a minion registry that health checks.
2014-07-15 15:39:21 -07:00
Brendan Burns c5db874090 Addressed comments. 2014-07-15 15:16:36 -07:00
Kouhei Ueno bba23e28c2 Define EtcdErrorCode as constant and reuse EtcdError instances 2014-07-15 20:48:06 +09:00
Brendan Burns 62dfc74606 Move health checking logic out to a utility.
Add a minion registry that health checks.
2014-07-14 22:38:28 -07:00
Brendan Burns 3cc5ff15cf Update services to use the internal IP and port, now that its available. 2014-07-14 20:24:58 -07:00
Brendan Burns 0e798bcc3c Add link env vars. 2014-07-14 16:37:17 -07:00
Kouhei Ueno 12c9a73205 Add comments on registry/etcd_registry.go 2014-07-12 14:44:13 +09:00
brendandburns cdf75c57df Merge pull request #411 from nyaxt/lint_registry
Fixes go lint errors on pkg/registry/controller_registry.go
2014-07-11 21:41:58 -07:00
Kouhei Ueno f932891428 removes a comment on New and a typo fix 2014-07-12 13:21:52 +09:00
Tim Hockin 779cb84625 Merge pull request #397 from brendandburns/service
Add initial validation of Service objects
2014-07-11 14:43:47 -07:00
Brendan Burns b59dcbbb80 Fix tests. 2014-07-11 14:24:54 -07:00
Brendan Burns e9edfc754e Add initial validation of Service objects 2014-07-11 14:24:54 -07:00
Tim Hockin 1e05d1ac4e Merge pull request #394 from brendandburns/poddata
Try to grab live data if the cache has errors.
2014-07-11 11:55:54 -07:00
Kouhei Ueno bcbdbf6558 use New instead of Make and add comments to make golint happy 2014-07-11 22:46:22 +09:00
Kouhei Ueno e53658a3ed s/controllerId/controllerID/ to make golint happy. 2014-07-11 22:16:51 +09:00
Clayton Coleman 5896ac14da Ensure pod and manifest always have a UUID
* Fixes implication #2 in docs/identifiers.md
* Replication controller lets the apiserver set the pod ID
2014-07-10 18:03:48 -04:00
Brendan Burns 5a4621f451 Try to grab live data if the cache has errors. 2014-07-10 10:26:40 -07:00
Brendan Burns b4811abbd6 Address Clayton's comment. 2014-07-10 09:24:49 -07:00
Brendan Burns d5b7c4eb6d Fix integration tests with a check for nil
Add a unit test to validate behavior
2014-07-09 22:31:17 -07:00
Brendan Burns 7b11cbd622 Add PodIP to the info returned for a pod. 2014-07-09 22:13:07 -07:00
Daniel Smith a6144f656c Move etcd helpers to tools package so they can depend on api package. Add ResourceVersion, hook it up to etcd index to get atomic PUTs. 2014-07-02 15:42:05 -07:00
Daniel Smith 11d6451d2a Change kublet to serve podInfo instead of containerInfo. Plumb through system. 2014-07-01 16:41:10 -07:00
Daniel Smith 049bc6b6d4 Fix interface{} in api/types.go; plumb through system. 2014-07-01 16:41:09 -07:00
Brendan Burns 13d7a5959a Add sync behavior to the pod registry. Expand tests. 2014-07-01 11:31:21 -07:00
Clayton Coleman 15c96508a9 Use ID instead of Id (go style) everywhere
Fixes #278
2014-07-01 13:16:47 -04:00
brendandburns 65a62278b1 Merge pull request #286 from lavalamp/exampleEtcd
Separate scheduler from registry
2014-06-30 20:17:07 -07:00
Nan Deng f99a50ba69 use mutex instead of rwmutex 2014-06-30 11:13:42 -07:00
Nan Deng 3083a33e5f pkg/registry now passed race detector. 2014-06-30 11:04:57 -07:00
Daniel Smith 0760e9bc2c Fix up usage and tests, split into multiple files.
Doing this in multiple commits in an attempt to preserve the file movement history.
2014-06-29 12:35:43 -07:00
Daniel Smith 21e63cf75a Move scheduler to own package. 2014-06-29 12:30:49 -07:00
Daniel Smith 3d1e8a92d3 Move stringSet to util.StringSet 2014-06-28 11:46:51 -07:00
Daniel Smith 9a0f89170e Fix comments. Add timeout to integration test; don't make travis run for 15 minutes any more. 2014-06-27 15:40:23 -07:00
Daniel Smith 999ea50c2a Cleanup to use AtomicUpdate. 2014-06-27 15:14:57 -07:00
Daniel Smith 529870d121 Generic atomic update code 2014-06-27 15:14:57 -07:00
Brendan Burns b25f950362 Use etcd compare and swap to update the list of pods, to remove a race. 2014-06-27 11:09:36 -07:00
Brendan Burns a391b2ff03 Implement sync behavior for controllers. 2014-06-26 19:44:28 -07:00
Daniel Smith 001b07b292 Use net.JoinHostPort 2014-06-26 16:20:37 -07:00
Daniel Smith de06869d30 Merge pull request #244 from brendandburns/minion
Add a minion registry that is backed by a cloud provider.
2014-06-26 13:13:59 -07:00
Brendan Burns 93019b8563 Add a minion registry that is backed by a cloud provider. 2014-06-26 13:00:07 -07:00
Daniel Smith c9246dc130 Implement required sync changes everywhere.
Make requests sync by default, so that usage of them doesn't have to
change.
2014-06-26 10:33:21 -07:00
Tim Hockin 9f9e75f508 Switch to glog for logging, bridge logging to glog.
1) imported glog to third_party (previous commit)
2) add support for third_party/update.sh to update just one pkg
3) search-and-replace:
  s/log.Printf/glog.Infof/
  s/log.Print/glog.Info/
  s/log.Fatalf/glog.Fatalf/
  s/log.Fatal/glog.Fatal/
4) convert glog.Info.*, err into glog.Error*

Adds some util interfaces to logging and calls them from each cmd, which
will set the default log output to write to glog.  Pass glog-wrapped
Loggers to etcd for logging.

Log files will go to /tmp - we should probably follow this up with a
default log dir for each cmd.

The glog lib is sort of weak in that it only flushes every 30 seconds, so
we spin up our own flushing goroutine.
2014-06-24 20:51:57 -07:00
Daniel Smith 2cc038298b Make minion printing prettier; standardize on MinionList.Items like the other list types. 2014-06-24 15:29:17 -07:00
Daniel Smith c12a3773f5 Add minion types, address other comments 2014-06-23 13:27:52 -07:00
Daniel Smith 79ee5aa250 Implement minion registry. Minions now a first-class object. 2014-06-23 13:27:52 -07:00
Daniel Smith d460c01ade Add minion registry 2014-06-23 13:27:52 -07:00
brendandburns 49c25a4e28 Merge pull request #196 from lavalamp/marshal
Make api able to marshal its types correctly
2014-06-23 13:22:52 -07:00
Daniel Smith b850d36166 Fix boilerplate everywhere 2014-06-23 11:32:11 -07:00
Daniel Smith 41534c1cc5 Encode/decode working everywhere now. 2014-06-23 09:54:17 -07:00
Daniel Smith 2bcb44b6bd make Registry use Encode 2014-06-23 09:54:17 -07:00
Daniel Smith fb991fb84e Change type to []byte 2014-06-23 09:54:17 -07:00
Daniel Smith a718f6fdb8 minor fixes to scheduler_test 2014-06-22 11:17:23 -07:00
Daniel Smith 466be48c74 Merge pull request #166 from brendandburns/sync
Part #1 of synchronous requests: Add channels and a mechanism for waiting
2014-06-19 16:40:25 -07:00
Brendan Burns 2640de5c02 Part #1 of synchronous requests: Add channels and a mechanism for waiting on them 2014-06-19 16:13:13 -07:00
brendandburns e031c193a3 Merge pull request #164 from lavalamp/master
Standardize terminology on "selector"
2014-06-19 13:55:27 -07:00
Daniel Smith 5a1a793784 fix after rebase 2014-06-19 13:33:36 -07:00
Daniel Smith cfce408266 Rename ReplicasInSet to ReplicaSelector 2014-06-19 13:31:42 -07:00
Daniel Smith bc02b3c21a Rename [label] query to selector 2014-06-19 13:31:42 -07:00
Daniel Smith c4649d539b Separate labels and selector in services for clarity 2014-06-19 13:30:04 -07:00
Brendan Burns 302ec0f37b Wire in the pod cache. Just used for List for now. 2014-06-18 22:26:35 -07:00
Brendan Burns 4f549aae54 Add a PodCache that is responsible for caching pod information.
Not wired in yet.
2014-06-18 20:04:52 -07:00
Brendan Burns 420b2fdd57 Add support for populating host ip address. 2014-06-18 14:57:50 -07:00
Brendan Burns 57869958bc Add IP look up if the Cloud Provider is not null
Add Instance info to the Cloud Provider interface
2014-06-18 14:27:43 -07:00
Brendan Burns 31427d2d6f Add a fake cloud impl.
Update the service registry with unit tests.
2014-06-18 14:22:41 -07:00
Daniel Smith 7e464aa55c Test controller's synchronize method. Requires fake etcd client to be relocated. 2014-06-18 13:10:39 -07:00
Daniel Smith 65d6280936 Move etcd helper to util so it can be used elsewhere, too 2014-06-18 13:10:39 -07:00
Daniel Smith a24116c7bd Move controller to it's own package, it's not part of the registry. 2014-06-18 13:10:39 -07:00
Brendan Burns 77dd0afc26 Fix a bug in pod listing introduced in a recent refactor.
Add a test to catch a regression in the future.
2014-06-18 10:39:14 -07:00
Brendan Burns 5f66d33880 Add load balancing support to services. 2014-06-17 21:28:20 -07:00
brendandburns 1b1662d22d Merge pull request #145 from lavalamp/test_fix
Ensure that MockPodRegistry verifies the query it's passed.
2014-06-17 21:00:59 -07:00
Daniel Smith 246db91cb5 Merge pull request #135 from brendandburns/lb
Add load balancing support to services.
2014-06-17 18:40:42 -07:00
Daniel Smith 372e7b7727 Ensure that MockPodRegistry verifies the query it's passed. 2014-06-17 18:33:51 -07:00
brendandburns 1fd954b1d3 Merge pull request #138 from lavalamp/master
Normalize etcd_registry's storage & error handling
2014-06-17 17:34:42 -07:00
Justin Huff 1bef7fdd04 FirstFitScheduler was triggering a panic by passing nil as the query to
EtcdRegistry.ListPods. I think this was just missed during the recent
label refactor.
2014-06-17 15:48:37 -07:00
Daniel Smith 500ef4c46c Extract yet more redundancy 2014-06-17 13:53:47 -07:00
Daniel Smith 77556a5eb0 Extract more redundancy 2014-06-17 13:53:47 -07:00
Daniel Smith 25ab3b695e Move duplicated logic into single function. 2014-06-17 13:53:47 -07:00
Brendan Burns 2759b2367f Add load balancing support to services. 2014-06-17 12:37:39 -07:00
Daniel Smith c534d070e5 Rename LabelSet labels.Set 2014-06-16 22:05:12 -07:00
Daniel Smith 7d05ba4dc4 Implement new label system 2014-06-16 22:05:12 -07:00
Daniel Smith ad2ec27e91 Implement label queries for controller registry 2014-06-16 22:05:12 -07:00
Daniel Smith 50b9c34cf1 Fix error recovery. 2014-06-13 18:11:32 -07:00
Daniel Smith 2324dc1510 Merge pull request #102 from brendandburns/errors
Make all error strings lower case, for readability.
2014-06-13 15:56:40 -07:00
Brendan Burns 482a360f9e Make all error strings lower case, for readability. 2014-06-13 15:45:19 -07:00
Daniel Smith b95eef522b Add nice(r) error message on api server panic. Fix nil ptr derefs. 2014-06-13 14:59:36 -07:00
Daniel Smith 9cd9754693 Merge pull request #92 from brendandburns/container_info
Add status message population.
2014-06-13 10:49:32 -07:00
Brendan Burns c2c6055d70 Add status message population. 2014-06-13 09:42:04 -07:00
Daniel Smith f9a5fadf45 Merge pull request #86 from brendandburns/dot
Remove dot import syntax from registry package.
2014-06-12 20:58:13 -07:00
Brendan Burns 164160adef Address package level comments for readability. 2014-06-12 20:26:12 -07:00
Brendan Burns 0c3b9f2b69 fix dot import. 2014-06-12 20:14:41 -07:00
Joe Beda 353698558d gofmt -s -w cmd/ pkg/ 2014-06-12 18:34:47 -07:00
Brendan Burns b05bc22a62 Refactor the kubelet for testability.
Add unit tests.  Test coverage to 56.9%
2014-06-12 14:44:46 -07:00
Johan Euphrosine 4f6bed03ae gofmt -s pkg/ cmd/ 2014-06-12 14:16:19 -07:00
Brendan Burns 5563459178 Fix the first fit scheduler to randomize. 2014-06-11 17:11:48 -07:00
Brendan Burns c96b14aba0 Fixes for task->pod changes & a TODO 2014-06-08 23:29:04 -07:00
Brendan Burns fdcf273d50 Add pretty printing. 2014-06-08 23:07:29 -07:00
Brendan Burns 5cb4444176 Task -> Pod #4, the final chapter 2014-06-08 23:00:12 -07:00
Brendan Burns 6018497174 Task -> Pod part #3 2014-06-08 22:38:45 -07:00
Brendan Burns 79b7976cbf Add pod registry. 2014-06-08 21:43:17 -07:00
Brendan Burns 66e2575f2b More Task -> Pod 2014-06-08 21:43:17 -07:00
Brendan Burns c8d493f532 Part one of the grand rename: Task -> Pod 2014-06-08 21:17:53 -07:00
Brendan Burns 0181953242 Add kind in all cases for list. 2014-06-07 21:57:36 -07:00
Brendan Burns ef7cce5dad Populate 'Kind' field in all API types being returned. 2014-06-07 21:07:20 -07:00
Joe Beda 2c4b3a562c First commit 2014-06-06 16:40:48 -07:00