Commit Graph

1635 Commits (3bd10d4fb435f32d1f46e29771d9f8e881f04615)

Author SHA1 Message Date
Tim Hockin 1c02af3d16 Kill LivenessProbe.Type 2014-09-27 21:16:30 -07:00
Tim Hockin 04cdf286a4 Make and use api.Protocol type 2014-09-27 20:31:37 -07:00
Daniel Smith 6ac7578699 Add GetReference() 2014-09-26 17:40:07 -07:00
Brendan Burns 621df0da32 Merge pull request #1455 from lavalamp/selfLink
Start setting SelfLink
2014-09-26 17:34:18 -07:00
Brendan Burns 17c82606eb Second step in decoupling the service controller, use the apiserver for writes too. 2014-09-26 16:44:25 -07:00
Daniel Smith 37e505601e add self linking to apiserver 2014-09-26 15:08:02 -07:00
Daniel Smith b972f72248 convert multiple return values into a struct, add SelfLinker 2014-09-26 14:52:16 -07:00
Daniel Smith 75b93cf7e9 Add SelfLinker 2014-09-26 14:51:13 -07:00
Tim Hockin de3799d605 Merge pull request #1463 from derekwaynecarr/introduce_context_obj
Add ctx object to registry interface
2014-09-26 13:04:18 -07:00
Tim Hockin badeaef95f Merge pull request #1457 from brendandburns/pull
Add a rate limiter, use it to rate limit docker pulls.
2014-09-26 12:39:25 -07:00
derekwaynecarr b7fcc7d3ec Add ctx to registry test cases 2014-09-26 15:19:22 -04:00
Tim Hockin a7a46f71aa Merge pull request #1449 from brendandburns/scheduler
Refactor scheduler, use generic scheduler everywhere, delete old code.
2014-09-26 12:18:52 -07:00
derekwaynecarr 09365fed8d Add ctx to registry interfaces 2014-09-26 15:18:42 -04:00
Brendan Burns 3ac706a32e Add a rate limiter, use it to rate limit docker pulls. 2014-09-26 11:55:21 -07:00
Brendan Burns 1bb962961c Refactor schedulers, remove schedulers, use generic scheduler. 2014-09-26 10:26:25 -07:00
Tim Hockin f377d3eba8 Merge pull request #1441 from dchen1107/cleanup
Cleanup: Remove unnecessary dash escape when building docker container name
2014-09-26 10:17:11 -07:00
Dawn Chen 01c9015ed3 use _ as the separator for docker container name. 2014-09-26 09:21:21 -07:00
derekwaynecarr ee19ba186d Update to use api.Context 2014-09-26 11:50:34 -04:00
derekwaynecarr be85ad7a3d Add context object in test cases flows 2014-09-26 11:50:34 -04:00
derekwaynecarr 3e685674e7 Add context object to interfaces 2014-09-26 11:50:34 -04:00
Brendan Burns 377a9ac3d7 Merge pull request #1438 from lavalamp/eventing3
Event impl supporting changes
2014-09-25 22:01:09 -07:00
Tim Hockin 7a96ed38b3 Merge pull request #1439 from jhadvig/err_handler
Handle invalid pod name
2014-09-25 15:00:47 -07:00
jhadvig e5d8ee3811 Handle invalid pod name 2014-09-25 22:57:05 +02:00
Clayton Coleman 4e56dafecc Introduce some default log verbosity control
Move a lot of common error logging into better buckets:

glog.Errorf() - Always an error
glog.Warningf() - Something unexpected, but probably not an error
glog.V(0) - Generally useful for this to ALWAYS be visible
            to an operator
            * Programmer errors
            * Logging extra info about a panic
            * CLI argument handling
glog.V(1) - A reasonable default log level if you don't want
            verbosity
            * Information about config (listening on X, watching Y)
            * Errors that repeat frequently that relate to conditions
              that can be corrected (pod detected as unhealthy)
