Commit Graph

233 Commits (4420e0452ed94083ae3d3aa61df34875d310ed9a)

Author SHA1 Message Date
Alex Robinson 9992abdfcf Merge pull request #3997 from smarterclayton/make_master_index_optional
Make master index optional when master is used in other contexts
2015-02-02 12:45:18 -08:00
Clayton Coleman 7f39a37eee Fix integration tests to not depend on setting pod.Status on create
Allow the master to have pod/node cache timeouts controlled via a config
flag for integration tests.

Move integration test to '127.0.0.1' so that it correctly returns a health
check, and enable health check testing on the integration test.
2015-02-02 14:46:23 -05:00
Alex Robinson 7868fe468e Merge pull request #3618 from saad-ali/fix2410
Make master service IP static (no longer randomly assigned)
2015-02-02 11:05:58 -08:00
derekwaynecarr 4c33e36a88 Plumb restmapper properly through apiserver and tests 2015-02-02 10:26:19 -05:00
Clayton Coleman 42175b433a Make master index optional when master is used in other contexts
OpenShift provides a default URL at the root that shows the UI. The
provided flag makes loading the index handler optional for now.
2015-01-30 22:19:55 -05:00
saadali e83fd7b8e7 Make master service IP static (no longer randomly assigned) 2015-01-30 16:07:19 -08:00
Clayton Coleman 49ee27988d Print the returned object in the event of a publish error
resp.Object is a pointer, so printing resp doesn't show what the
server returned.
2015-01-30 18:27:50 -05:00
Joe Beda 6bdede6925 Convert kube-apiserver to hyperkube.
Part of #108.

Also:
* Added hyperkube cmd (not built by default yet).
* Added version support to hyperkube
* Remove health_check_minions flag from apiserver as it is no longer used with #3733
2015-01-30 13:06:28 -08:00
Brian Grant 207d0f5d40 Merge pull request #3878 from thockin/infra_name
Use a constant for the pod infra container name
2015-01-30 09:18:00 -08:00
Satnam Singh 9a8d20a2fc Merge pull request #3969 from GoogleCloudPlatform/alex-mohr-patch-1
Update master.go's UpdateAllContainers to every 5 seconds instead of 30.
2015-01-30 07:58:43 -08:00
Deyuan Deng c793c4f0ab Sync node status from node controller to master. 2015-01-29 23:17:15 -05:00
Alex Mohr 3ac5b611b1 Update master.go
Make pod status update every 5 seconds instead of every 30 to mask the issue #3952.  I suspect (but haven't confirmed) that #3927 doesn't completely address the issue since it will still happily cache a Pending status for up to 30 seconds even though the pod may have transitioned to Running already.
2015-01-29 18:54:35 -08:00
Brendan Burns 3624b65f1c Transform the podCache into a write-through cache.
Don't always clear podInfo, instead occasionally garbage collect.
2015-01-28 22:15:23 -08:00
derekwaynecarr 829fa69527 Introduce a ResourceQuota object 2015-01-28 15:03:19 -05:00
Tim Hockin 70ab406751 Use a constant for the pod infra container name
This is an implementation detail that has leaked out of kubelet.  Use a
constant to prevent divergence, for now.  Plan to get rid of it.

@dchen1107
2015-01-28 10:13:02 -08:00
Tim Hockin 60119db5d5 More e2e damage from renaming "net" to "POD"
This stops the bleeding.  Will followup with a constant.
2015-01-28 09:58:19 -08:00
derekwaynecarr 091cbe5fa2 Add a limit range resource 2015-01-27 16:41:27 -05:00
Brendan Burns f124842505 Clear pod cache on delete. 2015-01-26 17:26:43 -08:00
Dawn Chen c65f83f424 Merge pull request #3795 from ddysher/pod-cache-semantic
fix pod-cache with node semantic change
2015-01-26 16:04:48 -08:00
Clayton Coleman 6410f37a32 Merge pull request #3591 from ddysher/node-client-update
Add node update method to client interface
2015-01-26 15:47:18 -05:00
Deyuan Deng 881be6c952 fix pod-cache with node semantic change 2015-01-25 16:59:00 -05:00
Deyuan Deng e71227388e add node update method to client interface 2015-01-23 16:40:33 -05:00
Brian Grant 3ae67f8153 Merge pull request #3548 from nikhiljindal/listHandlers
Updating handleIndex in master to list all valid paths.
2015-01-21 15:42:50 -08:00
nikhiljindal 51007cc798 Updating handleIndex in master to list all valid paths.
The list of valid paths is computed from http.ServeMux and
restful.WebService.
Adding a mux helper - wrapper over mux, that keeps track of the paths
handled by mux.
2015-01-21 13:40:01 -08:00
Andrew Seidl 6dee1d7fa4 Fix typos in user-facing strings 2015-01-18 01:32:34 -06:00
Brendan Burns e86c8f9e53 Merge pull request #3565 from dchen1107/podstatus
Introduce PodStatusResult, and deprecate PodContainerInfo.
2015-01-16 12:05:07 -08:00
Dawn Chen 15e9fa8a9d Introduce PodStatusResult, and deprecate PodContainerInfo. 2015-01-16 09:10:40 -08:00
nikhiljindal 1ccae67b6e master.go cleanup: Deleting unused public methods and converting rest to private 2015-01-15 16:22:43 -08:00
Clayton Coleman 90c835af47 The API server setup logging is debug specific, bump above V(4)
Reduces some chatter in test suites where we are confident this code
already works.  Also removed any logging which is obvious from swagger.

