Commit Graph

3913 Commits (4c874dbefe2bd1f06a9358146be106c87b4858ce)

Author SHA1 Message Date
Wojciech Tyczynski 3b3a706eef Merge pull request #12792 from jszczepkowski/hpa-controller2
Experimental client for horizontal pod autoscaler.
2015-08-20 10:50:02 +02:00
Clayton Coleman c1a40d803c Node controller did not handle an error
This means if List() fails nodes are considered deleted (which is bad)
2015-08-19 12:54:41 -04:00
Jerzy Szczepkowski f2e15fd538 Experimental client for horizontal pod autoscaler.
Implementation of experimental client for horizontal pod autoscaler. Placeholder implementation for controller for horizontal pod autoscaler.
2015-08-19 09:39:17 +02:00
Robert Bailey 08e6a43c1d Revert "Merge pull request #9165 from smarterclayton/graceful"
This reverts commit 4f856b595d, reversing
changes made to d78525a83b.

Conflicts:
	pkg/kubelet/status_manager.go
2015-08-18 17:34:49 -07:00
Kris Rousey ae6c64d9bb Moving everyone to unversioned client 2015-08-18 10:23:03 -07:00
Clayton Coleman edb108802d Handle gracefully terminated pods in node controller
Eviction should retry longer and wait for completion of the pod.
2015-08-18 09:08:45 -04:00
Clayton Coleman b842a7dd15 Revert "Revert "Gracefully delete pods from the Kubelet""
This reverts commit 98115facfd.
2015-08-18 08:57:02 -04:00
Justin Santa Barbara 8c365d51c7 servicecontroller relies on cloudprovider to delete LB if needed
We previously made the cloudproviders take on the responsibility of deleting
existing load balancers; this lets us simplify the servicecontroller logic
and also lays the groundwork for more efficient cloudprovider LB implementations
to do an in-place change on a LB.
2015-08-17 08:58:46 -04:00
Justin Santa Barbara 87df1d6fb6 Change CreateTCPLoadBalancer -> EnsureTCPLoadBalancer; implementations auto-delete if already exists
Previously the servicecontroller would do the delete, but by having the cloudprovider
take that task on, we can later remove it from the servicecontroller, and the
cloudprovider can do something more efficient.
2015-08-17 08:58:45 -04:00
Justin Santa Barbara 1ab62e541b Add more events to LoadBalancer management
It would be nice to see these events in the service like we do with pods;
also we've had trouble here so a few more events would be handy!
2015-08-17 08:58:45 -04:00
jiangyaoguo 5d3522dc7a Keep event reason consistant in scheduler and controller 2015-08-13 11:33:32 +08:00
Bryan Stenson 9541414742 create cloudprovider "providers" package
move all providers into new package
    update all references to old package path