glog.V(2) - Useful steady state information about the service
            * Logging HTTP requests and their exit code
            * System state changing (killing pod)
            * Controller state change events (starting pods)
            * Scheduler log messages
glog.V(3) - Extended information about changes
            * More info about system state changes
glog.V(4) - Debug level verbosity (for now)
            * Logging in particularly thorny parts of code where
              you may want to come back later and check it
2014-09-25 16:30:14 -04:00
Clayton Coleman 74db9a1b20 Log apiserver errors that are not of an expected type
Currently HttpLog only expected status range - this logs errors
that come back from a REST storage object without being first
converted to something in pkg/api/errors.  This usually indicates
unexpected error conditions that a programmer didn't explicitly
check for - the kinds of problems that may need debugging by
an operator later.  Set to V(1) because they don't impair normal
operation.
2014-09-25 16:21:48 -04:00
Clayton Coleman a5ed10235e Merge pull request #1354 from lavalamp/eventing
Add Event to api types
2014-09-25 16:20:49 -04:00
Daniel Smith 4d4ebcd38e Add ttl parameter to CreateObj 2014-09-25 12:08:14 -07:00
Daniel Smith 3ea383d073 Make ExtractToList, deprecate ExtractList. 2014-09-25 12:07:16 -07:00
Daniel Smith 957b16053a restore test that somehow vanished + add SetList 2014-09-25 12:07:07 -07:00
Tim Hockin eea0265598 Merge pull request #1447 from lavalamp/fix
Fix type cast problems now that watch can pass errors
2014-09-25 12:06:17 -07:00
Daniel Smith 212f5305a8 Fix type cast problems now that watch can pass errors 2014-09-25 11:42:58 -07:00
Brendan Burns 44703efe2e Simplify schedulers. 2014-09-25 11:36:22 -07:00
Daniel Smith 283eaf3931 Add new Event type
* replaces previous Event type, which is too limited.
* Remove writing of old event type.
* Fix serialiazation test to automatically test all types.
2014-09-25 11:31:35 -07:00
Daniel Smith da92a016f5 Merge pull request #1420 from brendandburns/scheduler
Initial cut of a spreading and generic scheduler.
2014-09-25 11:10:53 -07:00
Brendan Burns 0cf8f28112 Refactor the code to make it more readable. 2014-09-25 10:49:36 -07:00
Brendan Burns 431caa93df Merge pull request #1335 from dchen1107/exit1
Convert existing kubernetes system to use ContainerStatus, instead of
2014-09-24 21:37:24 -07:00
Brendan Burns a981ae5480 Merge pull request #1433 from lavalamp/fixVerifyFmt
Fix verify gofmt
2014-09-24 15:44:38 -07:00
Brendan Burns 9ed8486fd7 Add a generic scheduler. 2014-09-24 15:38:52 -07:00
Brendan Burns 25b4939ffa Initial cut of a spreading scheduler. 2014-09-24 15:38:52 -07:00
Tim Hockin 65c14a1b09 Merge pull request #1421 from brendandburns/resource
Generalize the fit scheduler.
2014-09-24 15:37:24 -07:00
Daniel Smith bb0cd95a83 fix non-gofmt'd things 2014-09-24 14:27:10 -07:00
Brendan Burns 89547cfd79 Merge pull request #1431 from thockin/svcenv
Fix docker-links-style env vars for services
2014-09-24 14:24:02 -07:00
Brendan Burns d900fbf6fc Generalize the fit scheduler.
Extract the "fit predicate" from random fit to make it extensible/plugable
2014-09-24 13:56:40 -07:00
Tim Hockin b2472d8bec Fix docker-links-style env vars for services
This includes 3 changes:

1) Use the Service.Protocol field, rather than hardcoding TCP.
2) Use Service.Port rather than ContainerPort - ContainerPort can be a string
   and has absolutely no meaning to consumers.
