Commit Graph

147 Commits (be7209d4fc5a98103423789e095dbe6f285f0af7)

Author SHA1 Message Date
Chao Xu 9fc79e9d99 refactor testapi and test scripts to prepare for multiple API groups. 2015-09-04 18:01:32 -07:00
Wojciech Tyczynski 2b2d6b677d Refactor registry tests to reduce dependency on go-etcd. 2015-09-04 09:52:54 +02:00
Wojciech Tyczynski 97b4a64e2c Refactor registry etcd delete tests 2015-09-03 09:05:17 +02:00
Wojciech Tyczynski a4baf4c211 Add registrytest support for etcd tests. 2015-09-02 07:54:34 +02:00
Derek Carr a7e47cada2 Merge pull request #12963 from smarterclayton/enable_graceful
Enable graceful deletion of pods (7/7)
2015-09-01 15:07:29 -04:00
Wojciech Tyczynski 6dfe5b4b5a Refactoring of watch etcd tests. 2015-09-01 09:24:16 +02:00
Clayton Coleman f9590a33fd Enable graceful deletion by enabling pods 2015-08-30 18:25:53 -04:00
Wojciech Tyczynski 836be0c432 Refactoring of update etcd tests. 2015-08-28 15:47:40 +02:00
Wojciech Tyczynski 1bd9ff3bc9 Renaming in pkg/registry to reflect reality 2015-08-25 16:25:59 +02:00
Wojciech Tyczynski 61de4fc34d Refactoring of create etcd tests. 2015-08-24 15:11:00 +02:00
Jerzy Szczepkowski 46ca41c8e3 Merge pull request #12975 from wojtek-t/switch_cacher_for_pods
Switch on Cacher for pods, endpoints and nodes.
2015-08-21 10:28:38 +02:00
Wojciech Tyczynski ec6556987e Switch on Cacher for pods, endpoints and nodes. 2015-08-21 09:24:49 +02:00
Clayton Coleman 02dbb95447 Add TerminationGracePeriodSeconds to API
Set defaulting for pod spec
2015-08-20 11:03:38 -04:00
Wojciech Tyczynski 5931cc74cc Unification refactoring to pkg/registry 2015-08-20 11:17:23 +02:00
Wojciech Tyczynski d45e41a584 Small refactoring of registry pod tests. 2015-08-20 10:41:29 +02:00
Wojciech Tyczynski dcc302ab38 Refactoring of list etcd tests. 2015-08-19 13:56:23 +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 89f1f3b1b8 Alter graceful deletion to not use TTL
Avoid TTL by deleting pods immediately when they aren't
scheduled, and letting the Kubelet delete them otherwise.

Ensure the Kubelet uses pod.Spec.TerminationGracePeriodSeconds
when no pod.DeletionGracePeriodSeconds is available.
2015-08-18 09:08:43 -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
Jerzy Szczepkowski f09a08d15a Refactoring of get etcd tests.
Refactoring of get etcd tests: introudced new generic resttest, TestGet; Converted all etcd tests to use it.
2015-08-13 12:14:04 +02:00
Wojciech Tyczynski 20e84d2eb1 Remove unused members 2015-08-06 09:00:42 +02:00
Mike Danese 8e33cbfa28 rewrite go imports 2015-08-05 17:30:03 -07:00
Mike Danese a23ee556ad Merge pull request #11999 from brendandburns/attach2
Add support for attach to kubectl
2015-07-31 12:51:08 -07:00
Brendan Burns e8e756a719 Add pod/attach to the APIServer. 2015-07-30 10:55:53 -07:00
Wojciech Tyczynski 3cbbe72f9f Move etcd storage to pkg/storage/etcd 2015-07-30 15:42:06 +02:00
Wojciech Tyczynski 99d6b0e9f4 Rename storage interfaces 2015-07-30 10:34:57 +02:00
Wojciech Tyczynski d17985f1ad Move StorageInterface to pkg/storage. 2015-07-30 09:32:04 +02:00
Mike Danese 85781b674d Merge pull request #11968 from brendandburns/flow
Optionally limit flow on all upgraded proxy connections
2015-07-29 16:00:43 -07:00
Brendan Burns 99b02bfe73 Add optional throttling to the proxy/exec/attach methods 2015-07-29 13:51:20 -07:00
Wojciech Tyczynski 7ce51db40d Rename StorageInterface methods 2015-07-29 08:02:13 +02:00
Wojciech Tyczynski 9d943df397 Private EtcdHelper 2015-07-27 09:20:13 +02:00
nikhiljindal d82d5d11a7 Revert "Merge pull request #10246 from nikhiljindal"
This reverts commit a902a2f014, reversing
changes made to 7df8d76a93.
2015-07-01 11:07:18 -07:00
Zach Loafman df753b74ed Merge pull request #10509 from nikhiljindal/getToPost
Support both GET and POST methods in api server for /exec and /portforward
2015-06-30 15:56:31 -07:00
nikhiljindal 4b7f7ce535 Dont return raw etcd errors 2015-06-29 16:18:46 -07:00
nikhiljindal e0d48d4983 Support both GET and POST methods for /exec and /portforward 2015-06-29 16:01:01 -07:00
Wojciech Tyczynski f6153445f1 Remove dead code 2015-06-24 15:14:33 +02:00
Chao Xu 5673f73378 fix the left pre V1 field names in 290c4618c331f4f30a278af520121ff35 2015-06-18 18:44:55 -07:00
Filip Grzadkowski 98115facfd Revert "Gracefully delete pods from the Kubelet" 2015-06-02 23:40:05 +02:00
Clayton Coleman 72ee028cab Gracefully delete pods from the Kubelet
This commit wires together the graceful delete option for pods
on the Kubelet.  When a pod is deleted on the API server, a
grace period is calculated that is based on the
Pod.Spec.TerminationGracePeriodInSeconds, the user's provided grace
period, or a default.  The grace period can only shrink once set.
The value provided by the user (or the default) is set onto metadata
as DeletionGracePeriod.

