Commit Graph

675 Commits (66d2e1cb922590930f4fa4f3941067b777afd1fa)

Author SHA1 Message Date
Zach Loafman 5f35a67002 Revert "Adding converter functions to convert field label selectors to internal version before matching" 2015-02-28 11:42:49 -08: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 d68c738fcf Merge pull request #4575 from nikhiljindal/versionedFieldSelector
Adding converter functions to convert field label selectors to internal version before matching
2015-02-27 16:33:15 -08:00
nikhiljindal 48e7945f65 Versioning the field selectors 2015-02-27 16:10:59 -08:00
Lénaïc Huard cd719d97df Fix `kubernetes` and `kubernetes-ro` services creation
If `kube-apiserver` is started before `etcd` is reachable, `kube-apiserver`
fails to create those services.
However, in the `Create` function, an IP has already been reserved for them.
When `etcd` comes back, the `Create` function fails because it considers that
the IP is already used.

If the service couldn't be created, the reserved IP should be released.
2015-02-27 18:01:03 +01:00
Satnam Singh 19b927ea57 Name a cluster and use it to make forwarding rules for GCE 2015-02-23 17:04:33 -08: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 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
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
Tim Hockin 34eaa0dbd6 Part 1 of plural ports: Add protocol to Endpoints
This makes it easier to make the second step, which is moving endpoints
to a struct instead of a string.
2015-02-18 18:58:04 -08:00
Paul Morie a131a5e491 Add test for secret RESTStorage 2015-02-18 13:02:22 -05:00
Paul Morie fb001ada21 Secret API resource 2015-02-18 11:54:56 -05:00
Tim Hockin 876b0c4619 Merge pull request #4484 from jszczepkowski/load-balancer
Update for external load balancer.
2015-02-17 17:04:08 -08:00
Paul Weil 8d7d03a2f8 service NewList should return ServiceList 2015-02-17 16:30:29 -05:00
Jerzy Szczepkowski 397c1fc69a Update for external load balancer.
Implementation of updating external load balancer on service update. This partially fixes #4411.
2015-02-17 21:49:36 +01:00
Yu-Ju Hong 9e72ec023b Remove obsolete defaulting in service/rest.go 2015-02-17 10:34:50 -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
Clayton Coleman 8440310ea0 Adapt to changes to generic etcd/registry 2015-02-13 13:11:33 -05: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
Saad Ali 3bc8f4e793 Merge pull request #4359 from erictune/no_bound_pod_envs
Stop putting env vars into BoundPods.
2015-02-12 09:12:19 -08:00
Clayton Coleman b2d50ce1cc Merge pull request #4329 from smarterclayton/bindings_incorrectly_removed
Bindings were not correctly removed across namespaces on pod update and delete
2015-02-12 11:43:22 -05:00
Eric Tune 5b4569697f Stop putting env vars into BoundPods.
They will still show up in etcd.  They never were available
through the API.

A subsequent PR(s) will rip out all BoundPods code.
Working in small increments.

This PR will cause users on lagging cloud providers
to not get env vars in their pods if they update to this code.
They have already been warned via email.