3) Beef up tests for these env vars.
2014-09-24 12:29:06 -07:00
Tim Hockin f1f54ac72e Merge pull request #1415 from thockin/svcenv
Add per-service env vars for *_SERVICE_HOST
2014-09-24 12:27:27 -07:00
Dawn Chen 66eadb514a fix rebase issue. 2014-09-24 11:16:47 -07:00
Dawn Chen 0e6ec3cbfc Convert existing kubernetes system to use ContainerStatus, instead of
docker.Container directly.

Conflicts:
	pkg/kubelet/dockertools/docker.go
	pkg/registry/pod/rest.go
2014-09-24 11:16:46 -07:00
Joe Beda e1a07c0c02 Merge pull request #1424 from dchen1107/cleanup
Fix e2e testing issue
2014-09-24 10:25:06 -07:00
Dawn Chen bdfd5045f3 Refactory a little bit. 2014-09-24 09:41:30 -07:00
Tim Hockin 089c5602fd Add per-service env vars for *_SERVICE_HOST
As a replacement of a single SERVICE_HOST variable, offer a FOO_SERVICE_HOST
variable.  This will help ease the transition to ip-per-service, where there
is no longer a single service host.

# *** ERROR: *** Some files are missing the required boilerplate
# header from hooks/boilerplate.txt:
#   examples/guestbook/redis-slave/run.sh
#
# Your commit will be aborted unless you fix these.
#   COMMIT_BLOCKED_ON_BOILERPLATE
2014-09-24 09:07:21 -07:00
Dawn Chen 4796120f70 Debugging to fix e2e testing issue 2014-09-23 17:35:50 -07:00
jhadvig d2709ab9c1 Typo fix 2014-09-24 01:33:39 +02:00
Brendan Burns 253bce42fe Extract the minion registry from the etcd implementation into the pod registry where it belongs. 2014-09-23 15:42:59 -07:00
Clayton Coleman b0b7f13ade Merge pull request #1404 from lavalamp/scheduler
Add error type to watch.
2014-09-23 11:28:29 -04:00
Abhishek Gupta 002a5c6c29 Added test case 2014-09-22 17:40:18 -07:00
Abhishek Gupta 7c662ff065 Adding GetEndpoints method to the client EndpointsInterface 2014-09-22 17:40:18 -07:00
Daniel Smith f211e46f20 handle watch errors everywhere 2014-09-22 17:37:12 -07:00
Joe Beda d65f8e3b90 Merge pull request #1397 from thockin/kubecfg
Make "kubecfg -s <port> run ..." select correctly
2014-09-22 17:21:45 -07:00
Daniel Smith 8fd1fb4337 update pkg/api documentation 2014-09-22 17:08:57 -07:00
Daniel Smith 265f889260 convert etcd errors to watch errors 2014-09-22 17:06:03 -07:00
Daniel Smith 05eff2e910 add new watch event type 2014-09-22 17:06:03 -07:00
Tim Hockin 0f9cd4301d Merge pull request #1401 from jhadvig/k8s_log_retrieval_update
stdout/stderr writer container log stream
2014-09-22 16:38:11 -07:00
Tim Hockin cf86d66076 rename labels in kubcfg logic 2014-09-22 15:34:13 -07:00
Tim Hockin bb3900f447 Make "kubecfg -s <port> run ..." select correctly
kubecfg run creates a replication controller which sets all pods with a
replicationController= label, but then sets up a service selecting on name=
instead.  This fixes that.  kubecfg -s <port> run ... can now actually work.
2014-09-22 15:17:47 -07:00
jhadvig 9ba71528e4 stdout/stderr container log stream 2014-09-23 00:15:36 +02:00
Daniel Smith 248f49fb7c Merge pull request #1340 from smarterclayton/cleanup_watch_embedding
Cleanup watch encoding w/ RawExtension
2014-09-22 14:52:50 -07:00
Brendan Burns 3346c68d33 Merge pull request #1389 from lavalamp/scheduler
make watch actually return an error when there's an error
2014-09-22 13:59:57 -07:00
Brendan Burns f851d4b7f1 Merge pull request #1391 from thockin/proxy
Proxy cleanups
2014-09-22 13:59:29 -07:00
Tim Hockin 486dbd165f Merge pull request #1318 from jhadvig/k8s_log_retrieval
Adding endpoint for log retrieval on the minion
2014-09-22 13:21:28 -07:00
Clayton Coleman fece926e2b Remove unnecessary EmbeddedObjects
Clarify the tests in embedded_test.go to indicate that unmarshalling
of an internal object (runtime.EmbeddedObject) will not work.  Instead,
consumers should decode raw external objects.
2014-09-22 16:03:07 -04:00
Clayton Coleman e3da2ba2c8 Cleanup watch encoding (remove dupe Encoding)
Move standard watch encode / decode streams to use
runtime.RawExtension and embed API decoding based on
a provided codec.
2014-09-22 16:03:07 -04:00
Clayton Coleman 6778a8d88d watch/iowatcher should log non EOF errors encountered 2014-09-22 16:03:07 -04:00
Victor Marmol b6a56627a7 Merge pull request #1396 from eparis/update-cadvisor
Update cadvisor to 0.4.0
2014-09-22 13:01:06 -07:00
Clayton Coleman 9a0add3c96 runtime.RawExtension must copy the buffer, not use it 2014-09-22 15:57:37 -04:00
Tim Hockin 2c5693b0ad Don't force a host port through kubecfg 2014-09-22 12:31:37 -07:00
Eric Paris a32400f47f Remove all code dealing with cadvisor Percentiles
This was removed upstream beween cadvisor 0.3.0 and 0.4.0
2014-09-22 14:22:40 -04:00
jhadvig 960f1b2693 Consistency update 2014-09-21 22:25:44 +02:00
Tim Hockin dd9c562769 Get rid of un-needed lock 2014-09-20 11:40:02 -07:00
Tim Hockin a559d8d9b2 Move some test-only code into the test 2014-09-20 11:38:05 -07:00
Tim Hockin 20826e6d50 Move copyBytes closer to use-sites 2014-09-20 11:31:13 -07:00
Tim Hockin cf6ccaee54 Proxy: delete serviceInfo when stopping a service 2014-09-20 11:29:04 -07:00
Daniel Smith 4d7c6e2657 Treat super short watches with no items received the same as watches that error immediately 2014-09-19 18:09:40 -07:00
Daniel Smith 0d69393a43 make watch actually return an error when there's an error 2014-09-19 17:53:55 -07:00
Daniel Smith 06bb87c6c1 Merge pull request #1386 from brendandburns/auth
Add authenticated TLS support to the client.
2014-09-19 16:05:27 -07:00
Brendan Burns 8dff6f12d7 Add authenticated TLS support to the client. 2014-09-19 15:43:23 -07:00
Daniel Smith 6741704761 Merge pull request #1377 from smarterclayton/benchmarks
Add some benchmarks and minor test-go enhancements
2014-09-19 15:00:47 -07:00
Clayton Coleman 463a16af36 Add benchmarks for API tests 2014-09-19 17:17:54 -04:00
Filipe Brandenburger 334f9dc772 Merge pull request #1384 from brendandburns/release
Release 0.3
2014-09-19 13:32:47 -07:00
Daniel Smith bdc8d898fa Merge pull request #1376 from ddysher/minion-test-fix
Fix minion registry test insert.
2014-09-19 12:50:29 -07:00
Brendan Burns b2b3d2e16b Add the 0.3-dev commit. 2014-09-19 11:15:57 -07:00
Brendan Burns 89eff1d0d8 Rev the version to 0.3 2014-09-19 10:11:03 -07:00
Brendan Burns 06316f4861 Merge pull request #1375 from ddysher/pod-rest-test
Out of place test table
2014-09-19 10:03:01 -07:00
Clayton Coleman 5483333e29 Allow server and client to take api version as argument
* Defaults to v1beta1
* apiserver takes -storage_version which controls etcd storage version
  and the version of the client used to connect to other apiservers