Finally, rolls up InstallREST related errors all the way back to master,
which will glog.Fatalf (coding errors).
2015-01-15 14:25:58 -05:00
Paul Morie fd834ae84d Pods should see services only from their own ns 2015-01-14 17:06:36 -05: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
Daniel Smith 6e70853e83 genericize ip cache 2015-01-12 16:04:43 -08:00
nikhiljindal 6ddfb10728 Setting WebServicesUrl in swagger config, so that the api docs contain correct basepath 2015-01-12 13:48:39 -08:00
Clayton Coleman 22c99c98e2 Split RESTStorage into separate interfaces
Omit unimplemented interfaces from Swagger
2015-01-12 12:19:45 -05:00
nikhiljindal 7e909ed743 Changes to improve swagger ui.
- Separating out index, version and api handlers into independent web
  services. Moved the index handler to /welcome, version handler to
  /version and the api handler to /api,
2015-01-09 10:56:24 -08:00
Clayton Coleman 7fd887df61 Enable v1beta3 API via --runtime_config=api/v1beta3 flag
This exposes the proper v1beta3 API endpoint when the user specifies
the --runtime_config=api/v1beta3 argument to the apiserver. v1beta3
is still considered experimental and subject to change.

--runtime_config is a map of string keys and values, that can be
specified by providing

    --runtime_config=a=b,b=c,d,e

Only the key must be specified, the value can be omitted.

Enables v1beta3 in hack/local-up-cluster.sh and hack/test-cmd.sh
2015-01-08 13:01:24 -05:00
derekwaynecarr a56087cdf8 Remove client from attributes, remove admission control interface, fix-up error codes 2015-01-07 14:42:31 -05:00
derekwaynecarr 520ae3ef27 Implement basic admission control framework 2015-01-07 14:42:31 -05:00
nikhiljindal 1db30aeb51 Moving swagger-ui files from www/swagger-ui to third-party/swagger-ui
and adding LICENSE and README files
2015-01-05 16:27:33 -08:00
Daniel Smith 6916235513 Make locking simpler
add test for node existence cache behavior
2014-12-22 15:11:28 -08:00
Daniel Smith dc5383dcf8 add ttl as param to ip cache 2014-12-22 14:14:03 -08:00
Daniel Smith 545d87d554 Move clock to util 2014-12-22 14:14:03 -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
Brendan Burns ba25ae49d7 Merge pull request #3070 from nikhiljindal/setApiVersion
Adding skeleton swagger UI
2014-12-19 17:16:04 -08:00
nikhiljindal bf96e95899 ran gofmt 2014-12-19 16:16:54 -08:00
nikhiljindal f12f5ed34b 1. Adding swagger-ui/dist files.
2. Updating datafile.go to include it.
3. Updating master,go to use it.
2014-12-19 14:56:20 -08:00
Daniel Smith a63bd1bdfa Remove an unneeded trip over the network when getting/listing pods. 2014-12-18 17:47:59 -08:00
Deyuan Deng 3f84924095 Use constant for port number 2014-12-16 11:45:27 +08:00
bgrant0607 f621a05d74 Merge pull request #2945 from smarterclayton/support_optional_swagger
Make Swagger API support optional, so that consumers can define their own
2014-12-15 16:13:13 -08:00
Clayton Coleman cd4135666e Make Swagger API support optional, so that consumers can define their own
OpenShift would like to also enable swagger, but we need to register our
services as swagger services prior to the SwaggerAPI being started. I've
added a bool (default false) to master.Config to enable swagger, and split
the method in master out so that a downstream consumer can call it.
2014-12-15 15:29:55 -05: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
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
Daniel Smith 9c0fbf1f02 Merge pull request #2908 from brendandburns/kubelet
Add an api object for the kubelet, and a versioned endpoint.
2014-12-12 16:01:46 -08:00
Brendan Burns d4b9979382 Add an api object for the kubelet, and a versioned endpoint. 2014-12-12 15:26:28 -08:00
Eric Tune 029a9b6400 Remove whoami handler.
This was a temporary thing.  Not aware of anyone using it.
2014-12-11 21:31:06 -08:00
Brendan Burns 59b5546b28 Turn on node level validation, and make the validation set dynamic. 2014-12-10 22:02:45 -08: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 9030759df8 Add 'nodes' everywhere 'minions' can be used in api / cli 2014-12-10 12:08:18 -05:00
Clayton Coleman 2c27f7d332 Allow an empty service 2014-12-09 12:48:53 -05:00
Mike Danese 5bda95f9fe added healthz check to the proxy with configurable port 2014-11-23 09:07:19 -08: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 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
Jordan Liggitt c895331277 Make master take authenticator.Request interface instead of tokenfile 2014-11-19 15:07:51 -05:00
markturansky 8af4ccb111 v1beta3 Pod refactor 2014-11-18 09:25:42 -05:00
Brian Grant 7583e1a643 Automatic API generation by adopting go-restful 2014-11-14 16:49:19 +00:00
Clayton Coleman 21a6e96418 Merge pull request #2126 from brendandburns/validatez
Add etcd to the list of services to validate.
2014-11-10 14:53:41 -05:00
Eric Tune c068b56919 Return InsecureHandler from master.
Subsequent changes will make use of both
m.Handler and m.InsecureHandler for different ports.
2014-11-06 09:11:31 -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
Daniel Smith c163535563 Allow (delayed) apiserver starting when network interface isn't available immediately. 2014-11-05 12:07:33 -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
markturansky bd7643c033 refactor services to v1beta3 2014-11-04 14:23:53 -05:00
Eric Tune 1668c6f107 Authorization based on namespace, kind, readonly.
Also, pass Authorizer into master.Config.
2014-11-03 17:45:15 -08:00
Eric Tune 3045035512 Get user from request and put in authz attribs.
Added integration tests for user-based auth.
2014-11-03 16:38:56 -08:00
Eric Tune 795bc7f976 Require a KubeletClient in master.New().
Without this, tests which create a master
will panic with a nil pointer when the periodic
podCache update runs.