Removed unit tests of BasicBoundPodFactory.
There is adequate coverage in pkg/kubelet/kubelet_test.go.
2015-02-12 08:37:23 -08:00
Clayton Coleman 7d43971614 Merge pull request #4326 from yujuhong/phantom_pods
Allow AtomicUpdate() to surface the error when the key doesn't exist
2015-02-12 10:19:09 -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
Clayton Coleman 26f08b7807 RESTStorage should not need to know about async behavior
Also make sure all POST operations return 201 by default.
Removes the remainder of the asych logic in RESTStorage and
leaves it up to the API server to expose that behavior.
2015-02-11 16:26:08 -05:00
Clayton Coleman 6f85b655cc Bindings were not correctly removed across namespaces on pod update and delete
BoundPods must be checked for Name and Namespace equality, not just name
equality. In the future, we should also check for UID equality.
2015-02-11 14:35:28 -05:00
derekwaynecarr 0bd0e12bbc Add support for Namespace as Kind
Add example for using namespaces
2015-02-10 09:50:50 -05:00
derekwaynecarr 151be7773c Rename api.Namespace to api.NamespaceValue to avoid name collision 2015-02-10 09:44:29 -05:00
Brendan Burns 783e1de5bb Add some locking to prevent go data race logic from tripping. 2015-02-05 17:27:58 -08:00
Brendan Burns b08bd8671f Merge pull request #4157 from saad-ali/updateEventApi
Add "Update Event" to Kubernetes API
2015-02-05 14:50:48 -08:00
Tim Hockin a20fb598bc Merge pull request #4132 from jszczepkowski/master
Improve "constraint violation" error message.
2015-02-05 13:43:29 -08:00
Jerzy Szczepkowski 18c5fa1ae7 Applied comments. 2015-02-05 20:32:51 +01:00
Brian Grant 50b1034b6c Merge pull request #4122 from pmorie/comment
Clarify commenting in endpoints_controller
2015-02-05 07:09:56 -08:00
saadali a41f520bf0 Add "Update Event" to Kubernetes API 2015-02-05 00:07:51 -08:00
Jerzy Szczepkowski ad4c2ee630 Improve "constraint violation" error message. 2015-02-05 00:29:28 +01:00
Paul Morie 3229a634a0 Clarify commenting in endpoints_controller 2015-02-04 15:14:05 -05:00
Brian Grant 3f28badae3 Merge pull request #3854 from yujuhong/defaults
Migrate API defaulting to a centralized location
2015-02-04 11:41:23 -08:00
Tim Hockin 411666decb Get rid of ServiceSpec.ProxyPort
As far as I know, nobody uses it.  It was replaced by PublicIPs.  If I were
being very polite I would leave it in internal, but since I am 99.99% sure
nobody uses it, I am cutting it.  Let's argue about it.
2015-02-03 22:45:00 -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
Clayton Coleman 1588970ec4 Turn 409 into 500 Try Again Later when using generateName
If a client says they want the name to be generated, a 409 is
not appropriate (since they didn't specify a name). Instead, we
should return the next most appropriate error, which is a 5xx
error indicating the request failed but the client *should* try
again.  Since there is no 5xx error that exactly fits this purpose,
use 500 with StatusReasonTryAgainLater set.

This commit does not implement client retry on TryAgainLater, but
clients should retry up to a certain number of times.
2015-02-02 14:46:25 -05:00
Clayton Coleman e485dc93ca Minions should have common logic with create
TODO: disable / document generate names for cluster scoped resources.
2015-02-02 14:46:25 -05:00
Clayton Coleman 0a87f0332b Add name generation to services 2015-02-02 14:46:25 -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
Clayton Coleman a7c9a12286 Add name generation and normalize common create flows
Adds `ObjectMeta.GenerateName`, an optional string field that defines
name generation behavior if a Name is not provided.

Adds `pkg/api/rest`, which defines the default Kubernetes API pattern
for creation (and will cover update as well). Will allow registries
and REST objects to be merged by moving logic on api out of those places.

Add `pkg/api/rest/resttest`, which will be the test suite that verifies
a RESTStorage object follows the Kubernetes API conventions and begin
reducing our duplicated tests.
2015-02-02 14:44:53 -05:00
saadali e83fd7b8e7 Make master service IP static (no longer randomly assigned) 2015-01-30 16:07:19 -08:00
Deyuan Deng 662bcb9c3d Fix node hostip issue 2015-01-30 14:23:18 -05:00
Deyuan Deng c793c4f0ab Sync node status from node controller to master. 2015-01-29 23:17:15 -05:00
Brian Grant 0345211e0c Merge pull request #3921 from nikhiljindal/OperationClean
Some more operations code cleanup
2015-01-29 14:54:05 -08:00
Tim Hockin d01ea11a6e Merge pull request #3856 from smarterclayton/validation_logic_needs_cleanup
Validation of ObjectMeta is inconsistently applied
2015-01-29 14:12:44 -08:00
Brendan Burns 2d4e72f1fa Add some extra checking around a call to list pods. 2015-01-28 22:22:54 -08:00
nikhiljindal dc92d3c7a2 Cleaning up the operations code in client 2015-01-28 21:04:16 -08:00
derekwaynecarr 829fa69527 Introduce a ResourceQuota object 2015-01-28 15:03:19 -05:00
Tim Hockin c8f61885df Merge pull request #3695 from mikedanese/ready
refactor pkg/health into more reusable pkg/probe
2015-01-28 11:00:32 -08:00
Clayton Coleman a0356bca96 Unify validation logic for create and update paths
Ensure ObjectMeta is consistently validated on both create and update

Make PortalIP uncleareable
2015-01-28 13:10:37 -05:00
Tim Hockin a480794efc Tighten validation of Name and Namespace 2015-01-27 17:04:59 -05:00
derekwaynecarr 74f368f50e Modified LimitRangeItem.Kind to LimitRangeItem.Type, added example files 2015-01-27 16:41:28 -05:00
derekwaynecarr 091cbe5fa2 Add a limit range resource 2015-01-27 16:41:27 -05:00
Mike Danese 5dc6362f8a rename probe.Healthy to probe.Success and renam probe.Unhealthy to probe.Failure. 2015-01-27 11:20:30 -08:00
Mike Danese a298402bd4 remove pkg/health and move everything over to pkg/probe 2015-01-27 11:20:30 -08:00
Brendan Burns f124842505 Clear pod cache on delete. 2015-01-26 17:26:43 -08:00
Daniel Smith 09e30a6a63 log on health checks 2015-01-14 17:38:48 -08:00
Daniel Smith 2bee4ac572 Merge pull request #3381 from a-robinson/events2
Improve client recording of events such that clients are
2015-01-14 15:21:16 -08:00
Daniel Smith c13ae34b02 Merge pull request #3445 from saad-ali/fix3172
Remove CONDITION from event object completely
2015-01-14 15:03:06 -08:00
Eric Tune 88c68e0349 Merge pull request #3331 from pmorie/services
Service visibility w/in namespaces, master services, set env vars in kubelet
2015-01-14 15:01:05 -08:00
saadali 90dfdcecd5 Remove CONDITION from event object completely
# *** ERROR: *** Some files have not been gofmt'd.  To fix these
# errors, run gofmt -s -w <file>, or cut and paste the following:
#   gofmt -s -w pkg/kubecfg/resource_printer.go pkg/proxy/config/config.go pkg/runtime/types.go
#
# Your commit will be aborted unless you override this warning. To
# commit in spite of these format errors, delete the following line:
#   COMMIT_BLOCKED_ON_GOFMT
2015-01-14 14:17:16 -08:00
Paul Morie fd834ae84d Pods should see services only from their own ns 2015-01-14 17:06:36 -05:00
Tim Hockin e86d4cd3c6 Use a strong type for UID fields 2015-01-14 13:53:43 -08:00
Alex Robinson be6b1cf0e2 Push the full channel logic into the implementation of the broadcaster
in watch/mux.go rather than being in the client event recording code.
2015-01-13 02:22:30 +00:00
Dawn Chen 26a6628d8a Merge pull request #3374 from lavalamp/fix
Fix minion listing
2015-01-12 16:36:46 -08:00
Daniel Smith 3e75195ff3 make minion registry not intolerably slow 2015-01-12 16:20:52 -08:00
Clayton Coleman 302629569b Remove unimplemented methods 2015-01-12 12:20:01 -05:00
Clayton Coleman 22c99c98e2 Split RESTStorage into separate interfaces
Omit unimplemented interfaces from Swagger
2015-01-12 12:19:45 -05:00
Clayton Coleman 2741126cd4 Merge pull request #3239 from smarterclayton/healthy_registry_should_decorate
HealthyRegistry should only decorate minions, not omit them
2015-01-08 10:34:56 -05: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 a0d711816d HealthyRegistry should only decorate minions, not omit them
Fixes #3098
2015-01-07 11:09:41 -05:00
Dawn Chen e3c019128e Add EventSource to api to have both Component and Host information. 2015-01-06 16:08:20 -08:00
Tim Hockin ca27fb259c Don't use pointers for session affinity 2014-12-29 14:43:17 -08:00
Tim Hockin fb0a7a9693 Add apiserver proxy support for pods.
This is useful for testing mostly.
2014-12-23 12:51:24 -08:00
Daniel Smith 65cf5f29b7 Merge pull request #3095 from derekwaynecarr/events_not_namespace
Namespace scope events in storage
2014-12-22 16:01:38 -08:00
Daniel Smith 5b8e91595a Make pod listing costant-time
* move ip cache out of registry/pod
* combine, rationalize, and move pod status logic
* Fix unit and integration tests
2014-12-22 14:14:03 -08:00
derekwaynecarr b47cde2465 Namespace scope events in storage 2014-12-22 13:01:20 -05:00
Daniel Smith 9fee1b0503 Merge pull request #3051 from brendandburns/flake
Add a PodUnknown phase and make ListPods return even when there are errors
2014-12-19 16:45:44 -08:00
Brendan Burns 5e8490d5fe Add a PodUnknown phase and make ListPods return even when there are errors
obtaining info for some pods.
2014-12-19 15:08:48 -08:00
Mike Foley c4e94efe16 Sticky Session Implementation
- Added process to cleanup stale session affinity records
- Automatically set cloud provided load balancer for sticky session if the service requires it - Note, this only works on GCE right now.
- Changed sessionAffinityMap a map to pointers instead of structs to improve performance
- Commented out cookie and protocol from sessionAffinityDetail to avoid confusion as it is not yet implemented.
2014-12-18 18:46:10 -05:00
Brendan Burns 82d0d68571 Merge pull request #3027 from jdef/rest_no_network_settings
only log about no network settings for running pods
2014-12-18 10:19:20 -08:00
Brendan Burns 36bc3604b9 Merge pull request #2893 from brendandburns/pd3
Make it easier to update nodes, make it possible to update capacity.
2014-12-18 10:18:54 -08:00
Deyuan Deng 677f68ec02 Fix node Get() error code 2014-12-18 23:03:52 +08:00
James DeFelice b3c7aa8a53 only log about no network settings for running pods 2014-12-18 08:41:56 -05:00
Brendan Burns cf0b41535f Make it easier to update nodes, make it possible to update capacity. 2014-12-17 21:50:26 -08:00
Dawn Chen deafd90280 PodStatus 2014-12-17 11:39:09 -08:00
Clayton Coleman 88715cc6ef Rename Event.Status to Event.Condition to match v1beta3 agreement
Question - should this be a phase?  Seems like no, since phase implies
defined lifecycle and this field is explicitly not defined.
2014-12-16 09:43:10 -05:00
Deyuan Deng 45bfcb451b Enable watch on node changes. 2014-12-16 08:12:31 +08:00
Daniel Smith f1f20f820a Merge pull request #2942 from brendandburns/kubelet
revert the revert along with fixes to make it pass e2e tests.
2014-12-15 13:17:52 -08:00
Daniel Smith a2638da2a7 Merge pull request #2899 from derekwaynecarr/update_generic_etcd
Update generic etcd to enable namespace scoped resources
2014-12-15 13:10:51 -08:00
Brendan Burns a6f967b6e7 Revert "Revert "Add an api object for the kubelet, and a versioned endpoint.""
This reverts commit dcfcf315e5.
2014-12-15 09:29:04 -08:00
derekwaynecarr 92e2c2b302 Updated default function names, keyroot to keyrootfunc 2014-12-15 10:42:13 -05:00
derekwaynecarr 6353612f40 Update generic etcd to enable namespace scoped resources 2014-12-15 10:42:13 -05:00
Brendan Burns dcfcf315e5 Revert "Add an api object for the kubelet, and a versioned endpoint."
This reverts commit d4b9979382.
2014-12-12 21:13:44 -08:00
Brendan Burns d4b9979382 Add an api object for the kubelet, and a versioned endpoint. 2014-12-12 15:26:28 -08:00
Brian Grant 9b539262a8 Count only non-dead pods in replicationController current state replicas count. 2014-12-12 22:23:14 +00:00
Jordan Liggitt 51bfb50698 Use util.Time consistently in types.go 2014-12-11 11:14:25 -05:00
Brendan Burns bac915a066 Return an error if a user attempts to create an externalized UDP balancer. 2014-12-10 20:08:03 -08:00
Daniel Smith 272bfc97ed Merge pull request #2788 from smarterclayton/roundtrip_node_nodelist
Rename Minions -> Nodes internally
2014-12-10 11:12:15 -08:00
Clayton Coleman 6ab6c90ce5 Merge pull request #2665 from ddysher/fix-watch-filter
Move watch filter into storage level
2014-12-10 12:31:55 -05:00
Clayton Coleman 0d887ae7b3 Change podStatus from Nodes.List() -> Nodes.Get(name)
Retrieves a lot less data
2014-12-10 12:08:19 -05:00
Clayton Coleman d1d7505272 Rename client Minions->Nodes, select the correct path for v1beta3
Replaces the client public interface but leaves old references to "minions"
for a later refactor.  Selects the path "nodes" for v1beta3 and "minions"
for older versions.
2014-12-10 12:08:19 -05:00
Clayton Coleman 19379b5a38 Internal rename api.Minion -> api.Node 2014-12-10 12:08:18 -05:00
Clayton Coleman 2c27f7d332 Allow an empty service 2014-12-09 12:48:53 -05:00
Brendan Burns 33b3c1b8ce Fix e2e. 2014-12-08 16:55:56 -08:00
Deyuan Deng 76552423f9 Move watch filter into storage level 2014-12-04 20:15:27 -05:00
Eric Tune 3f285269cc Rename watch.Mux -> watch.Broadcaster
A few reasons:
- Mux is already widely used in the codebase to refer to a http handler mux.
- Original meaning of Mux was something which sent a chose one of several inputs to
  and output.  This sends one output to all outputs.  Broadcast captures that idea
  better.
- Aligns with similar class config.Broadcaster (see #2747)
2014-12-04 00:30:51 -08:00
Tim Hockin f4b031d025 Merge pull request #2514 from thockin/label-ns
Add label key namespacing
2014-12-02 13:38:46 -08:00
Brendan Burns 6b009f06cd Merge pull request #2635 from thockin/public-ip
Enable public IPs even in not createExternal...
2014-12-01 14:56:22 -08:00
Tim Hockin 89875ef09d Loosen DNS 952 for labels 2014-12-01 12:30:43 -08:00
Eric Tune 585afa1bae Merge pull request #2610 from ddysher/node-namespace
Fix node namespace.
2014-11-26 13:02:21 -08:00
Tim Hockin 0c03f6e784 Enable public IPs even in not createExternal...
This allows the proxier to portal Public IPs even if the
createExternalLoadBalancer flag is not set.

This also fixes what appears to be a bug in the createExternalLoadBalancer path
wherein multiple PublicIPs would get truncated.
2014-11-26 10:54:28 -08:00
Eric Tune 636ffed399 Merge pull request #2515 from thockin/why
Add details on Invalid validation errors
2014-11-25 14:04:27 -08:00
Deyuan Deng c8c7a13ac6 Fix node namespace. 2014-11-25 16:30:55 -05:00
Tim Hockin ff8c5f9415 Add a Detail field to Validation Error 2014-11-24 17:28:42 -08:00
Daniel Smith 610ab9a0db Merge pull request #2586 from dchen1107/cleanup
Using util.Time for ContainerStatus
2014-11-24 15:35:07 -08:00
Dawn Chen acb0f1198b Using util.Time for ContainerStatus 2014-11-24 15:15:33 -08:00
derekwaynecarr 039af4a569 Endpoint.Namespace is not being set when it has no resolved pods 2014-11-24 14:15:22 -05:00
Eric Tune f122fc94bf Move service enviroment vars code.
GetServiceEnvironmentVariables (originally in  pkg/registry/service/rest.go)
is split into two parts: one that lists services, and one that turns
a ServiceList into environment vars.  This will allow a subsequent PR
to add a call to the latter function with an existing ServiceList.
The former part is moved into pkg/registry/pod/bound_pod_factory.go.
The latter part is put in a new package, pkg/kubelet/envvars/envvars.go.
The new package is under kubelet because the container enviroment is more
associated with kubelet than with registry.
Test code moved too.
2014-11-23 05:50:34 -08:00
bgrant0607 8298308d34 Merge pull request #2525 from erictune/cleanup1
Rename makeContainerKey -> make BoundPodsKey.
2014-11-21 14:04:11 -08:00
Eric Tune 20a8e4bf19 Rename makeContainerKey -> make BoundPodsKey.
Fix some typos too.
2014-11-21 13:15:08 -08:00
markturansky 8159c8fd25 Refactor PodCondition to PodPhase 2014-11-21 15:28:38 -05:00
markturansky 13cba21c6c Add old and new DesiredState/Status to podToSelectableFields for watches 2014-11-21 09:46:05 -05:00
Deyuan Deng a4e7604266 Merge pull request #2478 from smarterclayton/refactor_minion_to_match_v1beta3
Move the internal minion representation to match v1beta3
2014-11-20 21:37:43 -05:00
Clayton Coleman 156000ef6d Move the internal minion representation to match v1beta3
Moves to 'Spec' and 'Status' internally and removes duplicate
fields.  Moves Capacity into Spec and drops use of NodeResources
2014-11-20 20:53:08 -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
Deyuan Deng c20ceea170 Add more validation for updating node. 2014-11-17 13:42:31 -05:00
Deyuan Deng cc310e0e71 Support node label update. 2014-11-17 13:42:31 -05:00
Brendan Burns 88fa703b8e Merge pull request #2417 from thockin/ipalloc
Cleanups of ipv6 changes.
2014-11-17 09:54:16 -08:00
Brendan Burns 271ed1c21e Merge pull request #2394 from ddysher/random-fix
Exclude service itself when checking conflict.
2014-11-17 09:47:58 -08:00
Tim Hockin 9c218f0a19 Cleanups of ipv6 changes.
I was late re-reviewing and some comments did not get resolved.
2014-11-17 09:33:14 -08:00
Deyuan Deng 241f3d702b Exclude service itself when checking conflict. 2014-11-15 10:40:40 -05:00
Brendan Burns 4a8a2b5a9f Address comments. 2014-11-14 17:23:13 -08:00
Brendan Burns 2aa52d043b Add external services v2 support. 2014-11-14 11:32:54 -08:00
Brendan Burns c2485a4056 Merge pull request #2147 from justinsb/ipv6
Initial ipv6 / iptables work
2014-11-14 10:34:37 -08:00
Daniel Smith de75e5a9bb Fix server-side namespace handling for events; add validation 2014-11-14 09:43:28 -08:00
Dawn Chen ff68b75401 Merge pull request #2333 from derekwaynecarr/validate_uid
Set uid during object create
2014-11-13 13:56:25 -08:00
derekwaynecarr 15701ff403 Set uid during object create 2014-11-13 15:25:49 -05:00
Deyuan Deng c83ee59e15 Remove health check when creating node. 2014-11-12 18:55:18 -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
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
derekwaynecarr b326cbbe0c Centralize minion validation 2014-11-12 12:38:15 -05:00
Daniel Smith f1b0b64a75 Add 'source' to events field selector. 2014-11-11 15:32:13 -08:00
Clayton Coleman 94c873e7a4 Remaining refactor for PodTemplateSpec and fixing test cases 2014-11-11 17:03:20 -05:00
Deyuan Deng 38abf0c7ad Return success when registrying unhealthy node. 2014-11-07 15:45:15 -05:00
Justin SB b19170f335 gofmt 2014-11-07 06:34:18 -08:00
Justin SB 04313ff173 Create ip_allocator that copes with IPv6
It uses a set (via a map) of allocated IPs
2014-11-06 21:26:26 -08:00
markturansky 119f654a13 Refactor PodStatus to PodCondition in internal API for v1beta3 2014-11-05 17:26:47 -05:00
Daniel Smith 3bd10d4fb4 Merge pull request #2145 from lavalamp/eventing2
Add a placeholder to boundPod's SelfLink
2014-11-05 13:49:53 -08:00
bgrant0607 fc0dab630c Merge pull request #2086 from markturansky/v1beta3_refactor
Refactor internal API for Services to match v1beta3
2014-11-04 21:48:02 -08:00
bgrant0607 c7ff31004b Merge pull request #2094 from brendandburns/svc
Add some validation for externalized service ports.
2014-11-04 13:04:56 -08:00
markturansky bd7643c033 refactor services to v1beta3 2014-11-04 14:23:53 -05:00
Daniel Smith 724db61c1d Add a placeholder to boundPod's SelfLink, and test that one can make references to them. 2014-11-03 17:46:33 -08:00
Dawn Chen c4aa4d28a6 Merge pull request #2120 from brendandburns/uuid
Add some blocking so that we don't generate identical UUIDs for API objects.
2014-11-03 15:32:56 -08:00
Brendan Burns f556f2f82f Add some validation for externalized service ports. 2014-11-03 13:36:34 -08:00
Brendan Burns a624630112 Add some blocking so that we don't generate identical UUIDs for API objects. 2014-11-03 13:27:59 -08:00
Brendan Burns 32a04e48fd Make endpoints return 400 instead of 500 2014-11-02 20:08:06 -08:00
Daniel Smith 7146ec9d49 Implement kubernetes & kubernetes-ro services 2014-10-29 11:29:28 -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
deads2k 613bf93eaf expose ParseWatchResourceVersion for downstream use 2014-10-28 16:29:33 -04:00
Daniel Smith 66b43a5e87 fix build 2014-10-28 12:44:24 -07:00
Clayton Coleman 5cb3c10289 Merge pull request #1782 from smarterclayton/allow_put_to_set_create
Allow clients to determine the difference between create or update on PUT
2014-10-28 13:40:41 -04:00
Tim Hockin bb5ca0f91b Respect a requested PortalIP if possible 2014-10-27 14:03:52 -07: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 d5ee171410 Allow clients to determine the difference between create or update on PUT
PUT allows an object to be created (http 201).  This allows REST code to
indicate an object has been created and clients to react to it.

APIServer now deals with <-chan RESTResult instead of <-chan runtime.Object,
allowing more data to be passed through.
2014-10-24 14:41:15 -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 7550c146dc Replace struct initializers for TypeMeta with ObjectMeta 2014-10-24 11:22:21 -04:00
Clayton Coleman 09800643e2 Change validation now that namespace is on ObjectMeta 2014-10-24 11:22:20 -04:00
Haney Maxwell 3160500940 Refactor kubelet access and add SSL 2014-10-22 14:53:59 -07:00
Clayton Coleman 91d9a90e4e Replace use of "id" in strings with "name" 2014-10-22 15:59:12 -04:00
Clayton Coleman bb77a5d15f Rename ID -> Name 2014-10-22 15:00:26 -04:00
deads2k 34b5861b60 add unit tests for rejection of conflicting namespaces 2014-10-21 15:57:02 -04:00
Daniel Smith f748e2d2c5 Implement redirection & proxying for minions 2014-10-20 11:28:12 -07:00
Michal Fojtik 0bccce4520 Move error about connecting to healthz server to V(1) 2014-10-20 15:31:01 +02:00
Tim Hockin 8d37319982 Fix borrow and carry in IPAllocator 2014-10-17 17:13:22 -07:00
Daniel Smith f1e0290605 fix broken test 2014-10-17 15:21:03 -07:00
derekwaynecarr e2c888795c Fix typo etcd registry 2014-10-17 16:22:57 -04:00
derekwaynecarr 1d6c937183 Wrong method call to watch service endpoints key 2014-10-17 13:34:42 -04:00
Clayton Coleman 26cff8b9bf Rename the etcd path for pods to be /registry/nodes/<>/boundpods 2014-10-16 19:29:08 -04:00
Clayton Coleman 6ae611aedd Write BoundPods to etcd instead of ContainerManifestList
Rename ManifestFactory -> BoundPodFactory and change the general structure
of the call to focus on BoundPod.
2014-10-16 19:29:08 -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
Tim Hockin e907011111 Core support for ip-per-service 2014-10-16 08:36:47 -07:00
Deyuan Deng ec46e94dc2 Create MinionController to sync minions from cloudprovider (pkg cloudprovider/controller). 2014-10-14 18:45:25 -04:00
Dawn Chen f01fd8ff38 After all containers in a pod started. If any one container is still running,
or in the process of restarting, mark pod status running.

Fix #1758.
2014-10-14 10:26:31 -07:00
Daniel Smith 841e9e87ff Merge pull request #1713 from brendandburns/update
Add update to the pod etcd handler.
2014-10-13 17:42:30 -07:00
Brendan Burns 4380637be7 Add update to the pod etcd handler. 2014-10-13 17:27:31 -07:00
Daniel Smith b1a6b3eee8 Split generic; add test, address other review comments 2014-10-10 15:47:34 -07:00
Daniel Smith d3d9f7ac8b ObjectDiff moved after rebase 2014-10-10 15:47:34 -07:00
Daniel Smith 3e076e12fe Add event registry and type 2014-10-10 15:46:49 -07:00
Daniel Smith 9a9362e896 Add generic registry object so we can stop rewriting this code 2014-10-10 15:46:49 -07:00
Brendan Burns 9ffa69ce15 Merge pull request #1696 from derekwaynecarr/pod_cache_needs_namespace
Pod cache needs to be namespace-aware
2014-10-10 08:28:32 -07:00
derekwaynecarr 9e60bf1e43 Pod cache needs to be namespace-aware 2014-10-10 09:35:31 -04:00
Tim Hockin d84816aaec Merge pull request #1709 from erictune/move_line
Fix format specifiers in Printf-type functions.
2014-10-09 20:40:35 -07:00
Eric Tune 800284164a Fix format specifiers in Printf-type functions. 2014-10-09 17:06:32 -07:00
Daniel Smith 9b42f62da3 Merge pull request #1705 from erictune/dead
Delete unused function.
2014-10-09 17:05:34 -07:00
Eric Tune 8296f038ac Delete unused function. 2014-10-09 16:40:11 -07:00
Deyuan Deng 15e5b876b8 Change ContainsMinion to GetMinion 2014-10-08 23:41:15 -04: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
Daniel Smith ee107d3fad fix extra un-cosmetic extraneous code. 2014-10-07 14:08:18 -07:00
Daniel Smith 4dd3094035 Fix mismatched arg and formatter in Errorf 2014-10-07 14:03:06 -07:00
Deyuan Deng 4de810efb4 Rebase to master, change JSONBase to TypeMeta. 2014-10-07 16:22:36 -04:00
Deyuan Deng c3d9197a4b Rename InsertMinion to CreateMinion. 2014-10-07 16:22:35 -04:00
Deyuan Deng 4a35325f29 Use etcd as backend for minion registry. 2014-10-07 16:22:35 -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
Brendan Burns fca26ccc65 Merge pull request #1569 from dchen1107/termination
Initial support to propagating the termination reasons and image failures
2014-10-06 16:56:23 -07:00
Brendan Burns 130784bfdf Merge pull request #1594 from thockin/ipallocator
Add an IPAllocator type
2014-10-06 16:56:00 -07:00
Dawn Chen 8d0ed93aa1 Clean unittests 2014-10-06 13:37:22 -07:00
Dawn Chen 9861eb7c8e Initial support of propogating the termination reasons and image failure
to apiserver. Deprecated docker.Container from API completely.

Conflicts:
	pkg/api/types.go
	pkg/kubelet/kubelet.go
2014-10-06 13:37:22 -07:00
Brendan Burns 7c694d2cad Merge pull request #1596 from thockin/unbound
Better handling of unbound pods.
2014-10-06 13:31:41 -07:00
Tim Hockin 372aa07b58 Better handling of unbound pods.
A small collection of tweaks to better handle pods when they are not currently
bound to a host.
2014-10-06 12:27:18 -07:00
Tim Hockin 8131a5ca6a Add an IPAllocator type 2014-10-06 09:02:04 -07:00
Deyuan Deng 7bae027604 Fix bug in minion registrytest. 2014-10-05 15:55:26 -04:00
Brendan Burns 1551b48347 Add a resource fit scheduler predicate. Set sensible defaults. 2014-10-03 15:09:59 -07:00
Brendan Burns a115840e4f Add a caching layer, so we don't pound cloud providers for ip addresses. 2014-10-02 21:51:09 -07:00
derekwaynecarr 6625e58a20 Updates to review comments 2014-10-01 10:57:50 -04:00
derekwaynecarr 0312d80ffa Update test cases to use default context 2014-10-01 10:57:50 -04:00
derekwaynecarr e4ec49ee6b Require namespace on controller, pod, service objects 2014-10-01 10:57:50 -04:00
Tim Hockin 04cdf286a4 Make and use api.Protocol type 2014-09-27 20:31:37 -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
derekwaynecarr b7fcc7d3ec Add ctx to registry test cases 2014-09-26 15:19:22 -04:00
derekwaynecarr 09365fed8d Add ctx to registry interfaces 2014-09-26 15:18:42 -04: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
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
Daniel Smith 4d4ebcd38e Add ttl parameter to CreateObj 2014-09-25 12:08:14 -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 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
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
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
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
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
Daniel Smith f211e46f20 handle watch errors everywhere 2014-09-22 17:37:12 -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 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
Deyuan Deng 0c8d9ba870 Fix minion registry test insert. 2014-09-18 23:04:10 -04:00