* Changed signature of client.New to add version parameter
* All controller code and component code prefers the oldest (most common)
  server version
2014-09-18 23:27:28 -04:00
Clayton Coleman ca5355908f Expose v1beta2 API group 2014-09-18 23:24:05 -04:00
Deyuan Deng 0c8d9ba870 Fix minion registry test insert. 2014-09-18 23:04:10 -04:00
Deyuan Deng f966a51fc0 Out of place test table 2014-09-18 21:44:52 -04:00
Brendan Burns edf3eb04e2 Fix the build. 2014-09-18 15:29:17 -07:00
Daniel Smith 12b677ad56 Merge pull request #1356 from brendandburns/healthz
Adjust the logic, so that if the apiserver restarts, or has no pod info
2014-09-18 15:15:24 -07:00
Brendan Burns a4912d7203 Merge pull request #1342 from jwforres/websocket_connection_header
Match any Connection header that contains the Upgrade token for websocke...
2014-09-18 09:47:07 -07:00
Joe Beda 4487f311ab Merge pull request #1326 from lavalamp/scheduler
Fix cache to use the "List then Watch" pattern.
2014-09-18 09:00:52 -07:00
Jessica Forrester f2732f18a7 Match any Connection header that contains the Upgrade token for websockets 2014-09-18 09:26:21 -04:00
jhadvig 9f34eaef9e kubelet server test cases 2014-09-18 14:17:10 +02:00
Brendan Burns 17cbde0c5a Adjust the logic, so that if the apiserver restarts, or has no pod info
for some other reason, pods on missing machines are still 'terminated'
2014-09-17 21:57:11 -07:00
Daniel Smith b3bfef9127 Merge pull request #1347 from brendandburns/healthz
Fix a problem where if a minion went missing, we still thought the pod was running.
2014-09-17 18:26:44 -07:00
Brendan Burns 99586b4da4 Fix a problem where if a minion went missing, we still thought the pod was running.
Also convert some tests to table driven.
2014-09-17 18:16:52 -07:00
jhadvig f3f5d0200c Using podID+containerName for querying the logs 2014-09-17 21:00:09 +02:00
Dave Bailey 14fcf68edc Improve error detection for URL manifests, and skip parsing if content unchanged. 2014-09-17 17:43:44 +00:00
Tim Hockin 450ccde521 Don't store name twice in proxy 2014-09-16 17:04:23 -07:00
Daniel Smith 4e9cf2ccb4 Add field selector to List, implement for pods. 2014-09-16 16:17:16 -07:00
Daniel Smith b1169ed91e Fix cache to use the "List then Watch" pattern. 2014-09-16 16:17:15 -07:00
Brendan Burns dc5a4a8c3f Refactor to clean up names. 2014-09-16 15:19:02 -07:00
erictune 506f51b186 Merge pull request #1330 from brendandburns/privilege
Only allow privileged containers if API server flag set.  Adds capabilities package.
2014-09-16 15:12:26 -07:00
Daniel Smith 0b75f7b543 Merge pull request #1275 from smarterclayton/v1beta2
Create v1beta2 and allow multiple Codec encodings to exist
2014-09-16 14:52:04 -07:00
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
Danny Jones 7c28e0849f Reorganization; Directory traversal less ugly
Directory traversal is no longer recursive and only goes as deep as it
needs to. Moved GetActiveVolumes to volume packages and added a simple
test.
2014-08-06 11:20:34 -07:00
Daniel Smith 8c529187b5 Merge pull request #806 from smarterclayton/follow_up_to_encoding_abstraction
Address remaining comments from #756
2014-08-06 10:47:41 -07:00
Danny Jones 3f7f6cb2dc Modifies tests to use new volume objects. 2014-08-06 10:21:59 -07:00
Danny Jones 6191ffc0de Modifies directory walker to use a regex
Now a regex is used to determine active volume properties from
their directory paths.
2014-08-06 10:21:59 -07:00
Danny Jones 47bca30edc Splits volume interface into Builders and Cleaners
Different information is needed to perform setup versus teardown. It
makes sense to separate these two interfaces since when we call teardown
from the reconciliation loop, we cannot rely on having the
information provided by the api definition of the volume.
2014-08-06 10:21:59 -07:00
Danny Jones dfc9cb86f0 Initial reconciliation loop.
Determines the set of active volumes versus the set of valid volumes
defined by the manifests. If there is an active volume that is not
defined in any of the manifests, deletes and cleans up that volume.
2014-08-06 10:21:59 -07:00
Clayton Coleman 67dbd15929 Address remaining comments from #756
Rename Encoding to Codec, Versioning to ResourceVersioner.  Add
GoDoc.  Add Delete(key, recursive) to EtcdHelper
2014-08-06 11:25:35 -04:00
Clayton Coleman 836d2b9808 Fix proxy error condition and simplify method
Add new minion proxy test case.
2014-08-06 01:03:17 -04:00
Tim Hockin 63a7c37650 Merge pull request #799 from sborman/master
Corrected a typo in comment.
2014-08-05 17:17:02 -07:00
Kouhei Ueno 22522cd003 PodConfigListener is never used 2014-08-06 06:43:16 +09:00
Sean Borman 1fc29e20cc Corrected a typo. 2014-08-05 13:53:52 -07:00
Daniel Smith 860050b507 Merge pull request #745 from smarterclayton/add_structured_reason
Evolve the api.Status object with Reason/Details
2014-08-05 13:28:19 -07:00
Clayton Coleman 4f88b778a6 Evolve the api.Status object with Reason/Details
Contains breaking API change on api.Status#Details (type change)