When the Kubelet sees a pod with DeletionTimestamp set, it uses the
value of ObjectMeta.GracePeriodSeconds as the grace period
sent to Docker.  When updating status, if the pod has DeletionTimestamp
set and all containers are terminated, the Kubelet will update the
status one last time and then invoke Delete(pod, grace: 0) to
clean up the pod immediately.
2015-06-01 19:23:59 -04:00
Clayton Coleman 2b8e918ed9 TTL is not preserved automatically during edit
Change the signature of GuaranteedUpdate so that TTL can
be more easily preserved. Allow a simpler (no ttl) and
more complex (response and node directly available, set ttl)
path for GuaranteedUpdate.  Add some tests to ensure this
doesn't blow up again.
2015-05-28 19:58:17 -04: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
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
Paul Weil 982bf19c20 security context initial implementation - squash 2015-05-05 13:46:13 -04: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
Karl Beecher a7623ca6cc Adds ability to define a prefix for etcd paths
The API server can be supplied (via a command line flag) with a custom
prefix that is prepended to etcd resources paths.

Refs: #3476
2015-04-24 12:12:39 +02:00
Cesar Wong d672363387 Pod proxy, exec and portforward subresources
Makes it possible to access the following subresources:

/namespaces/<ns>/pods/<pod-name>[:port]/proxy
/namespaces/<ns>/pods/<pod-name>/exec?container=<container>&command=<cmd>
/namespaces/<ns>/pods/<pod-name>/portforward
2015-04-16 10:20:17 -04:00
Cesar Wong 4da14e9357 Add PodExecOptions and PodProxyOptions versioned resources
PodExecOptions represents the URL parameters used to invoke an
exec request on a pod. PodProxyOptions contains the path parameter
passed to a proxy request.
2015-04-16 10:20:17 -04:00
Wojciech Tyczynski 6feaf8ee4f Support List() single-matchers 2015-04-15 12:10:43 +02:00
David Oppenheimer 6b28a69a1b Clarify comments describing how GuaranteedUpdate() (previously AtomicUpdate() works. Closes #6626. 2015-04-14 15:38:15 -07:00
Clayton Coleman 0225d76b6a Support subpath on GET for GetterWithOptions
Allows REST consumers to build paths like:

    /api/v1beta3/namespaces/foo/webhookresource/<name>/<encodedsecretinurl>

Also fixes parameter exposure for subresources (was only fixed for
v1beta3).
2015-04-11 11:20:13 -04:00
Brendan Burns 5d4f1cf8da Add Validate in addition to ValidateUpdate to validation for most resources. 2015-04-08 20:15:49 -07:00
Cesar Wong 8df4758ee9 Pod log subresource
Adds a Log subresource to Pod storage. The Log subresource implements
rest.GetterWithOptions and produces a ResourceStreamer resource that
will stream the log output from the pod's host node.
2015-04-07 07:56:24 -04:00
Cesar Wong 58a1b308c1 Refactor storage return for pod etcd storage
Convert the return value of pods rest.NewStorage to a struct.
This will allow returning more storage objects for a pod (sub resources)
without awkwardly adding more return values.
2015-04-07 07:46:30 -04:00
Daniel Smith 34b399ca02 Fix incorrect reference to name in v1beta3 API. 2015-04-03 14:10:47 -07:00
Piotr Szczesniak 5c6439d449 Removed PodStatus.Host
Fixes #6165
2015-04-02 16:38:45 +02:00
Filip Grzadkowski 74da3b14b0 Delete pod_cache and rely on updating pod status by kublet. 2015-03-25 15:08:09 +01:00
Clayton Coleman aee9bdd69a Merge pull request #5805 from liggitt/node_proxy
Improve ResourceLocation API, allow proxy to use authenticated transport
2015-03-24 13:01:54 -04:00
Jordan Liggitt a75b501821 Improve ResourceLocation API, allow proxy to use authenticated transport 2015-03-24 11:11:34 -04:00
Prashanth Balasubramanian ef6601646d Migrate replication controllers to generic etcd 2015-03-23 17:59:25 -07:00
Clayton Coleman 9bb797fe93 Rename NewREST -> NewStorage to align on terminology 2015-03-23 16:52:21 -04:00
Clayton Coleman d46087db50 Move REST* interfaces into pkg/api/rest
Dependency chain is now api -> api/rest -> apiserver.  Makes the
interfaces much cleaner to read, and cleans up some inconsistenties
that crept in along the way.
2015-03-23 16:52:21 -04:00
Clayton Coleman 65425f690c Move field errors to pkg/util/fielderrors
Allows pkg/api to take a reference to labels.Selector and fields.Selector
2015-03-22 17:43:34 -04:00
Clayton Coleman 428d2263e5 Graceful deletion of resources
This commit adds support to core resources to enable deferred deletion
of resources.  Clients may optionally specify a time period after which
resources must be deleted via an object sent with their DELETE. That
object may define an optional grace period in seconds, or allow the
default "preferred" value for a resource to be used. Once the object
is marked as pending deletion, the deletionTimestamp field will be set
and an etcd TTL will be in place.

Clients should assume resources that have deletionTimestamp set will
be deleted at some point in the future.  Other changes will come later
to enable graceful deletion on a per resource basis.
2015-03-19 15:33:32 -04:00
Prashanth Balasubramanian 960e16c397 Embed etcdgeneric in RESTStorage for pods 2015-03-18 16:31:33 -07:00
gmarek a3b137ce8e Cleanup of validation.go 2015-03-18 08:59:35 +01:00
Brian Grant 407589147e Merge pull request #5005 from jdef/persistent_bindings
Persist Bindings annotations alongside pod Host assignment
2015-03-16 16:16:44 -07:00
Clayton Coleman bddef32193 Prepare EtcdHelper to extract more data from Node
In order to support graceful deletion, the resource object will
need access to the TTL value in etcd.  Also, in the future we
may want to get the creation index (distinct from modifiedindex)
and expose it to clients.  Change EtcdResourceVersioner to be
more type specific (objects vs lists) and provide a default
implementation that relies on the internal API convention.

Also, rename etcd_tools.go to etcd_helper.go and split a few
things up.
2015-03-16 15:33:50 -04:00
Clayton Coleman 143015025a Support TTL in genericetcd#Update 2015-03-16 14:22:01 -04:00
Dawn Chen 34e9c82c70 Convert RestartPolicy to string for v1beta3.
Fixed #3607 and spiritually support #5475
2015-03-13 18:38:07 -07:00
James DeFelice 20eb3c49c5 resolves #4103
clarify resource conflict status, rebase to master
remove ResourceConflict, replace usage with Conflict
2015-03-13 12:16:51 +00:00
Jerzy Szczepkowski ba9d02c0c7 Cleanup: removed BoundPodFactory.
Removed unused code: BoundPodFactory. Fixes #5384.
2015-03-13 10:44:25 +01:00
Wojciech Tyczynski 9f2f10d6db Make scheduler to watch PodSpec.Host instead Status.Host 2015-03-12 13:38:58 +01:00
Eric Tune e9b6c75b6a Stop updating boundPods objects.
Does not clean up your existing boundPods records.
Does not clean up all the dead code.  Future PRs from me
will do that.
2015-03-11 16:06:03 -07:00
Brian Grant 1a75c8843c Merge pull request #5256 from jszczepkowski/podspec-host
Implemented writing Host in Pod.Spec during binding.
2015-03-11 11:30:45 -07:00
Jerzy Szczepkowski 9a6857cf2c Fixed writing Host in Pod.Spec during binding.
Fixed writing Host in Pod.Spec during binding. Related to #5207.
2015-03-11 14:48:10 +01:00
Eric Tune 5e8d70f76b Remove HostPort conflict checking.
We decided to get rid of boundPods.   Removing this check is
a prerequisite for that.  This check had some value before we had
IP-per-Pod.  However, AIUI, use of HostPort is strongly discouraged
in Kubernetes.  It still exists as part of a Pod spec because
of ContainerVM, where it is used.  But, this change does not affect
ContainerVM, where there is no master.

If someone did create pods with HostPort using kubernetes, the following
would happen:
  - The scheduler would try not to put two conflicting pods on the same
    machine (pkg/scheduler/predicates.go : PodFitsPorts() )
  - I'm not sure if it is currently possible for a race to occur where
    the PodFitsPorts check were bypassed.   Maybe it could happen.
  - If the kubelet was sent conflicting pods, it would detect them in
    ( pkg/kubelet/kubelet.go :  filterHostPortConflicts() ).  It would
    arbitrarily pick one pod to run and another to ignore.
  - If all of the above happened and the user filed and issue on github,
    we might figure out that the user used HostPort and tell the user to stop.

TODO:
 - e2e test
 - Several of the demos in examples/ use hostPort.  Change them to
   not specify hostPort and have a service instead.
2015-03-10 22:46:30 -07:00
Salvatore Dario Minonne 925fa6baf8 Adding fields selector 2015-03-10 22:13:10 +01:00
Brian Grant 6062e14313 Merge pull request #5220 from nikhiljindal/camelCaseFieldSelectors
Changing v1beta3 field selectors to be camelCased
2015-03-10 09:35:03 -07:00
nikhiljindal 916ca9cc68 Changing v1beta3 field selectors to be camelCased 2015-03-09 18:01:01 -07:00
Clayton Coleman dfc19185f5 Add a subbindings resource as /pods/{name}/binding
Allows POST to create a binding as a child. Also refactors internal
and v1beta3 Binding to be more generic (so that other resources can
support Bindings).
2015-03-09 15:37:19 -04:00
James DeFelice bf02d17244 rebased to master 2015-03-09 14:08:11 +00:00
James DeFelice 4943fe937b implemented nil err checks, cc @yujuhong @davidopp 2015-03-09 14:06:27 +00:00
James DeFelice e5350d61a8 added comment suggested by @davidopp 2015-03-09 14:06:27 +00:00
James DeFelice 436790ccd1 add unit test for #4757
fixed compilation error
2015-03-09 14:06:27 +00:00
Brendan Burns 2700871b04 Merge pull request #5013 from smarterclayton/misc_fixup
Small cleanups to a number of client behaviors
2015-03-06 15:41:34 +01:00
Salvatore Dario Minonne 75f2efb500 moving ParseSelector to Parse for labels only. 2015-03-05 22:39:36 +01:00
Clayton Coleman a52b0f2619 Switch List/Watch to ListPredicate/WatchPredicate 2015-03-04 10:48:05 -05:00
Brian Grant fca9fd68c7 Merge pull request #4779 from smarterclayton/status_endpoints
Minimal status mutation change
2015-03-03 11:00:02 -08:00
Clayton Coleman 3d290089ae Minimal status mutation change
PUT /api/v1beta3/namespaces/default/pods/foo/status
    {
      "metadata": {...}, // allowed for valid values
      "spec": {}, // ignored
      "status": {...}, // allowed, except for Host
    }

Exposes the simplest possibly change. Needs a slight refactoring
to RESTUpdateStrategy to split merging which can be done in a
follow up.
2015-03-01 22:35:17 -05:00
Tim Hockin ea548b8260 Rename type Port to ContainerPort
Sadly I had to do this by hand - I just could not get gorename to fix up
users of it.
2015-02-27 21:05:59 -08:00
Daniel Smith 650f6cb826 Revert "Multi-port Endpoints" 2015-02-23 13:53:21 -08:00
Tim Hockin e0fd83096c Rename type Port to ContainerPort
Sadly I had to do this by hand - I just could not get gorename to fix up
users of it.
2015-02-21 22:26:38 -08:00
Clayton Coleman 72da3b4424 Move rest.Pods to pkg/registry/pod/rest.go 2015-02-16 10:09:28 -05:00
Clayton Coleman 7a93af57c0 Remove pods from pkg/registry/etcd/etcd.go since they are in their own type
Altered the master initialization code
2015-02-16 10:09:27 -05:00
Clayton Coleman 247e467217 Collapse pod REST+Registry to a single object using generic/etcd 2015-02-16 10:09:27 -05:00