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
Brian Grant
a4bf91c8c0
Merge pull request #5690 from satnam6502/failputnover
...
Give better error message for PUTs with no resource version
2015-03-27 07:12:56 -07:00
gmarek
5a11748018
Move Capacity from NodeSpec to NodeStatus
2015-03-26 15:28:48 +01:00
Satnam Singh
cd05c8b9bc
Give better error message for PUTs with no resource version
2015-03-25 15:52:48 -07:00
Rohit Jnagal
49ff04765b
Add validation for node creation.
2015-03-25 21:55:03 +00:00
Clayton Coleman
367284b63b
Merge pull request #5767 from kazegusuri/endpoints_storage
...
port endpoints to generic etcd
2015-03-25 11:32:01 -04:00
markturansky
f762b303ad
PersistentVolume & PersistentVolumeClaim API types
2015-03-25 10:09:25 -04:00
Wojciech Tyczynski
c8e89bc717
Merge pull request #5853 from fgrzadkowski/better_errors
...
Improve error message for invalid pod spec update
2015-03-25 14:31:13 +01:00
Masahiro Sano
410e11c305
port endpoints to generic etcd
2015-03-25 22:15:19 +09:00
Filip Grzadkowski
7085a0cb44
Merge pull request #5508 from fgrzadkowski/validate_ips
...
Validate Service.Spec.publicIPs to be a valid IP that is not a localhost
2015-03-25 12:11:29 +01:00
Abhi Shah
f1872d36cf
Merge pull request #5814 from vmarmol/net-host
...
Add HostNetworking container option to API.
2015-03-24 15:55:27 -07:00
Victor Marmol
2a0793c155
Add HostNetworking container option to API.
...
This allows a container to run within the same networking namespace as
the host. This will be locked down by default using a flag on the master
and nodes (similar to how privileged is handled today).
2015-03-24 14:40:28 -07:00
Tim Hockin
064b7dec42
Merge pull request #5807 from pmorie/secret_volume_ref
...
Change secret volume plugin reference to name
2015-03-24 14:18:35 -07:00
Paul Morie
e40ba109a1
Change SecretVolumeSource to use a secret name instead of ObjRef
2015-03-24 13:58:41 -04:00
Clayton Coleman
97560c409f
Merge pull request #5554 from derekwaynecarr/namespace_controller
...
Namespace Controller to support Namespace Termination
2015-03-24 12:59:00 -04:00
Filip Grzadkowski
b74b203da2
Improve error message for invalid pod spec update
2015-03-24 17:11:16 +01:00
derekwaynecarr
29c491ef2e
Namespace.Spec.Finalizer support
2015-03-24 10:36:06 -04:00
Filip Grzadkowski
6bc1e2ef40
Add validation error explanation for long annotations.
2015-03-24 11:01:26 +01:00
Filip Grzadkowski
24eb1a08f3
Validate Service.Spec.publicIPs to be a valid IP that is not a localhost
2015-03-24 10:48:46 +01: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
Dawn Chen
7a6490f572
Merge pull request #5729 from thockin/plural_endpoints_30_restart
...
Rename Service.ContainerPort to TargetPort in v1b3
2015-03-20 14:37:46 -07:00
Tim Hockin
4375376e9c
Rename Service.ContainerPort to TargetPort in v1b3
...
Fix all callers and examples. Part of multi-port service cleanup.
2015-03-20 13:50:06 -07:00
Abhishek Gupta
b0c23c1046
Headless Services: Adding option to specify None for PortalIP
2015-03-20 12:10:03 -07:00
Chris Alfonso
1a45e37d17
NFSMount storage plugin for kubelet.
...
* If you want to test this out when an actual NFS export a good place
to start is by running the NFS server in a container:
docker run -d --name nfs --privileged cpuguy83/nfs-server /tmp
More detail can be found here:
https://github.com/cpuguy83/docker-nfs-server
2015-03-19 13:37:38 -04:00
Filip Grzadkowski
f89f91b7bd
Validate that there is at least one container in the pod
2015-03-19 12:31:53 +01:00
Victor Marmol
9586b39bb7
Merge pull request #5555 from fgrzadkowski/sync_pod_status
...
Periodically update pod status from kubelet.
2015-03-18 10:14:07 -07:00
Filip Grzadkowski
1a352b74ba
Periodically update pod status from kubelet.
2015-03-18 12:11:39 +01:00
gmarek
a3b137ce8e
Cleanup of validation.go
2015-03-18 08:59:35 +01:00
Victor Marmol
668e2dbcd8
Merge pull request #5502 from wojtek-t/completely_remove_bound_pods
...
Remove BoundPod type from source code
2015-03-17 08:09:50 -07:00
Filip Grzadkowski
18b728ff44
Revert "Periodically update pod status from kubelet."
2015-03-17 13:51:45 +01:00
Wojciech Tyczynski
e6d188fca8
Remove BoundPod structure
2015-03-17 10:27:41 +01:00
Filip Grzadkowski
336525a27d
Periodically update pod status from kubelet.
2015-03-16 23:03:03 +01:00
Jeff Lowdermilk
e37fd2a84d
Merge pull request #5477 from dchen1107/clean
...
Convert RestartPolicy to string for v1beta3.
2015-03-16 10:23:52 -07:00
derekwaynecarr
2d13dfaf13
Improvements to namespace registry to align with pod model
2015-03-16 10:16:28 -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
derekwaynecarr
799e3fa9cc
Eliminate ResourceQuotaUsage in favor of ResourceQuota status
2015-03-13 16:52:09 -04:00
Ravi Sankar Penta
f6ecec5880
Allow admin user to explicitly unschedule the node
...
Setting Unschedulable on the node will not touch any existing pods
on the node but will block scheduling of new pods on the node.
2015-03-12 14:27:27 -07:00
Clayton Coleman
d016f478e0
Ignore changes to creation timestamp from clients on update
...
CreationTimestamp is not an authoritative field (like UID) so mismatches
can be safely ignored.
2015-03-09 12:04:35 -04:00
gmarek
bb8a4f5ed3
apply comments
2015-03-06 08:23:22 +01:00
gmarek
726a5af075
Loosen label and annotation validation and related tests
2015-03-06 08:23:22 +01:00
Brendan Burns
fb90b56bf6
Embed VolumeSource in v1beta3 and internal.
2015-03-04 02:25:40 -08:00
Brian Grant
fca9fd68c7
Merge pull request #4779 from smarterclayton/status_endpoints
...
Minimal status mutation change
2015-03-03 11:00:02 -08:00
Zach Loafman
4937008ae0
Revert "TCPSocket could not be used as it was not checked in validation"
2015-03-02 11:14:27 -08:00
Brendan Burns
c7cbc5c991
Merge pull request #4883 from smarterclayton/fix_tcpsocket_validation
...
TCPSocket could not be used as it was not checked in validation
2015-03-02 10:53:48 -08:00
Brendan Burns
fe973461f5
Merge pull request #4916 from thockin/plural_21_endpoints
...
Rename type Port to ContainerPort
2015-03-02 10:53:32 -08:00
Tim Hockin
532c39c336
Add defaults for HTTGetAction.Path & test actions
...
The comment says optional - this makes it optional. Test handler actions.
2015-03-01 21:23:18 -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
Clayton Coleman
d3a5a48d00
TCPSocket could not be used as it was not checked in validation
...
Attempting to use it gave the error "must register one handler".
Added more tests for it.
2015-03-01 22:31:57 -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
eed36455a7
Merge pull request #4653 from thockin/secret_fixups
...
Secrets fixups
2015-02-23 13:49:19 -08:00
Tim Hockin
607b736a3f
Rename volume source types to be consistent.
2015-02-23 12:39:57 -08:00
Tim Hockin
8bdfc352ce
minor fixups as I review secrets
2015-02-23 12:39:47 -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
Paul Morie
a42ff94c8f
Add secret volume plugin and e2e test
2015-02-18 16:27:44 -05:00
Paul Morie
fb001ada21
Secret API resource
2015-02-18 11:54:56 -05:00
Mike Danese
f7df9b9d37
add validation for api.Probe
2015-02-16 21:56:03 -08:00
Clayton Coleman
abe8adc2e2
Expose new REST strategy methods for Pods
2015-02-13 12:12:50 -05:00
derekwaynecarr
0bd0e12bbc
Add support for Namespace as Kind
...
Add example for using namespaces
2015-02-10 09:50:50 -05:00
Marek Grabowski
72a066a992
Add more information to Validator error messages.
2015-02-09 18:07:09 +01:00
Brendan Burns
31ce2a9411
Adjust replication controller validation to be more flexible about
...
read/write volumes.
Update docs to reflect reality as it is implemented.
2015-02-06 14:58:21 -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
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
Brian Grant
6e415f760b
Merge pull request #4017 from smarterclayton/relax_annotation_validations
...
Slightly relax annotation validation
2015-02-02 11:42:38 -08:00
Clayton Coleman
b30173658f
Slightly relax annotation validation
...
The more aggressive validation on annotations broke openshift (and
backwards compat for our data). This change relaxes to allow mixed
case so we can continue working in the short term, try to see if we
can agree on relaxation, and if we can't, apply the stronger
validation here.
2015-02-01 19:03:04 -05:00
Vishnu Kannan
5e36f63f8b
Adding ResourceRequirementSpec to v1beta1, v1beta2, and v1beta3 APIs. The old resource
...
quantities 'CPU' and 'Memory' will be preserved until support for v1beta1 and v1beta2 APIs are
dropped.
Improved resource validation in the process.
2015-02-01 02:19:55 +00:00
Deyuan Deng
c793c4f0ab
Sync node status from node controller to master.
2015-01-29 23:17:15 -05: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
derekwaynecarr
829fa69527
Introduce a ResourceQuota object
2015-01-28 15:03:19 -05: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
4faf27e63d
Validate limit.Min and limit.Max resource names using ValidateResourceName
2015-01-27 16:41:28 -05:00
derekwaynecarr
091cbe5fa2
Add a limit range resource
2015-01-27 16:41:27 -05:00
Brendan Burns
99583fc8c5
Fix a bug in validation that was leftover from the previous way of externalizing services.
2015-01-26 13:19:27 -08:00
markturansky
131ce993c4
Added validation for annotations
2015-01-26 09:32:09 -05:00
Vishnu Kannan
c32295a180
Adding a 'Typename' strongtype for representing all compute resource types.
2015-01-23 22:17:56 +00:00
Tim Hockin
c729f345f0
Merge pull request #3660 from dchen1107/image
...
Using switch in validatePullPolicyWithDefault
2015-01-21 12:54:12 -08:00
Tim Hockin
819803b79f
Make VolumeSource not be a pointer
...
There's no reason for it to be a pointer.
2015-01-20 17:54:04 -08:00
Dawn Chen
cf54dcb689
Using switch in validatePullPolicyWithDefault
2015-01-20 17:41:09 -08:00
Brian Grant
dd45246150
Merge pull request #3587 from dchen1107/image
...
Clean up Kubernetes PullPolicy
2015-01-20 17:18:26 -08:00
Tim Hockin
60ec08db93
Rename HostDir to HostPath in v1beta3
2015-01-20 15:56:44 -08:00
Dawn Chen
aec4594a8d
Introduce validatePullPolicyWithDefault to validation.
2015-01-20 11:54:22 -08:00
Clayton Coleman
48146e01cd
Expose ValidateLabels in validation.go for reuse by other components
...
Label validation is common to anyone building kube resources.
2015-01-19 22:33:52 -05:00
Tim Hockin
2ea27c3df3
Fix wrong field check in validation
2015-01-12 14:27:34 -08:00
Daniel Smith
0d628b3bff
Make semantic deep equal public feature
...
* Use semantic deep equal when validating
* More test cases for deep equal
2015-01-07 15:21:34 -08:00
Tim Hockin
6e8f5fea8e
Fix validation for BoundPods to allow defaults
...
Thunking to Manifest makes a copy of the input, which is not useful for
defaulting.
2015-01-06 13:02:41 -08:00
Tim Hockin
ca27fb259c
Don't use pointers for session affinity
2014-12-29 14:43:17 -08:00
Tim Hockin
652479a3b1
Add kubelet DNS flags & api disable for DNS
...
This adds --cluster_dns and --cluster_domain flags to kubelet. If
non-empty, kubelet will set docker --dns and --dns-search flags based on
these. It uses the cluster DNS and appends the hosts's DNS servers.
Likewise for DNS search domains.
This also adds API support to bypass cluster DNS entirely, needed to
bootstrap DNS.
2014-12-29 09:18:12 -08:00
Brendan Burns
9884142061
Clear node status before the validation check.
2014-12-22 11:57:31 -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
Brendan Burns
cf0b41535f
Make it easier to update nodes, make it possible to update capacity.
2014-12-17 21:50:26 -08:00
Mike Foley
569ce87f0e
Updated types API to include session affinity. …
...
- changed CLIENT-IP and NONE to be ClientIP and None respectively
- updated conversions to support translating between api versions.
- updated validations to validate session affinity type if specified.
2014-12-17 15:59:20 -05:00
Clayton Coleman
dadb8431c4
Remove internal PodState in favor of internal PodStatus object
2014-12-15 16:50:05 -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
Tim Hockin
5ecce5d60c
Add util to validate namespaced names
2014-12-08 15:31:43 -08:00
Tim Hockin
89875ef09d
Loosen DNS 952 for labels
2014-12-01 12:30:43 -08:00
Tim Hockin
c857dc1196
Add namespacing for label keys
2014-12-01 12:30:43 -08:00
Tim Hockin
d5a6a54391
clean up error message on labels validation errs
2014-12-01 12:30:43 -08:00