Turn Details from string -> StatusDetails - a general
bucket for keyed error behavior.  Define an open enumeration
ReasonType exposed as Reason on the status object to provide
machine readable subcategorization beyond HTTP Status Code. Define
a human readable field Message which is common convention (previously
this was joined into Details).

Precedence order: HTTP Status Code, Reason, Details. apiserver would
impose restraints on the ReasonTypes defined by the main apiobject,
and ensure their use is consistent.

There are four long term scenarios this change supports:

1. Allow a client access to a machine readable field that can be
   easily switched on for improving or translating the generic
   server Message.

2. Return a 404 when a composite operation on multiple resources
   fails with enough data so that a client can distinguish which
   item does not exist.  E.g. resource Parent and resource Child,
   POST /parents/1/children to create a new Child, but /parents/1
   is deleted.  POST returns 404, ReasonTypeNotFound, and
   Details.ID = "1", Details.Kind = "parent"

3. Allow a client to receive validation data that is keyed by
   attribute for building user facing UIs around field submission.
   Validation is usually expressed as map[string][]string, but
   that type is less appropriate for many other uses.

4. Allow specific API errors to return more granular failure status
   for specific operations.  An example might be a minion proxy,
   where the operation that failed may be both proxying OR the
   minion itself.  In this case a reason may be defined "proxy_failed"
   corresponding to 502, where the Details field may be extended
   to contain a nested error object.

