Commit Graph

137 Commits (e87d735304ec16680015f534789e480fb393ba9c)

Author SHA1 Message Date
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
Filip Grzadkowski 15e9bfd9ae Add a simple cache for objects stored in etcd. 2015-04-30 12:08:56 +02:00
CJ Cullen 182f47ee3d Revert "Add a simple cache for objects stored in etcd" 2015-04-29 12:06:52 -07:00
Filip Grzadkowski 016e20167b Add a simple cache for objects stored in etcd. 2015-04-29 13:14:31 +02: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
Masahiro Sano f90dc8f413 use Watch for single object instead of WatchList 2015-04-21 08:00:52 +09:00
derekwaynecarr 199011eee0 Fix nil pointer in etcd tools 2015-04-17 11:33:31 -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
nikhiljindal 08d9e244f7 Removing some references to v1beta1 from test code 2015-04-08 17:28:06 -07:00
Tim Hockin 8ae203825b Implement multi-port endpoints
Instead of endpoints being a flat list, it is now a list of "subsets"
where each is a struct of {Addresses, Ports}.  To generate the list of
endpoints you need to take union of the Cartesian products of the
subsets.  This is compact in the vast majority of cases, yet still
represents named ports and corner cases (e.g. each pod has a different
port number).

This also stores subsets in a deterministic order (sorted by hash) to
avoid spurious updates and comparison problems.

This is a fully compatible change - old objects and clients will
keepworking as long as they don't need the new functionality.

This is the prep for multi-port Services, which will add API to produce
endpoints in this new structure.
2015-03-27 12:36:32 -07:00
Prashanth Balasubramanian b0068d05f8 Add the ability to watch fields of an rc 2015-03-26 11:01:56 -07: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
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 4ca90e0343 FakeEtcdClient should return KeyNotFound on Delete 2015-03-16 14:22:03 -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
Mike Danese 438052c453 fix variable shadowing bug in etcd_tools.go 2015-03-05 22:34:28 -08:00
Daniel Smith 4e7bccab02 Merge pull request #4991 from fabioy/etcdcheck-fix
Fix the etcd version check and have it return the version string.
2015-03-04 14:55:49 -08:00
Daniel Smith 4cd59e629a Merge pull request #5010 from smarterclayton/update_resource_version
genericetcd.Etcd should test resourceVersion
2015-03-04 14:49:05 -08:00
Mike Danese 4f6e09d854 add tests to pkg/tools/etcd_tools_test.go 2015-03-04 10:38:42 -08:00
Mike Danese e1ca63f569 SetObj and CreateObj optionally accept an object to fill with the result of the get 2015-03-04 10:38:42 -08:00
Fabio Yeon c38c6f0dad Fix the etcd version check and have it return the version string. 2015-03-03 16:59:00 -08:00
Clayton Coleman 3d52aac13c genericetcd.Etcd should test resourceVersion
Also fix that Update was returning AlreadyExists instead of
NotFound (when create is disabled) and that Update when CreateOnUpdate
was true was not populating the returned object.

Added more tests
2015-03-03 19:54:43 -05:00
Daniel Smith 650f6cb826 Revert "Multi-port Endpoints" 2015-02-23 13:53:21 -08:00
Tim Hockin 160f288832 Implement multi-port Endpoints
This is a part of multi-port services.
2015-02-22 09:35:12 -08:00
Tim Hockin ae0062d001 Part 2 of plural ports: make endpoints a struct
Includes conversions for v1b[12] and tests and fixups for call sites.
2015-02-18 19:54:15 -08:00
Clayton Coleman 23d199ded9 Make generic etcd more powerful and return operations from etcd
When we complete an operation, etcd usually provides a response
object.  Return that object up instead of querying etcd twice.
2015-02-13 13:11:33 -05:00
Yu-Ju Hong 6813683ee2 Allow AtomicUpdate() to surface the error when the key doesn't exist
In some cases, when the key doesn't exist, AtomicUpdate should simply fail and
surface the error. This change adds a new function parameter "ignoreNotFound"
for this purpose.
2015-02-11 21:56:28 -08:00
saadali a41f520bf0 Add "Update Event" to Kubernetes API 2015-02-05 00:07:51 -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
Deyuan Deng d30da9a812 List objects in deterministic order 2015-01-27 09:29:40 -05:00
Clayton Coleman ce36431954 WatchList should not convey events for the root key
It's possible to watch /foo/bar, get events for /foo/bar/baz,
and then if someone deletes /foo/bar you'll get an event for /foo/bar
without a value.  This results in an error being printed in the logs
because /foo/bar has value "" and we can't decode that.

This commit excludes the parent directory from watch events for now.
2015-01-15 16:00:49 -05:00
Clayton Coleman 880ecef6fe Move locks on watch to allow testing blocking 2015-01-07 14:38:38 -05:00
Mike Danese a98faa1f62 fixed bug in tools.NewEtcdClientStartServerIfNecessary 2014-12-03 12:58:03 -08:00
Sam Ghods 6399854240 Remove unused YAML tags and GetYAML/SetYAML methods
Unneeded after move to ghodss/yaml.
2014-12-02 16:25:28 -08:00
Tim Hockin ff8c5f9415 Add a Detail field to Validation Error 2014-11-24 17:28:42 -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
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 178d0af795 Fix watch for events; add test for interface implementation so it won't break again. 2014-11-12 15:22:08 -08:00
Dawn Chen 30fcf24131 Merge pull request #2121 from brendandburns/standalone
Create a standalone k8s binary, capable of running a full cluster
2014-11-10 22:04:28 -08:00
Brendan Burns 2c1221864d Make a standalone binary. 2014-11-10 13:34:11 -08:00
Brendan Burns d7dc20fd6a Add etcd to the list of services to validate.
Also add minions.
2014-11-05 21:22:01 -08:00
Brendan Burns cf4fd8753f Fix a missing lock in the fake etcd client. 2014-10-31 21:36:03 -07:00
Daniel Smith 94e736e286 Merge pull request #2009 from smarterclayton/unify_meta
Unify Accessor for ObjectMeta/TypeMeta/ListMeta
2014-10-29 09:58:46 -07:00
Vojtech Vitek (V-Teq) 90809c270d Use conversion.EnforcePtr() where appropriate
Signed-off-by: Vojtech Vitek (V-Teq) <vvitek@redhat.com>
2014-10-28 16:36:09 +01:00
Clayton Coleman 66ace4c270 Begin to unify ResourceVersioner and SelfLinker
Create a new MetadataAccessor interface that combines both
and use it where previously latest.ResourceVersioner and SelfLinker
were being used.

Adds Namespace to the get/set interface. Adds TODO about future
fast path for metadata (as per thockin's comment)
2014-10-27 16:00:55 -04:00
Clayton Coleman 644eb70085 Refactor tests to split ObjectMeta from TypeMeta 2014-10-24 11:22:21 -04:00
Daniel Smith e46af6e37f Merge pull request #1969 from smarterclayton/new_typemeta
Allow Meta lookup to work across ObjectType and ListMeta
2014-10-23 15:29:57 -07:00