Deleted unused FakePodInfoGetter.
Added FakeKubeletClient.
Passed to master.New.
Required a KubeletClient in master.New.
2014-11-03 16:09:41 -08:00
Eric Tune 55c2d6bbbb Add basic Authorization.
Added basic interface for authorizer implementations.
Added default "authorize everything" and "authorize nothing
implementations.
Added authorization check immediately after authentication check.
Added an integration test of authorization at the HTTP level of
abstraction.
2014-10-31 12:04:33 -07:00
Deyuan Deng 019b7fc74c Separate minion controller from master. 2014-10-30 20:24:15 -04:00
Eric Tune 9713b58caa Allocate mux in master.New()
Callsites no longer allocate a mux.
Master now exposes method to install handlers
which use the master's auth code.  Not used
but forks (openshift) are expected to use these
methods.  These methods will later be a point
for additional plug-in functionality.
Integration tests now use the master-provided
handler which has auth, rather than using the mux,
which didn't.  Fix TestWhoAmI now that /_whoami
sits behind auth.
2014-10-29 14:31:07 -07:00
Daniel Smith 070c6c0440 Fix missing portalNets in tests once and for all by adding a default. 2014-10-29 12:27:35 -07:00
Daniel Smith a036ebc1be Switch models. No master election. 2014-10-29 11:38:45 -07: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
Daniel Smith dca7363459 Serve API version list, test with an integration test. 2014-10-28 17:35:56 -07:00
Eric Tune f7ebc7d0d5 Added /_whoami and integration test for auth(z|n)
Added new endpoint /_whoami for debugging authentication.
Added integration test which checks that a user is authenticated
using token authentication.
Rearranged initialization of authenticator to support preceeding.
2014-10-28 09:33:45 -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
Eric Tune 245585f364 Move handler setup: cmd/apiserver -> pkg/master
Moved CORS handler setup and authorizer setup.
Will allow for integration test of authorization.
2014-10-27 11:43:12 -07:00
Eric Tune 40a5ca034d Integration test on master, not just apiserver.
Moved code from cmd/apiserver to pkg/master.

test/integration/client_test made to use a master object,
instead of an apiserver.Handle.

Subsequent PRs will move more handler-installation into
pkg/master, with the goal that every http.Handler of a
standalone apiserver process can also be tested
in a "testing"-style go test.

In particular, a subsequent PR will test
authorization.
2014-10-27 09:14:58 -07: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
Haney Maxwell 3160500940 Refactor kubelet access and add SSL 2014-10-22 14:53:59 -07:00
Clayton Coleman bb77a5d15f Rename ID -> Name 2014-10-22 15:00:26 -04:00
bgrant0607 71c6f8ee5c Merge pull request #1875 from lavalamp/fix3
fix typo
2014-10-20 12:13:43 -07:00
Daniel Smith 82bbcee8d9 Move port definitions to their own package 2014-10-20 11:28:12 -07:00
Daniel Smith 082a9d8af9 fix typo 2014-10-20 10:28:38 -07: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
Tim Hockin e907011111 Core support for ip-per-service 2014-10-16 08:36:47 -07:00
Deyuan Deng 2bd88d4544 Remove OnceAndForever util, create a Run() method on MinionController. 2014-10-14 18:47:42 -04:00
Deyuan Deng ec46e94dc2 Create MinionController to sync minions from cloudprovider (pkg cloudprovider/controller). 2014-10-14 18:45:25 -04:00