At this time only ID and Kind are exposed
2014-08-05 16:17:53 -04:00
Daniel Smith dc0a475be9 Merge pull request #796 from nyaxt/fixrace
Avoid data race in Proxier.OnUpdate
2014-08-05 12:56:05 -07:00
Kouhei Ueno 2e02967aca Avoid data race in Proxier.OnUpdate
The bug was that the proxier is passed as value on method decleration.
This caused a copy of Proxier to be created when the method was invoked.
The copy being a shallow copy turned out to have them both reference
a same map instance, but their mutexes were different instances.
This turned out to use different mutexes before operating on a same map
instance, which didn't make sense.
2014-08-06 04:34:54 +09:00
Daniel Smith e75854a1f9 Merge pull request #759 from brendandburns/valid
Add c-identifier validation to service ids.
2014-08-05 12:32:02 -07:00
Daniel Smith 6f85a5b8aa Merge pull request #794 from nyaxt/reland_atomicetcd
Remove duplicated defs and reland #694.
2014-08-05 12:07:59 -07:00
Daniel Smith 2d3373664f Merge pull request #765 from brendandburns/service
Add support for regions, and use them for cloud load balancing.
2014-08-05 11:59:36 -07:00
brendandburns cc4300c3ec Merge pull request #757 from lavalamp/repCtl
Remove etcd dep from controller manager
2014-08-05 11:47:31 -07:00
brendandburns f87a93af7a Merge pull request #754 from kelseyhightower/proxy-cleanup
proxy: cleanup and minor refactoring
2014-08-05 11:46:52 -07:00
brendandburns bf40981197 Merge pull request #758 from lavalamp/clientCache
Watch based client cache
2014-08-05 11:46:22 -07:00
Kouhei Ueno c1ec1d6d72 Remove duplicated def of IsEtcdNodeExist 2014-08-06 03:45:50 +09:00
Kouhei Ueno c7947abd9c Revert "Revert "Use atomic create in EtcdHelper.AtomicUpdate""
This reverts commit 73b64aa490.
2014-08-06 03:43:19 +09:00
Brendan Burns 20a8f03d62 Add dns-952-identifier validation to service ids. 2014-08-05 11:40:48 -07:00
Brendan Burns c27ab18481 Don't use zone for regional load balancers. 2014-08-05 11:38:33 -07:00
Brendan Burns 1d8407cf7d Don't hard code load balancer zone. 2014-08-05 11:38:33 -07:00
Daniel Smith 73b64aa490 Revert "Use atomic create in EtcdHelper.AtomicUpdate" 2014-08-05 11:34:00 -07:00
Daniel Smith 51872d65c9 Merge pull request #694 from nyaxt/atomicetcd
Use atomic create in EtcdHelper.AtomicUpdate
2014-08-05 11:19:22 -07:00
Daniel Smith 5ff072030c Merge pull request #746 from smarterclayton/atomic_create
Make create atomic for etcd on Services/ReplControllers
2014-08-05 11:08:55 -07:00
Kouhei Ueno dea1b8c48b Remove 10ms timeout from TestWatch 2014-08-06 01:02:58 +09:00
Kouhei Ueno cf117d5b48 Add test for EtcdHelper.AtomicUpdate concurrent create 2014-08-06 00:30:55 +09:00
Kouhei Ueno 4799b546c9 Make fake_etcd_client threadsafe 2014-08-05 23:37:32 +09:00
Kouhei Ueno 3f9ec452e4 use atomic create in EtcdHelper.AtomicUpdate 2014-08-05 23:37:32 +09:00
Kouhei Ueno b3e5f40988 Fix bug where debug "return" prevented whole TestAtomicUpdate run 2014-08-05 23:37:32 +09:00
Kelsey Hightower 1d3e660248 proxy: cleanup and minor refactoring
This change includes minor refactoring and cleanup of the proxy
package including the following items:

 * Rename source files with misspelling of round robin
 * Remove unnecessary and redundant comments
 * Update comments for clarity
 * Add locking when updating the round-robin index
 * Improve method receiver names
 * Rename the LoadBalance method to NextEndpoint to add clarity

No changes in behaviour have been introduced.
2014-08-05 07:18:12 -07:00
Clayton Coleman 325f9ef005 Make create atomic on etcd for Services/ReplControllers 2014-08-05 01:12:27 -04:00
Clayton Coleman babb7528ce httptest.NewTLSServer is ~0.2s of setup per test
We're not exercising anything TLS related in client and request,
set these back to NewServer.  Should add a new TLS end-to-end
test for hack/test-cmd.sh with real (test) certs.
2014-08-05 00:59:42 -04:00