2015-08-11 22:36:51 -07:00
Piotr Szczesniak 1df0267f4a Merge pull request #12551 from eparis/underscore-to-dash
Update code and docs to use - in flag names instead of _
2015-08-12 07:16:31 +02:00
CJ Cullen 64e5e1a2dd Merge pull request #12427 from krousey/vetclean
Fix go vet errors
2015-08-11 15:14:00 -07:00
Brendan Burns 296ffdf925 Merge pull request #12546 from brendandburns/rc
Switch the order of delete, delete pods before deleting nodes.
2015-08-11 14:14:09 -07:00
Kris Rousey 565189f5b8 Correcting all go vet errors 2015-08-11 13:55:37 -07:00
Eric Paris 5aa495cdad Update code to use - in flag names instead of _ 2015-08-11 16:31:52 -04:00
Brendan Burns 34eec1fc78 Switch the order of delete, delete pods before deleting nodes. 2015-08-11 12:34:37 -07:00
markturansky 8e0d391b1e Refactored persistent volume controllers to new packaging structure 2015-08-10 23:18:48 -04:00
Alex Robinson 057be1fc8d Merge pull request #12406 from smarterclayton/namespace_estimate_delete
Namespace must estimate and requeue content deletions
2015-08-10 15:01:35 -07:00
Clayton Coleman 62b6ca1643 Namespace must estimate and requeue content deletions 2015-08-10 11:20:21 -04:00
Veres Lajos 9f77e49109 typofix - https://github.com/vlajos/misspell_fixer 2015-08-08 22:31:48 +01:00
Clayton Coleman 61c7beb51f Add an Enqueue method to framework.Controller
Allows clients to requeue delta events in the event they
need to delay processing.
2015-08-07 13:21:49 -04:00
gmarek 819777e9e8 Correctly handle Node deletion in NodeController 2015-08-06 15:17:44 +02:00
Mike Danese 17defc7383 run gofmt on everything we touched 2015-08-05 17:52:56 -07:00
Mike Danese 8e33cbfa28 rewrite go imports 2015-08-05 17:30:03 -07:00
Alex Mohr c29c8414e1 Merge pull request #8607 from liggitt/serviceaccount_groups
Add groups to service account user.Info
2015-08-04 22:22:18 -07:00
deads2k 182885e897 make testclient more precise 2015-08-04 13:35:59 -04:00
Jordan Liggitt 709c2c8885 Add groups to service account JWT 2015-08-04 13:03:31 -04:00
gmarek 2201e75666 NodeController small cleanup 2015-08-04 14:44:14 +02:00
gmarek d27ad5b714 Controller codebase refactoring 2015-08-03 17:06:25 +02:00
Mike Danese 618416baeb Merge pull request #10783 from mikedanese/make-test-client-threadsafe
make testclient threadsafe by guarding internal state with accessors
2015-07-29 17:05:37 -07:00
Mike Danese 1b84fb7d74 make testclient threadsafe by guarding internal state with accessors 2015-07-29 16:17:17 -07:00
jayunit100 53ee37959b Rename getPodControllers to getPodController so that the truncate/ignore of overlapping RCs is clear 2015-07-29 18:17:40 -04:00
Ananya Kumar 47dd0bc6f9 Refactor package controller 2015-07-29 09:54:35 -07:00
Mike Danese d167fa27e0 rename StoreToControllerLister -> StoreToReplicationControllerLister to make room for more controllers 2015-07-27 16:13:47 -07:00
Prashanth Balasubramanian f4fe40e2d1 Delete overlapping controllers, add clarity to docs 2015-07-24 12:13:26 -07:00
CJ Cullen 2a803769fc Fix gofmt in replication_controller_test.go 2015-06-30 17:01:15 -07:00
Prashanth Balasubramanian 90ebc1ad29 Sort overlapping rcs 2015-06-29 15:30:19 -07:00
Maxwell Forbes 28946766a3 Merge pull request #9807 from krousey/container_manifest
Removing ContainerManifest
2015-06-24 17:55:29 -07:00
Kris Rousey d13421e084 Removing ContainerManifest 2015-06-24 11:31:34 -07:00
Prashanth Balasubramanian 35950c04ff Avoid syncing rcs till the pods controller has synced. 2015-06-19 18:20:28 -07:00
Prashanth Balasubramanian 9ed9bd1c4f Add a generation number to the object meta of all objects, and status of rcs 2015-06-19 14:32:08 -07:00
Chao Xu a309d3e652 Update pkg/api/testapi because namespace is always in the path since we remove v1beta1/2 2015-06-16 14:12:03 -07:00
Chao Xu ca72165b20 remove most references to api.PreV1Beta3 2015-06-03 20:09:03 -07:00
feihujiang ebc8eab590 get Events to be logged 2015-06-03 15:05:07 +08:00
Filip Grzadkowski 98115facfd Revert "Gracefully delete pods from the Kubelet" 2015-06-02 23:40:05 +02:00
Clayton Coleman 9d3631e3de Handle deleted pods in replication and endpoint controllers
Pods that are slated for deletion should be excluded from
replication and endpoints immediately.
2015-06-01 19:24:01 -04:00
Prashanth B 6c209ec193 Revert "Revert "Wake up rcs when pods get DeletionFinalStateUnknown tombstones"" 2015-05-29 09:24:39 -07:00
Tim Hockin 081ab3abac Merge pull request #8853 from caesarxuchao/HostToNodeName
update PodSpec.Host to PodSpec.NodeName
2015-05-28 15:50:12 -07:00
Chao Xu 9c1153322e update PodSpec.Host to PodSpec.NodeName in /pkg/api/types.go and /pkg/api/v1beta3/types.go 2015-05-28 14:10:06 -07:00
Tim Hockin b69fad211e Revert "Wake up rcs when pods get DeletionFinalStateUnknown tombstones" 2015-05-28 10:23:55 -07:00
Wojciech Tyczynski 6ffe46a9e0 Merge pull request #8822 from bprashanth/fifo_rc
Wake up rcs when pods get DeletionFinalStateUnknown tombstones
2015-05-28 10:50:28 +02:00
Wojciech Tyczynski 33318f0162 Use generated DeepCopy methods. 2015-05-28 09:03:27 +02:00
Prashanth Balasubramanian 8fa66bd962 Delta fifo includes objects in DeleteFinalStateUnknow, rcs stop faster 2015-05-27 16:45:51 -07:00
Anastasis Andronidis 9e3a540940 rename resize to scale 2015-05-27 19:08:06 +02:00
Dawn Chen ddbf851b6e Merge pull request #8000 from bprashanth/rc_ttl_cleanup
Delete expectations of a deleted rc instead of letting them expire
2015-05-22 10:33:09 -07:00
Daniel Smith 80c3506484 Merge pull request #8494 from liggitt/gate_tokens_controller
Wait until stores are filled before processing service account token events
2015-05-21 10:29:53 -07:00
Jordan Liggitt 49ceb82179 Wait until stores are filled before processing service account token events 2015-05-20 22:19:42 -04:00
kargakis b4c3318efd Skip sorting if all pods will be deleted 2015-05-20 15:20:25 +02:00
Prashanth Balasubramanian c0a8981b74 Delete expectations of a deleted rc instead of letting them expire 2015-05-19 11:01:45 -07:00
Daniel Smith c72eedf50a Merge pull request #8138 from bprashanth/rc_race
Check expectations before filtering through active pods.
2015-05-18 15:36:21 -07:00
Prashanth Balasubramanian 4200033c0a Add a simple master benchmark and a wrapper to run it. 2015-05-15 17:30:17 -07:00
Lv Lv 433a249610 Fix a potential bug in TestControllerBurstReplicas: manager.podStore.Store.Add(&pod) actually adds a pointer to a local copy of pod 2015-05-15 13:41:34 +08:00
Prashanth Balasubramanian 54b6501349 Check expectations before filtering through active pods. 2015-05-12 14:42:08 -07:00
Jordan Liggitt 0955808668 ServiceAccountTokens controller 2015-05-11 17:18:05 -04:00
Prashanth Balasubramanian 4fdd5bc3f3 Ratelimit replica creation 2015-05-08 14:24:25 -07:00
Prashanth Balasubramanian 8bf0adf147 Add a getter to pod expectations and use it in unittests 2015-05-06 16:01:03 -07:00
Daniel Smith 8a47574644 Merge pull request #7468 from simon3z/serialized-reference
replica: serialize created-by reference
2015-05-05 16:42:42 -07:00
Zach Loafman 875e83a741 Revert "Revert "Security context - types, kubelet, admission"" 2015-05-05 16:02:13 -07:00
Zach Loafman f48904fd5e Revert "Security context - types, kubelet, admission" 2015-05-05 15:20:39 -07:00
Federico Simoncelli 37038c4877 replica: serialize created-by reference
Fixes #7322

Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
2015-05-05 16:06:41 -04:00
Paul Weil 982bf19c20 security context initial implementation - squash 2015-05-05 13:46:13 -04:00
Daniel Smith 16a6fb8ef7 Replace calls to time.After with time.NewTimer for explicit stopping 2015-05-04 14:29:33 -07:00
Daniel Smith 36977ecb67 Merge pull request #7643 from bprashanth/rc_status
Requeue rc if a single get/put retry on status.Replicas fails
2015-05-04 12:15:30 -07:00
Prashanth Balasubramanian 864e12d995 Retry once and requeue on failure to update status.Replicas 2015-05-01 18:10:58 -07:00
Eric Paris 6b3a6e6b98 Make copyright ownership statement generic
Instead of saying "Google Inc." (which is not always correct) say "The
Kubernetes Authors", which is generic.
2015-05-01 17:49:56 -04:00
Prashanth Balasubramanian a8fdf3d78b Update expiration timeout based on observed latencies 2015-05-01 08:53:51 -07:00
Piotr Szczesniak 11a2dc496f Added TerminationGracePeriod field to PodSpec and grace-period flag to kubectl stop
Those are changes which touch users required by Termination Notice

Addresses #6804
2015-04-30 18:00:33 +02:00
Prashanth Balasubramanian 7592dabeba RcManager uses informers 2015-04-28 13:45:15 -07:00
nikhiljindal dcc368c781 Removing more references to v1beta1 from pkg/ 2015-04-24 00:45:17 -07:00
Brian Grant 73322af8e8 Merge pull request #5842 from simon3z/rc-annotation
Replica Controller Name Annotation in Pods
2015-04-23 16:35:18 -07:00
Yu-Ju Hong 10ecbb8aab Fix pod filtering in replication controller 2015-04-22 16:09:14 -07:00
Federico Simoncelli 253ce4b6fe replication: annotate replicated pods with controller name
Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
2015-04-22 11:26:25 -04:00
Brian Grant 15c2986a07 Merge pull request #7067 from ravigadde/master
Added field selector for listing pods
2015-04-22 07:12:21 -07:00
Yu-Ju Hong df2cbd4877 Prioritize deleting the non-running pods when reducing replicas
This changes instructs the replication controller to delete replicas in the
order of "unscheduled (pending)", "scheduled (pending)", and "scheduled
(running)" pods. This is less disruptive than deleting random pods.
2015-04-21 10:17:29 -07:00
Ravi Gadde bf8f258471 Added field selector for listing pods. 2015-04-21 06:33:28 -07:00
Kris Rousey 594f514843 Changing a few remaining instances of passing pods around by value. I
avoided changing api.PodList.Items to []*api.Pod.
2015-04-20 15:26:45 -07:00
markturansky 34924af63d Fixed typos in comments 2015-04-16 08:52:36 -04:00
Saad Ali 6cfce2c7ee Merge pull request #6822 from derekwaynecarr/send_events_replication_controller
Replication controller gives failedCreate events
2015-04-15 11:27:23 -07:00
Daniel Smith 3fdfea3ad8 fix fake controller source watch behavior 2015-04-14 13:31:35 -07:00
derekwaynecarr 986c225311 Replication controller gives failedCreate events 2015-04-14 15:42:49 -04:00
Daniel Smith d02139d2b4 Merge pull request #6771 from derekwaynecarr/ns_controller
Remove delay when deleting namespaces, move to new controller framework
2015-04-13 17:55:13 -07:00
Daniel Smith 1ec6b02e99 fix tests flaky due to timeouts 2015-04-13 15:16:59 -07:00
derekwaynecarr c1a3fa0dae Remove delay when deleting namespaces, move to new controller framework 2015-04-13 15:18:22 -04:00
Daniel Smith dd26cdf0f7 Fix comments; switch to watching nodes 2015-04-10 17:49:51 -07:00
Daniel Smith 395d69641e fix race 2015-04-10 16:02:51 -07:00
Daniel Smith 6835318d1e switch to require 'go controller.Run()' 2015-04-10 14:05:08 -07:00
Daniel Smith 880f922bb6 Add easy setup for simple controller
Also add tests; coverage up to 86.7%
2015-04-10 14:05:07 -07:00
Brendan Burns fded23a777 Default replica controller nodeSelector using pod template.
Add default labels from pod if not present.
2015-04-09 20:50:37 -07:00
Derek Carr 6eb54e73e0 Merge pull request #5270 from lavalamp/fix7
Controller framework
2015-04-07 16:58:09 -04:00
Clayton Coleman 51db3bd654 Create a new testclient package that can be backed by disk files
Standardize how our fakes are used so that a test case can use a
simpler mechanism for providing large, complex data sets, as well
as represent queries over time.
2015-04-07 14:56:15 -04:00
Daniel Smith 3fe17b93cf Begin a controller framework. 2015-04-02 15:25:58 -07:00
Derek Carr cfb6f1199b Merge pull request #5851 from smarterclayton/support_input_streams
Support input streams being returned by the APIserver
2015-03-24 22:41:24 -04:00
Clayton Coleman bfb6b05311 Wait longer in TestWatchControllers
10ms is too slow for travis
2015-03-24 17:25:46 -04:00
nikhiljindal 7e3b7f9673 Updating unit tests so that they pass with v1beta3 api 2015-03-24 12:13:53 -07:00
Clayton Coleman 0902ffd70e Merge pull request #5746 from bprashanth/rc_genericetcd_interface
Migrate replication controllers to generic etcd
2015-03-24 11:45:59 -04:00
Wojciech Tyczynski f7191d626d Change "/ns" to "/namespaces" in few remaining places. 2015-03-24 13:05:32 +01:00
Prashanth Balasubramanian ef6601646d Migrate replication controllers to generic etcd 2015-03-23 17:59:25 -07:00
Salvatore Dario Minonne 31ddefc347 Finalize fields.Selector 2015-03-17 22:55:43 +01:00
Dawn Chen 34e9c82c70 Convert RestartPolicy to string for v1beta3.
Fixed #3607 and spiritually support #5475
2015-03-13 18:38:07 -07:00
Wojciech Tyczynski 07cf658100 Remove etcd references from ReplicationController 2015-03-13 10:36:54 +01:00
Prashanth Balasubramanian 28d9260c0b Sync replication count with the api server on pod creation/deletion. 2015-03-11 13:29:20 -07:00
Prashanth Balasubramanian 1970c2d201 Retry resizing replication controllers in kubectl 2015-03-02 20:26:41 -08:00
Steve Reed 38230ef12f Adds replication controller name to "Too many|few" logging 2015-02-12 09:18:56 -08:00
Brendan Burns 234f951867 Revert filtering unknown pods, as I believe that it is causing e2e flakes. 2015-02-05 20:57:01 -08:00
Brian Grant 7a13c2f0e3 Merge pull request #4169 from brendandburns/shell_sucks
Fix a regression where we never cleared out failed nodes.
2015-02-05 13:41:11 -08:00
Brendan Burns 6d0b8ea7a7 Fix a regression where we never cleared out failed nodes. 2015-02-05 10:55:57 -08:00
Brian Grant 2c9e620d43 Merge pull request #4102 from brendandburns/rc
Make the replication controller more resilient to event expiration in watch.
2015-02-05 07:08:35 -08:00
Brendan Burns 874859f6d3 Make the replication controller more resilient to event expiration in watch. 2015-02-03 22:15:12 -08:00
Yu-Ju Hong 4a72addaeb Factor out API defaulting from validation logic
Currently, the validation logic validates fields in an object and supply default
values wherever applies. This change factors out defaulting to a set of
defaulting callback functions for decoding (see #1502 for more discussion).

 * This change is based on pull request 2587.

 * Most defaulting has been migrated to defaults.go where the defaulting
   functions are added.

 * validation_test.go and converter_test.go have been adapted to not testing the
   default values.

 * Fixed all tests with that create invalid objects with the absence of
   defaulting logic.
2015-02-03 00:55:42 -08:00
Dan Mace 3d7f5cc642 Backport annotations to PodTemplateSpec
Backport annotation support to v1beta1 and v1beta2 PodTemplateSpec. This
allows ReplicationController users to specify annotations for Pods in
addition to labels.
2015-02-02 15:26:32 -05:00
Clayton Coleman 5603714df8 Use name generation on pods via replication controllers
The generated name is '<controllerName>-%s', unless controllerName-
would be long enough to cause a validation error.
2015-02-02 14:44:53 -05:00
Satnam Singh 358ace610d Merge pull request #3824 from smarterclayton/allow_panic_and_error_reporting
Allow panics and unhandled errors to be sent elsewhere
2015-01-27 13:18:43 -08:00
Brendan Burns 92d65b7c65 Add NodeSelector to the replication controller tests. 2015-01-27 10:58:46 -08:00
Clayton Coleman 19987612bf Replace code that eats errors with a more consistent reporting
In order to allow certain programmer error / unexpected error states
to be captured, replace sections that log and eat errors with a method
that can be centrally replaced.  This captures two common error sources,
replication errors, and apiserver code that returns invalid errors.
2015-01-26 20:54:29 -05:00
Clayton Coleman e4dcbb6edb Explicitly handle errors received during watch
Log them as Error and then continue.
2015-01-19 11:10:45 -05:00
Tim Hockin 5f2dae4dd8 Merge pull request #3195 from lavalamp/numericWire
Add numeric type into api
2015-01-07 16:15:52 -08:00
Daniel Smith 35f54addca Update more packages, tests, binaries for quantity
make etcd registry pass test
fix kubelet config for quantity
fix openstack for quantity
fix controller for quantity
fix last tests for quantity
wire into binaries
fix controller manager
fix build for 32 bit systems
2015-01-07 15:21:35 -08:00
Clayton Coleman b03fbf90f8 Make RESTClient more generic to API version, simplify version handling
RESTClient is an abstraction on top of arbitrary HTTP endpoints that
follow the Kubernetes API conventions. Refactored RESTClientFor so that
assumptions that are Kube specific happen outside of that method (so
others can reuse the RESTClient). Added more validation to client.New
to ensure clients give good input. Exposed APIVersion on RESTClient
as a method so that wrapper code (code that adds typed / structured
methods over rest endpoints like client.Client) can more easily make
decisions about what APIVersion it is running under.
2015-01-07 18:03:34 -05:00
derekwaynecarr abb6632d75 Do not use namespace in url paths pre v1beta3 from client 2014-12-19 16:32:42 -05:00
derekwaynecarr 7cf664439f Move namespace from query param to path part 2014-12-16 15:55:47 -05:00
Brian Grant 9b539262a8 Count only non-dead pods in replicationController current state replicas count. 2014-12-12 22:23:14 +00:00
markturansky 8159c8fd25 Refactor PodCondition to PodPhase 2014-11-21 15:28:38 -05:00
Tim Hockin 95a9098311 fix 'go vet' warnings 2014-11-21 09:45:28 +08:00
Tim Hockin ea960711ff Clean up error logs.
Use %v for errors, tidy some messages, make error messages start lowe-case
(as per go guidelines).  Just accumulated nits.
2014-11-21 09:45:26 +08:00
markturansky 8af4ccb111 v1beta3 Pod refactor 2014-11-18 09:25:42 -05:00
Clayton Coleman 6d31c2bf8a util.EncodeJSON proven harmful, remove it everywhere
People were misusing EncodeJSON in tests when they should be using
runtime.EncodeOrDie(testapi.Codec(), obj).  Removing the potential
for cutting self on sharp objects.
2014-11-13 10:38:13 -05:00
Daniel Smith 0348a67413 Merge pull request #2195 from smarterclayton/prepare_pod_template_v1beta3
Allow an internal pod template reference or object
2014-11-12 10:55:08 -08:00
Clayton Coleman 8a59000472 Warn if pod has no labels 2014-11-11 17:03:20 -05:00
Clayton Coleman 94c873e7a4 Remaining refactor for PodTemplateSpec and fixing test cases 2014-11-11 17:03:20 -05:00
Brendan Burns 2c1221864d Make a standalone binary. 2014-11-10 13:34:11 -08:00
markturansky 119f654a13 Refactor PodStatus to PodCondition in internal API for v1beta3 2014-11-05 17:26:47 -05:00
Deyuan Deng acf9d23b32 Stop httptest server. 2014-10-30 21:37:08 -04:00
Tim Hockin 37ffb41b81 Merge pull request #1830 from markturansky/label_validation
add RFC952 validation to labels
2014-10-27 09:54:18 -07:00
markturansky e2365b1f96 add RFC952 label validation 2014-10-24 16:01:52 -04:00
derekwaynecarr c6eb371c93 Fixup unit tests 2014-10-24 11:49:04 -04:00
derekwaynecarr 580cb5ea4f Rework client.Interface 2014-10-24 11:47:30 -04:00
Clayton Coleman 644eb70085 Refactor tests to split ObjectMeta from TypeMeta 2014-10-24 11:22:21 -04:00
Clayton Coleman 1ffc82dfe6 createPod should copy the labels, not edit them in place 2014-10-24 11:22:21 -04:00
Clayton Coleman bb77a5d15f Rename ID -> Name 2014-10-22 15:00:26 -04:00
derekwaynecarr 085ca40291 Enforce unique constraint at namespace boundary in etcd, make client and server namespace aware 2014-10-16 13:02:52 -04:00
Daniel Smith d34914517f Shorten 'CodecForVersionOrDie' name, add 'ResourceVersioner' to testapi 2014-10-13 14:58:06 -07:00
Clayton Coleman 82bcdd3b3b Make ResourceVersion a string internally instead of uint64
Allows us to define different watch versioning regimes in the future
as well as to encode information with the resource version.

This changes /watch/resources?resourceVersion=3 to start the watch at
4 instead of 3, which means clients can read a resource version and
then send it back to the server. Clients should no longer do math on
resource versions.
2014-10-07 19:00:26 -04:00
Clayton Coleman d3e51a0f24 Rename JSONBase -> TypeMeta in preparation for v1beta3
Will make subsequent refactor much easier
2014-10-07 11:12:16 -04:00
derekwaynecarr d5ec260db8 Fixup tests 2014-10-02 12:52:01 -04:00
derekwaynecarr fc67d822c6 Add context as parameter to client interface functions 2014-10-02 12:51:36 -04:00
Clayton Coleman ff2eca97d9 Refactor the client (again) to better support auth
* Allows consumers to provide their own transports for common cases.
* Supports KUBE_API_VERSION on test cases for controlling which
  api version they test against
* Provides a common flag registration method for CLIs that need
  to connect to an API server (to avoid duplicating flags)
* Ensures errors are properly returned by the server
* Add a Context field to client.Config
2014-10-01 15:23:37 -04:00
derekwaynecarr 02e1a2e79d Update unit tests to pass a context on client create 2014-09-30 14:27:56 -04: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 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 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
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 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 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
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
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
Daniel Smith f689d44d25 Add comment for clarity and logging for debugging. 2014-08-18 17:43:10 -07:00
Clayton Coleman 82b0ec5115 Replace pkg/kubecfg#FakeKubeClient with the fake in pkg/client 2014-08-15 17:15:53 -04: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
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 b430cebe72 Remove etcd dependency from controller manager. 2014-08-04 14:29:49 -07:00
Clayton Coleman 4448be2d95 Expose an Encoding/Versioning interface for use with etcd
etcd_tools.go is not dependent on the specific implementation
(which is provided by pkg/api).  All EtcdHelpers are created
with an encoding object which handles Encode/Decode/DecodeInto.
Additional tests added to verify simple atomic flows.

Begins to break up api singleton pattern.
2014-08-03 21:35:33 -04:00
Daniel Smith 928092e79e Etcd watcher verification
To make sure the etcd watcher works, I changed the replication
controller to use watch.Interface. I made apiserver support watches on
controllers, so replicationController can be run only off of the
apiserver. I made sure all the etcd watch testing that used to be in
replicationController is now tested on the new etcd watcher in
pkg/tools/.
2014-07-31 14:54:30 -07:00
Dan McPherson d94f5c3360 Fixing typo 2014-07-30 16:45:53 +02:00
Daniel Smith 31a78c3e2b Merge pull request #619 from brendandburns/controller
Make individual controller actions asynchronous.
2014-07-28 15:35:19 -07:00
Daniel Smith e3927b428d Merge pull request #618 from brendandburns/async
Make replication controller synchronizations independent.
2014-07-24 22:58:45 -07:00
Brendan Burns 51c5907c55 Make individual controller actions asynchronous. 2014-07-24 22:57:56 -07:00
Brendan Burns ae0baf3fab Make replication controller synchronizations independent. 2014-07-24 22:46:04 -07:00
Brendan Burns bf5ae4bb9d Fork API types. 2014-07-24 21:47:08 -07:00
Daniel Smith 91375f4c04 Split httpWatcher into watch.StreamWatcher and tools.APIEventDecoder. 2014-07-21 16:07:58 -07:00
Kelsey Hightower a9e0b0d1a3 use %v instead of %#v when logging failures 2014-07-20 11:58:22 -07:00
Kelsey Hightower 3b9029ee94 remove unnecessary expectNoError helper function
This patch completes a TODO item for the replication_controller test
suite by removing the expectNoError helper function, which does not
reduce enough typing to justify its usage.
2014-07-20 09:13:11 -07:00
Clayton Coleman 1831cf1711 Remove some verbose logging 2014-07-18 10:48:21 -04:00
Claire Li ba9c370014 pkg/controller: cleanup replication_controller.go 2014-07-12 14:21:51 -07:00
Tim Hockin f532038281 Merge pull request #345 from smarterclayton/fix_ids
Ensure pod and manifest have a UUID in apiserver
2014-07-11 11:29:00 -07:00
Andrew Gerrand a9fdf1f6b5 rename client.ClientInterface to client.Interface 2014-07-11 09:51:34 +10: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
Yuki Sonoda (Yugui) 056f871bed Fixes golint errors in pkg/controller 2014-07-10 21:27:01 +09: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 229b8fca2a Don't double-close the channel when etcd returns an error. 2014-07-01 12:49:57 -07:00
Daniel Smith 9da5fed7f4 Merge pull request #277 from brendandburns/sync
Add sync behavior to the pod registry.  Expand tests.
2014-07-01 11:43:40 -07:00
Brendan Burns 13d7a5959a Add sync behavior to the pod registry. Expand tests. 2014-07-01 11:31:21 -07:00
Nan Deng 905c6dcb10 gofmt -r "WaitToWatch->WaitForWatchCompletion" 2014-06-30 16:09:15 -07:00
Nan Deng 62055090b4 fix data races in controller 2014-06-30 14:48:57 -07:00
Brendan Burns 78d9538358 Set id width at 8 and pad with zeros. 2014-06-26 19:24:12 -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 5ce54bb77b Use new method. 2014-06-24 09:38:22 -07:00
Daniel Smith 61a494d303 First step of combination. 2014-06-24 09:38:22 -07:00
Daniel Smith cfce408266 Rename ReplicasInSet to ReplicaSelector 2014-06-19 13:31:42 -07:00
Brendan Burns 84b2a9e9f3 On delete, also attempt to update controller state, in case we
missed a previous update.  Add a test to validate that this works
2014-06-18 21:32:55 -07:00
Daniel Smith a253209a2c Add test for watch goroutine handling, fix other review comments 2014-06-18 13:10:39 -07:00
Daniel Smith 1b94f7b244 Fix race 2014-06-18 13:10:39 -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 3737b4e4e2 Fix bad lock handling. 2014-06-18 13:10:39 -07:00
Daniel Smith e74ac01a62 Move run logic into package 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