Commit Graph

2574 Commits

Author SHA1 Message Date
Maciej Kwiek
9e1c886a80 Validate None Service ClusterIP against LB type
If the Service is a Load Balancer, it should not have None Cluster IP.
If it does, Service validation fails.
2016-09-29 10:17:29 +02:00
Doug Davis
9d5bac6330 Change minion to node
Contination of #1111

I tried to keep this PR down to just a simple search-n-replace to keep
things simple.  I may have gone too far in some spots but its easy to
roll those back if needed.

I avoided renaming `contrib/mesos/pkg/minion` because there's already
a `contrib/mesos/pkg/node` dir and fixing that will require a bit of work
due to a circular import chain that pops up. So I'm saving that for a
follow-on PR.

I rolled back some of this from a previous commit because it just got
to big/messy. Will follow up with additional PRs

Signed-off-by: Doug Davis <dug@us.ibm.com>
2016-09-28 10:53:30 -07:00
Michail Kargakis
d8dc2aac07 extensions: generated code for minReadySeconds/availableReplicas 2016-09-28 11:25:13 +02:00
Michail Kargakis
1df4ee3a9d Custom conversion reactions to minReadySeconds/availableReplicas 2016-09-28 11:06:40 +02:00
Michail Kargakis
f7c232b8c6 extensions: add minReadySeconds/availableReplicas to replica sets 2016-09-28 11:06:40 +02:00
Kubernetes Submit Queue
df064881d2 Merge pull request #31005 from simonswine/feature-flocker-dyn-provisioning
Automatic merge from submit-queue

Dynamic provisioning for flocker volume plugin

Refactor flocker volume plugin
* [x] Support provisioning beta (#29006)
* [x] Support deletion
* [x] Use bind mounts instead of /flocker in containers

* [x] support ownership management or SELinux relabeling.
* [x] adds volume specification via datasetUUID (this is guranted to be unique)

I based my refactor work to replicate pretty much GCE-PD behaviour 

**Related issues**: #29006 #26908

@jsafrane @mattbates @wallrj @wallnerryan
2016-09-28 01:46:43 -07:00
Kubernetes Submit Queue
2d881ca1e9 Merge pull request #33536 from hongchaodeng/revert-33101-etcd_fix
Automatic merge from submit-queue

Revert "Work around the etcd watch issue"

Reverts kubernetes/kubernetes#33101

Since #33393 is merged, the bug should have been fixed.
2016-09-27 23:36:16 -07:00
Justin Santa Barbara
54195d590f Use strongly-typed types.NodeName for a node name
We had another bug where we confused the hostname with the NodeName.

To avoid this happening again, and to make the code more
self-documenting, we use types.NodeName (a typedef alias for string)
whenever we are referring to the Node.Name.

A tedious but mechanical commit therefore, to change all uses of the
node name to use types.NodeName

Also clean up some of the (many) places where the NodeName is referred
to as a hostname (not true on AWS), or an instanceID (not true on GCE),
etc.
2016-09-27 10:47:31 -04:00
Christian Simon
1c11047ffb Adds datasetUUID for referencing flocker datasets
* flocker datasets should be attached using an unique identifier. This
  is not the case for the name metadata used by datasetName
* allow only one of datasetUUID / datasetName specified
2016-09-27 13:19:22 +00:00
Hongchao Deng
078f2d6be9 Revert "Work around the etcd watch issue" 2016-09-26 23:54:10 -07:00
Tim Hockin
38d7c4b271 Conversion: log opted-out fields 2016-09-26 20:07:54 -07:00
Kubernetes Submit Queue
071927a59d Merge pull request #32549 from smarterclayton/gc_non_kube_legacy
Automatic merge from submit-queue

Allow garbage collection to work against different API prefixes

The GC needs to build clients based only on Resource or Kind. Hoist the
restmapper out of the controller and the clientpool, support a new
ClientForGroupVersionKind and ClientForGroupVersionResource, and use the
appropriate one in both places.

Allows OpenShift to use the GC
2016-09-23 14:06:35 -07:00
Kubernetes Submit Queue
09e0e025e8 Merge pull request #33346 from freehan/fix-lbsrcrange-update
Automatic merge from submit-queue

disallow user to update loadbalancerSourceRanges

buy myself some time to fix the root cause of #33033
2016-09-23 12:05:04 -07:00
Kubernetes Submit Queue
5f815354e0 Merge pull request #33182 from deads2k/api-13-collapse-script-references
Automatic merge from submit-queue

unify available api group versions in our scripts

There are currently many parallel lists of available group versions with slightly different syntaxes in each one.  This collapses them into a single list for us to maintain.  

Also caught spots where the lists didn't match before.

@sttts @ncdc
2016-09-23 10:06:10 -07:00
Dr. Stefan Schimanski
87356c0623 Cleanup handler chain 2016-09-23 12:03:58 +02:00
Kubernetes Submit Queue
67219f4041 Merge pull request #32867 from kargakis/move-events-sort
Automatic merge from submit-queue

kubectl: move events sorting interface to the api for general use

Split from https://github.com/kubernetes/kubernetes/pull/19343

@kubernetes/kubectl
2016-09-22 20:39:29 -07:00
Minhan Xia
ba45a3f74e disallow user to update loadbalancerSourceRanges 2016-09-22 19:04:02 -07:00
Clayton Coleman
97c35fcc67
Allow garbage collection to work against different API prefixes
The GC needs to build clients based only on Resource or Kind. Hoist the
restmapper out of the controller and the clientpool, support a new
ClientForGroupVersionKind and ClientForGroupVersionResource, and use the
appropriate one in both places.
2016-09-22 15:00:58 -04:00
deads2k
7a8fa18116 update generation scripts to share API group version constants 2016-09-22 13:30:41 -04:00
Kubernetes Submit Queue
a8053c7c59 Merge pull request #33238 from mbohlool/openapi
Automatic merge from submit-queue

Move openapi common code to genericapiserver/openapi/common

a follow up to #32622

Reference: #13414
2016-09-22 10:20:48 -07:00
mbohlool
c25ecc43ab Move openapi common code to genericapiserver/openapi/common 2016-09-21 17:01:54 -07:00
Kubernetes Submit Queue
aa5372c5ef Merge pull request #33055 from dchen1107/test1
Automatic merge from submit-queue

Fix backward compatibility issue caused by promoting initcontainers f…

#31026 moves init-container feature from alpha to beta, but only took care the backward compatibility for pod specification, not deal with status. For status, it simply moved from `pods.beta.kubernetes.io/init-container-statuses` to
`pods.beta.kubernetes.io/init-container-statuses` instead of introducing one more pods.beta.kubernetes.io/init-container-statuses. This breaks when the cluster is running with 1.4, but the user is still running with kubectl 1.3.x. 

Fixed #32711
2016-09-20 17:09:20 -07:00
Hongchao Deng
28c489654b work around the etcd watch issue 2016-09-20 09:26:47 -07:00
Kubernetes Submit Queue
8d0518d4d2 Merge pull request #32897 from deads2k/api-07-remove-dead-mapper
Automatic merge from submit-queue

remove dead mapper

Removing a write-only field I found looking at the registration code.
2016-09-19 23:12:06 -07:00
Dawn Chen
4c4623e5be Fix backward compatibility issue caused by promoting initcontainers from alpha to beta. 2016-09-19 16:33:25 -07:00
deads2k
4aa61ddcb2 remove dead mapper 2016-09-19 09:57:19 -04:00
Michail Kargakis
b87e8c79ca kubectl: move events sorting interface to the api for general use 2016-09-18 19:25:42 +02:00
Brandon Philips
080b3d0a8c api: types: document NodeSpec ID fields
Document MachineID as the preferred field from the discussion here:
https://groups.google.com/d/msg/kubernetes-sig-node/_3mXXB1ohZs/EuYtCzHvBgAJ
2016-09-17 16:37:29 -07:00
Kubernetes Submit Queue
a39cee990c Merge pull request #32751 from caesarxuchao/specific-error-rolling-update
Automatic merge from submit-queue

Specific error message on failed rolling update issued by older kubectl against 1.4 master

Fix #32706

`kubernetes-e2e-gke-1.4-1.3-kubectl-skew` (1.3 kubectl and 1.4 master) test suite failed with:
```
k8s.io] Kubectl client [k8s.io] Kubectl rolling-update should support rolling-update to same image [Conformance]
...
Error from server: object is being deleted: replicationcontrollers "e2e-test-nginx-rc" already exists error: exit status 1 not to have occurred
```

It's because the old RC had an orphanFinalizer, so it is not deleted from the key-value store immediately. In turn, the creation of the new RC of the same name failed. 

In this failure, the RC and pods are updated, it's just that the RC is of different name, i.e., original name + a hash generated based on podTemplate. The error is confusing to user, but not that bad. So this PR just prints a warning message to instruct users how to work around.

1.4 kubectl rolling-update uses different logic so it's working.

@lavalamp @gmarek @janetkuo @pwittrock 

cc @liggitt for the ctx changes.
2016-09-15 21:41:56 -07:00
Chao Xu
c4ea205aeb print instruction in case of failed kubectl 1.3 rolling-update against 1.4 cluster 2016-09-15 17:20:39 -07:00
Kubernetes Submit Queue
5fe3bd449f Merge pull request #30565 from lavalamp/improve-registered
Automatic merge from submit-queue

Centralize install code

Trying to figure out a way to do this that makes the changes as painless to roll out as possible. This is going to be a multi-step process...
2016-09-15 16:03:39 -07:00
deads2k
771915c6c4 make shortcut expanding restmapper handle all 2016-09-15 11:03:51 -04:00
deads2k
4359c79f53 add FirstHitRESTMapper for adding thirdparty resources 2016-09-15 10:26:39 -04:00
deads2k
500cddc5c3 use discovery restmapper for kubectl 2016-09-15 10:26:39 -04:00
Jordan Liggitt
52c3081f6f
Revert "Revert "Allow webhook authenticator to use TokenReviewsInterface""
This reverts commit 0a02c8275d.
2016-09-13 16:23:17 -04:00
Joe Finney
0a02c8275d Revert "Allow webhook authenticator to use TokenReviewsInterface"
This reverts commit e9914f2c4a.
2016-09-13 11:48:43 -07:00
Kubernetes Submit Queue
7ba9660487 Merge pull request #32547 from liggitt/webhook-refactor
Automatic merge from submit-queue

Allow webhook authenticator to use TokenReviewsInterface

Refactors the authentication webhook to be able to be fed a kubeconfig file or a TokenReviewsInterface 

Fixes a bug with webhooks not retrying on 429/500 errors

Related to https://github.com/kubernetes/kubernetes/pull/32518#discussion_r78450170
2016-09-13 10:28:34 -07:00
Jordan Liggitt
e9914f2c4a
Allow webhook authenticator to use TokenReviewsInterface 2016-09-13 00:42:02 -04:00
mbohlool
8153267ea8 Update generated proto and swagger docs 2016-09-12 18:47:03 -07:00
mbohlool
702f55e61d Add +k8s:openapi-gen tag to API types 2016-09-12 18:47:03 -07:00
mbohlool
6ba271b9ae Customize OpenAPI definition types
customize intstr, unversioned.time, and quantity OpenAPI definitions.
2016-09-12 18:47:03 -07:00
Kubernetes Submit Queue
ae839ffc44 Merge pull request #31543 from deads2k/rbac-06-change-role-ref
Automatic merge from submit-queue

Change rbac roleref to reflect the information we want

@liggitt @ericchiang This is a version of https://github.com/kubernetes/kubernetes/pull/31359 which updates the `RoleRef` to be (I think) the type that we want, with a group, resource, and name.

This is **not** backwards compatible with any existing data.  I'm ok with doing this since rbac was considered alpha, but its something to consider.

If we want this instead, I'll close the previous pull (or update it with this content).
2016-09-12 02:01:49 -07:00
Kubernetes Submit Queue
dd9d5aa27d Merge pull request #32378 from kevin-wangzefeng/update-taints-e2e
Automatic merge from submit-queue

update taints e2e, restrict taints operation with key, effect

Since taints are now unique by key, effect on a node, this PR is to restrict existing taints adding/removing/updating operations in taints e2e.
Also fixes https://github.com/kubernetes/kubernetes/issues/31066#issuecomment-242870101
Related prior Issue/PR #29362 and #30590
2016-09-10 13:20:51 -07:00
Kubernetes Submit Queue
0764aa0b68 Merge pull request #32140 from deads2k/restmapper-02-match-partial-groups
Automatic merge from submit-queue

add group prefix matching for kubectl usage

Adds prefix matching for groups so that `kubectl get storageclass.storage` matches `storageclass.storage.k8s.io`.

@kubernetes/kubectl
2016-09-09 23:43:53 -07:00
Chao Xu
c5e1decc13 add validation rule to prevent adding finalizers if the object is being deleted 2016-09-09 15:29:08 -07:00
deads2k
8c788233e7 change rbac roleref type 2016-09-09 09:55:51 -04:00
Kevin
fff139ce32 update taints e2e, respect that taint is unique by key, effect 2016-09-09 19:15:11 +08:00
Kubernetes Submit Queue
9f58a867e1 Merge pull request #31522 from krousey/path_validation
Automatic merge from submit-queue

Split path validation into a separate library

This PR splits path segment validation into it's own package. This cuts off one of the restclient's dependency paths to some docker packages, and completely eliminates its dependency on go-restful swagger validation.


cc @kubernetes/sig-api-machinery
2016-09-07 10:14:32 -07:00
deads2k
f9b498e341 add group prefix matching for kubectl usage 2016-09-07 10:32:39 -04:00
deads2k
cd5b6cc491 move StorageClass to its own group 2016-09-06 08:41:17 -04:00
Kubernetes Submit Queue
606e8fb34a Merge pull request #32047 from guangxuli/kuber_learn
Automatic merge from submit-queue

const string testQuantityFlag no longer use
2016-09-06 02:37:16 -07:00
Ivan Shvedunov
1c9ee74987 Allow IP addresses to be used as node names
Fixes #32050
2016-09-05 02:37:00 +03:00
guangxuli
b7a5fc9942 const string testQuantityFlag no longer use 2016-09-04 20:37:32 +08:00
Kubernetes Submit Queue
64c2beae09 Merge pull request #31834 from wongma7/pvc-genclient
Automatic merge from submit-queue

Generate versioned client for pvc

I noticed while trying to use client-go that there is no way to get PVC with versioned clientset. I don't know why it is excluded, I cannot find any discussion about this, so I am creating this assuming it is just an oversight...
2016-09-01 15:01:13 -07:00
Scott Creeley
bab6b5a66e Add unit test for bad ReclaimPolicy and valid ReclaimPolicy in /pkg/api/validation_test.go 2016-09-01 15:12:13 -04:00
Kubernetes Submit Queue
f673bc8840 Merge pull request #31311 from girishkalele/nodename_validation
Automatic merge from submit-queue

Enforce EndpointAddress.NodeName validation

Fixes https://github.com/kubernetes/kubernetes/issues/30646 - disallows user setting upon create or modifying during update.
2016-09-01 12:09:12 -07:00
Kubernetes Submit Queue
2a28917e0a Merge pull request #31756 from lavalamp/logmore
Automatic merge from submit-queue

Log useful information on 500's; include error message in error (!!)

Diagnose #31728
2016-08-31 20:31:45 -07:00
Matthew Wong
934fc002bc Generate versioned client for pvc 2016-08-31 18:57:56 -04:00
Daniel Smith
1a23f5a79f Log useful information on 500's
* include error message in error (!!)
* add test verifying error message is correct for service ip allocation
2016-08-31 13:46:40 -07:00
Girish Kalele
db95798b39 Enforce EndpointAddress.NodeName validation + added unit tests 2016-08-30 13:40:19 -07:00
Jedrzej Nowak
a6c0e23fd2 Fix various typos in pkg/api 2016-08-29 11:31:16 +02:00
Kubernetes Submit Queue
cefc4c3027 Merge pull request #31473 from timstclair/aa-gate
Automatic merge from submit-queue

Add AppArmor feature gate

Add option to disable AppArmor via a feature gate. This PR treats AppArmor as Beta, and thus depends on https://github.com/kubernetes/kubernetes/pull/31471 (I will remove `do-not-merge` once that merges).

Note that disabling AppArmor means that pods with AppArmor annotations will be rejected in validation. It does not mean that the components act as though AppArmor was never implemented. This is by design, because we want to make it difficult to accidentally run a Pod with an AppArmor annotation without AppArmor protection.

/cc @dchen1107
2016-08-26 21:04:42 -07:00
Kubernetes Submit Queue
8e93fec7fa Merge pull request #31146 from pmorie/recycle-hostpath-slash
Automatic merge from submit-queue

Add validation preventing recycle of / in a hostPath PV

Adds a validation that prevents a user from recycling `/` when it is used in a hostPath PV

cc @kubernetes/sig-storage
2016-08-26 18:09:32 -07:00
Kubernetes Submit Queue
4dc5d44879 Merge pull request #30304 from screeley44/k8-validate-pv
Automatic merge from submit-queue

add validation for PV spec to ensure correct values are used for ReclaimPolicy on initial create

k8 currently allows invalid values for ReclaimPolicy (i.e. "scotto") - this allows the PV to be created and even bound, however, when the pvc or pod is deleted and the recycler is triggered, an error is thrown

```
Events:
  FirstSeen	LastSeen	Count	From				SubobjectPath	Type		Reason				Message
  ---------	--------	-----	----				-------------	--------	------				-------
  36s		36s		1	{persistentvolume-controller }			Warning		VolumeUnknownReclaimPolicy	Volume has unrecognized PersistentVolumeReclaimPolicy
```

New behavior will not allow the user to create the PV:

```
[root@k8dev nfs]# kubectl create -f nfs-pv-bad.yaml 
The PersistentVolume "pv-gce" is invalid: spec.persistentVolumeReclaimPolicy: Unsupported value: "scotto": supported values: Delete, Recycle, Retain
```
2016-08-26 16:24:25 -07:00
Kris
e87edf9bd5 Split path validation into a separate library 2016-08-26 08:05:20 -07:00
Tim St. Clair
9bde6f0770
Add AppArmor feature gate 2016-08-25 17:40:18 -07:00
Dr. Stefan Schimanski
03d7e33034 Run hack/update-all.sh 2016-08-25 13:22:01 +02:00
Dominika Hodovska
bea189e9c9 Add sysctl api, validation & Docker support 2016-08-25 13:22:01 +02:00
Scott Creeley
9e078d7393 add validation for PV spec to ensure correct values are used for ReclaimPolicy 2016-08-24 12:18:22 -04:00
Kubernetes Submit Queue
3544f8a717 Merge pull request #29836 from rootfs/azuredd
Automatic merge from submit-queue

support Azure data disk volume

This is a WIP of supporting azure data disk volume. Will add test and dynamic provisioning support once #29006 is merged

replace #25915
fix #23259

@kubernetes/sig-storage 
@colemickens @brendandburns
2016-08-24 02:49:54 -07:00
Girish Kalele
b82c028f77 GCE Cloud provider changes for ESIPP
Add feature gate (ExternalTrafficLocalOnly) for alpha feature
2016-08-23 16:16:39 -07:00
Daniel Smith
266207570a Add warning comment 2016-08-23 15:34:26 -07:00
Kubernetes Submit Queue
f297ea966e Merge pull request #30838 from caesarxuchao/per-resource-orphan-behavior
Automatic merge from submit-queue

[GarbageCollector] Allow per-resource default garbage collection behavior

What's the bug:
When deleting an RC with `deleteOptions.OrphanDependents==nil`, garbage collector is supposed to treat it as `deleteOptions.OrphanDependents==true", and orphan the pods created by it. But the apiserver is not doing that.

What's in the pr:
Allow each resource to specify the default garbage collection behavior in the registry. For example, RC registry's default GC behavior is Orphan, and Pod registry's default GC behavior is CascadingDeletion.
2016-08-23 08:46:32 -07:00
Huamin Chen
dea4b0226d support Azure data disk volume
Signed-off-by: Huamin Chen <hchen@redhat.com>
2016-08-23 13:23:07 +00:00
jianhuiz
494129b089 add generated files 2016-08-22 23:00:23 -07:00
jianhuiz
858e515f85 ignore clusterName on create and update 2016-08-22 21:09:57 -07:00
jianhuiz
7be20b0dac add ClusterName field to ObjectMeta 2016-08-22 21:09:57 -07:00
Paul Morie
d22ffb0402 Add validation preventing recycle of / in a hostPath PV 2016-08-22 23:20:20 -04:00
Kubernetes Submit Queue
b569a8daa9 Merge pull request #31053 from justinsb/dont_close_over_range_loops
Automatic merge from submit-queue

Avoid closing over range variables
2016-08-22 17:40:25 -07:00
Chao Xu
67b7c7290a Allow per-resource default garbage collection behavior 2016-08-22 11:37:04 -07:00
Kubernetes Submit Queue
5b5a4145da Merge pull request #30821 from ardnaxelarak/21076_change_isEmpty_to_Empty
Automatic merge from submit-queue

Rename IsEmpty to Empty

addresses #21076
2016-08-22 00:54:28 -07:00
Tim St. Clair
839034b46b
Validate AppArmor annotations in the API server 2016-08-21 20:59:11 -07:00
Kubernetes Submit Queue
5b6e1c37c6 Merge pull request #29481 from kargakis/available-replicas-on-replica-sets
Automatic merge from submit-queue

Add readyReplicas to replica sets

@bgrant0607 for the api changes

@bprashanth for the controllers changes

@deads2k fyi
2016-08-21 19:44:50 -07:00
Michail Kargakis
46291d51df api: generated code for readyReplicas 2016-08-21 15:47:23 +02:00
Michail Kargakis
ab3bc03a4f api: add readyReplicas in RC/RS 2016-08-21 14:49:45 +02:00
Kubernetes Submit Queue
e9bd805888 Merge pull request #31026 from erictune/betainit
Automatic merge from submit-queue

Move init-container feature from alpha to beta.

```release-note
Moved init-container feature from alpha to beta.

In 1.3, an init container is specified with this annotation key
on the pod or pod template: `pods.alpha.kubernetes.io/init-containers`.

In 1.4, either that key or this key: pods.beta.kubernetes.io/init-containers`,
can be used.

When you GET an object, you will see both annotation keys with the same values.

You can safely roll back from 1.4 to 1.3, and things with init-containers
will still work (pods, deployments, etc).

If you are running 1.3, only use the alpha annotation, or it may be lost when
rolling forward.

The status has moved from annotation key
`pods.beta.kubernetes.io/init-container-statuses` to
`pods.beta.kubernetes.io/init-container-statuses`.
Any code that inspects this annotation should be changed to use the new key.

State of Initialization will continue to be reported in both pods.alpha.kubernetes.io/initialized
and in `podStatus.conditions.{status: "True", type: Initialized}`
```

Mini-design for this change:

Goals:
1. A user can create an object with the beta annotation
  on 1.4, and it works.  The fact that the annotation has beta
  in it communicates to the user that the feature is beta,
  and so the user should have confidence in using it.  Preferably,
  when the user gets the annotation back, he see the beta
  annotation.
1) If someone had an existing alpha object in their apiserver,
  such as a RS with a pod template with an init-containers
  annotation on it, it should continue to work (init containers
  run) when stack upgraded to 1.4.
2) If someone is using a chart or blog post that has alpha
  annotation on it and they create it on a 1.4 cluster, it should
  work.
3) If someone had something with an init container in 1.4
  and they roll back stack to 1.3, it should not silently stop
  working (init containers don't run anymore).

To meet all these, we mirror an absent beta label from the alpha
key and vice versa.  If they are out of sync, we use the alpha
one. We do this in conversion since there was already logic there.

In 1.3 code, all annotations are preserved across a round trip
(v1 -> api -> v1), and the alpha annotation turns into the internal
field that kubelet uses.

In 1.4 code, the alpha annotation is always preserved across
a round trip, and a beta annotation is always set equal to
the alpha one, after a round trip.

Currently, the kubelet always sees the object after a round trip
when it GETs it.  But, we don't want to rely on that behavior,
since it will break when fastpath is implemented.

So, we rely on this:
all objects either are created with an alpha annotation (1.3 or 1.4
code) or are created with a beta annotation under 1.4.  In the later
case, they are round tripped at creation time, and so get both
annotations.  So all subsequent GETs see both labels.
2016-08-21 05:04:11 -07:00
Clayton Coleman
abded5c6c5
generated: Docs 2016-08-20 15:56:53 -04:00
Clayton Coleman
e1ebde9f92
Add spec.nodeName and spec.serviceAccountName to downward env var
The serviceAccountName is occasionally useful for clients running on
Kube that need to know who they are when talking to other components.

The nodeName is useful for PetSet or DaemonSet pods that need to make
calls back to the API to fetch info about their node.

Both fields are immutable, and cannot easily be retrieved in another
way.
2016-08-20 15:50:36 -04:00
Kubernetes Submit Queue
0abda6bd74 Merge pull request #30533 from liggitt/event-validation
Automatic merge from submit-queue

Validate involvedObject.Namespace matches event.Namespace

Fixes https://github.com/kubernetes/kubernetes/issues/16036
2016-08-20 12:19:12 -07:00
Kubernetes Submit Queue
b18b56d5b3 Merge pull request #30658 from hongchaodeng/r2
Automatic merge from submit-queue

Make labels, fields expose selectable requirements

What?
This is to change the labels/fields Selector interface and make them expose selectable requirements. We reuse labels.Requirement struct for label selector and add fields.Requirement for field selector.

Why?
In order to index labels/fields, we need them to tell us three things: index key (a field or a label), operator (greater, less, or equal), and value (string, int, etc.). By getting selectable requirements, we are able to pass them down and use them for indexing in storage layer.
2016-08-20 11:36:35 -07:00
Kubernetes Submit Queue
e9947d9ad7 Merge pull request #30813 from bprashanth/kubectl_petset
Automatic merge from submit-queue

Basic scaler/reaper for petset

Currently scaling or upgrading a petset is more complicated than it should be. Would be nice if this made code freeze on friday. I'm planning on a follow up change with generation number and e2es post freeze.
2016-08-20 10:51:07 -07:00
Hongchao Deng
1871a22039 make labels, fields expose selectable requirements 2016-08-20 10:10:51 -07:00
Kubernetes Submit Queue
5caf74c517 Merge pull request #30529 from hongchaodeng/r1
Automatic merge from submit-queue

change all PredicateFunc to use SelectionPredicate

What?
- This PR changes all PredicateFunc in registry to return SelectionPredicate instead of Matcher interface.

Why?
- We want to pass SelectionPredicate to storage layer. Matcher interface did not expose enough information for indexing.
2016-08-20 00:24:40 -07:00
Justin Santa Barbara
3aa4f50aba Avoid closing over range variables
The consequence is only a misleading error message, but it is easy to
avoid.
2016-08-20 01:19:53 -04:00
Kara Alexandra
d12a66a422 Rename IsEmpty to Empty
Signed-off-by: Kara Alexandra <kalexandra@us.ibm.com>
2016-08-19 14:19:19 -07:00
Eric Tune
6e5a7f9441 Move init-container feature from alpha to beta.
```relnote
Moved init-container feature from alpha to beta.

In 1.3, an init container is specified with this annotation key
on the pod or pod template: `pods.alpha.kubernetes.io/init-containers`.

In 1.4, either that key or this key: pods.beta.kubernetes.io/init-containers`,
can be used.

When you GET an object, you will see both annotation keys with the same values.

You can safely roll back from 1.4 to 1.3, and things with init-containers
will still work (pods, deployments, etc).

If you are running 1.3, only use the alpha annotation, or it may be lost when
rolling forward.

The status has moved from annotation key
`pods.beta.kubernetes.io/init-container-statuses` to
`pods.beta.kubernetes.io/init-container-statuses`.
Any code that inspects this annotation should be changed to use the new key.

State of Initialization will continue to be reported in both pods.alpha.kubernetes.io/initialized
and in `podStatus.conditions.{status: "True", type: Initialized}`
```

Mini-design for this change:

Goals:
1. A user can create an object with the beta annotation
  on 1.4, and it works.  The fact that the annotation has beta
  in it communicates to the user that the feature is beta,
  and so the user should have confidence in using it.  Preferably,
  when the user gets the annotation back, he see the beta
  annotation.
1) If someone had an existing alpha object in their apiserver,
  such as a RS with a pod template with an init-containers
  annotation on it, it should continue to work (init containers
  run) when stack upgraded to 1.4.
2) If someone is using a chart or blog post that has alpha
  annotation on it and they create it on a 1.4 cluster, it should
  work.
3) If someone had something with an init container in 1.4
  and they roll back stack to 1.3, it should not silently stop
  working (init containers don't run anymore).

To meet all these, we mirror an absent beta label from the alpha
key and vice versa.  If they are out of sync, we use the alpha
one. We do this in conversion since there was already logic there.

In 1.3 code, all annotations are preserved across a round trip
(v1 -> api -> v1), and the alpha annotation turns into the internal
field that kubelet uses.

In 1.4 code, the alpha annotation is always preserved across
a round trip, and a beta annotation is always set equal to
the alpha one, after a round trip.

Currently, the kubelet always sees the object after a round trip
when it GETs it.  But, we don't want to rely on that behavior,
since it will break when fastpath is implemented.

So, we rely on this:
all objects either are created with an alpha annotation (1.3 or 1.4
code) or are created with a beta annotation under 1.4.  In the later
case, they are round tripped at creation time, and so get both
annotations.  So all subsequent GETs see both labels.
2016-08-19 14:00:18 -07:00
Rudi Chiarito
88fdb96bfb Add ExternalName to ServiceSpec
ExternalName allows kubedns to return CNAME records for external
services. No proxying is involved.

See original issue at
https://github.com/kubernetes/kubernetes/issues/13748

Feature tracking at
https://github.com/kubernetes/features/issues/33
2016-08-19 11:30:57 -07:00
Kubernetes Submit Queue
0bef4243cd Merge pull request #30386 from derekwaynecarr/fix-pvc-validation
Automatic merge from submit-queue

Fix pvc requests.storage validation

A `PersistentVolumeClaim` should not be able to request a negative amount of storage.

/cc @kubernetes/sig-storage @kubernetes/rh-cluster-infra @deads2k
2016-08-19 07:46:03 -07:00
Kubernetes Submit Queue
40367df750 Merge pull request #30590 from kevin-wangzefeng/taint-unique-by-key-effect
Automatic merge from submit-queue

make taints unique by <key, effect> on a node

closes #29362
2016-08-19 04:58:12 -07:00
Kubernetes Submit Queue
c19e9cc89d Merge pull request #26044 from smarterclayton/multiversion_encode
Automatic merge from submit-queue

Guarantee that Encode handles nested objects again
2016-08-18 21:10:55 -07:00
bprashanth
05aa040b0f Allow changes to container image for updates 2016-08-18 16:33:51 -07:00
Clayton Coleman
5f8366aac3
Convert() should accept the new conversion Context value
Allows Convert() to reuse the same conversions as ConvertToVersion
without being overly coupled to the version.
2016-08-18 14:45:20 -04:00
Clayton Coleman
c2333f673f
Some internal types are not registered to all output versions
Specifically JobTemplate in batch is not in extensions/v1beta1
2016-08-18 14:45:01 -04:00
Clayton Coleman
12a5eeea17
Introduce GroupVersioner for capturing desired target version
Convert single GV and lists of GVs into an interface that can handle
more complex scenarios (everything internal, nothing supported). Pass
the interface down into conversion.
2016-08-18 14:45:00 -04:00
Johannes Scheuermann
eed42380f9 Initial Quobyte support 2016-08-18 17:13:50 +02:00
Kubernetes Submit Queue
6824f4c08a Merge pull request #28936 from rata/secret-configmap-file-mode
Automatic merge from submit-queue

Allow setting permission mode bits on secrets, configmaps and downwardAPI files

cc @thockin @pmorie 

Here is the first round to implement: https://github.com/kubernetes/kubernetes/pull/28733.

I made two commits: one with the actual change and the other with the auto-generated code. I think it's easier to review this way, but let me know if you prefer in some other way.

I haven't written any tests yet, I wanted to have a first glance and not write them till this (and the API) are more close to the "LGTM" :)

There are some things:
 * I'm not sure where to do the "AND 0777". I'll try to look better in the code base, but suggestions are always welcome :)
 * The write permission on group and others is not set when you do an `ls -l` on the running container. It does work with write permissions to the owner. Debugging seems to show that is something happening after this is correctly set on creation. Will look closer.
 * The default permission (when the new fields are not specified) are the same that on kubernetes v1.3
 * I do realize there are conflicts with master, but I think this is good enough to have a look. The conflicts is with the autog-enerated code, so the actual code is actually the same (and it takes like ~30 minutes to generate it here)
 * I didn't generate the docs (`generated-docs` and `generated-swagger-docs` from `hack/update-all.sh`) because my machine runs out of mem. So that's why it isn't in this first PR, will try to investigate and see why it happens.

Other than that, this works fine here with some silly scripts I did to create a secret&configmap&downwardAPI, a pod and check the file permissions. Tested the "defaultMode" and "mode" for all. But of course, will write tests once this is looking fine :)


Thanks a lot again!
Rodrigo
2016-08-18 05:59:48 -07:00
Kubernetes Submit Queue
6fb10dd762 Merge pull request #30241 from Q-Lee/webhook
Automatic merge from submit-queue

Adding types file for image admission controller.

<!--
Checklist for submitting a Pull Request

Please remove this comment block before submitting.

1. Please read our [contributor guidelines](https://github.com/kubernetes/kubernetes/blob/master/CONTRIBUTING.md).
2. See our [developer guide](https://github.com/kubernetes/kubernetes/blob/master/docs/devel/development.md).
3. If you want this PR to automatically close an issue when it is merged,
   add `fixes #<issue number>` or `fixes #<issue number>, fixes #<issue number>`
   to close multiple issues (see: https://github.com/blog/1506-closing-issues-via-pull-requests).
4. Follow the instructions for [labeling and writing a release note for this PR](https://github.com/kubernetes/kubernetes/blob/master/docs/devel/pull-requests.md#release-notes) in the block below.
-->

```release-note
Adding container image verification webhook API.
```
2016-08-17 21:30:34 -07:00
Kubernetes Submit Queue
9ecee38f78 Merge pull request #27275 from nebril/issue-27274
Automatic merge from submit-queue

Replace map[string]string with labels.Set (TODO)

fixes #27274
2016-08-17 16:08:13 -07:00
Kubernetes Submit Queue
4b5fd43e24 Merge pull request #30250 from krousey/kctl_dynamic
Automatic merge from submit-queue

Change kubectl create to use dynamic client

https://github.com/kubernetes/kubernetes/issues/16764 https://github.com/kubernetes/kubernetes/issues/3955

This is a series of changes to allow kubectl create to use discovery-based REST mapping and dynamic clients.

cc @kubernetes/sig-api-machinery

**Release note**:
<!--  Steps to write your release note:
1. Use the release-note-* labels to set the release note state (if you have access) 
2. Enter your extended release note in the below block; leaving it blank means using the PR title as the release note. If no release note is required, just write `NONE`. 
-->
```release-note
kubectl will no longer do client-side defaulting on create and replace.
```
2016-08-17 14:48:56 -07:00
Quintin Lee
19c0c676d8 Adding imagepolicy group non-autogenerated code. 2016-08-17 12:25:42 -07:00
Rodrigo Campos
4e9a14a64f Update generated code 2016-08-17 14:44:42 -04:00
Rodrigo Campos
568f4c2e63 Add mode permission bits to configmap, secrets and downwardAPI
This implements the proposal in:
docs/proposals/secret-configmap-downwarapi-file-mode.md

Fixes: #28317.

The mounttest image is updated so it returns the permissions of the linked file
and not the symlink itself.
2016-08-17 14:44:41 -04:00
Kubernetes Submit Queue
86c83ccd00 Merge pull request #28696 from erictune/cpu
Automatic merge from submit-queue

Use k8s.io docs for memory/cpu request/limit
2016-08-17 09:59:42 -07:00
Timothy St. Clair
730fc70107 Update etcd default ports for v3, and validate tests 2016-08-17 07:49:19 -05:00
Maciej Kwiek
7b3041664b Remove misleading TODOs about labels.Set 2016-08-17 12:02:20 +02:00
Eric Tune
faad0cec15 Use k8s.io docs for memory/cpu request/limit 2016-08-17 02:58:44 -07:00
Kevin
1e2d560253 make taints unique by <key, effect> on a node 2016-08-17 15:40:33 +08:00
Jordan Liggitt
5b7edc1aa6
Validate involvedObject.Namespace matches event.Namespace 2016-08-16 21:18:52 -04:00
Kubernetes Submit Queue
1b0bc9421f Merge pull request #30301 from girishkalele/endpoint_hostnames
Automatic merge from submit-queue

Add NodeName to EndpointAddress object

Adding a new string type `nodeName` to api.EndpointAddress.
We could also do  *ObjectReference to the api.Node object instead, which would be more precise for the future.

```
type ObjectReference struct {
    Kind            string    `json:"kind,omitempty"`
    Namespace       string    `json:"namespace,omitempty"`
    Name            string    `json:"name,omitempty"`
    UID             types.UID `json:"uid,omitempty"`
    APIVersion      string    `json:"apiVersion,omitempty"`
    ResourceVersion string    `json:"resourceVersion,omitempty"`

    // Optional. If referring to a piece of an object instead of an entire object, this string
    // should contain information to identify the sub-object. For example, if the object
    // reference is to a container within a pod, this would take on a value like:
    // "spec.containers{name}" (where "name" refers to the name of the container that triggered
    // the event) or if no container name is specified "spec.containers[2]" (container with
    // index 2 in this pod). This syntax is chosen only to have some well-defined way of
    // referencing a part of an object.
    // TODO: this design is not final and this field is subject to change in the future.
    FieldPath string `json:"fieldPath,omitempty"`
}
```
2016-08-16 13:11:10 -07:00
Kris
63a512fe47 Add discovery mapper and dynamic typer to kubectl 2016-08-15 22:07:54 -07:00
Girish Kalele
36180a930b Generated code 2016-08-15 17:24:01 -07:00
Girish Kalele
c60ba61fe7 Add NodeName to EndpointAddress object 2016-08-15 15:11:51 -07:00
Kubernetes Submit Queue
69419a145a Merge pull request #29802 from jfrazelle/fix-go-vet-errors
Automatic merge from submit-queue

fix go vet errors

<!--
Checklist for submitting a Pull Request

Please remove this comment block before submitting.

1. Please read our [contributor guidelines](https://github.com/kubernetes/kubernetes/blob/master/CONTRIBUTING.md).
2. See our [developer guide](https://github.com/kubernetes/kubernetes/blob/master/docs/devel/development.md).
3. If you want this PR to automatically close an issue when it is merged,
   add `fixes #<issue number>` or `fixes #<issue number>, fixes #<issue number>`
   to close multiple issues (see: https://github.com/blog/1506-closing-issues-via-pull-requests).
4. Follow the instructions for [labeling and writing a release note for this PR](https://github.com/kubernetes/kubernetes/blob/master/docs/devel/pull-requests.md#release-notes) in the block below.
-->

```release-note
```

This fixes the `go vet` errors brought about by go 1.7 testing re (#28742).

The are all pretty trivial and mostly related to literal composites.

also related to #16086
2016-08-15 13:10:08 -07:00
derekwaynecarr
cebb038935 Fix pvc requests.storage validation 2016-08-15 09:56:04 -04:00
Hongchao Deng
d4afb781c3 change all PredicateFunc to use SelectionPredicate 2016-08-13 10:11:35 -07:00
Kubernetes Submit Queue
df1abb40ec Merge pull request #30246 from liggitt/certificates
Automatic merge from submit-queue

Set user info in CertificateSigningRequest.Spec on create

Fixes #30239
2016-08-12 23:03:18 -07:00
nikhiljindal
1d76884336 Adding events to federation apiserver 2016-08-12 10:48:19 -07:00
Kubernetes Submit Queue
c4c930b413 Merge pull request #30005 from dchen1107/api
Automatic merge from submit-queue

Marked NodePhase deprecated.

cc/ @lavalamp 

Even Kubernetes stops set NodePhase for a while, the user might patch NodeStatus with NodePhase. Marked the field deprecated and documented first. 

xref: https://github.com/kubernetes/kubernetes.github.io/pull/549

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.kubernetes.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.kubernetes.io/reviews/kubernetes/kubernetes/30005)
<!-- Reviewable:end -->
2016-08-12 01:11:12 -07:00
Daniel Smith
77f5813194 update generated files, including the client 2016-08-11 17:06:55 -07:00
Daniel Smith
f1fd638962 fix register.go files up + add test import 2016-08-11 17:06:54 -07:00
Dawn Chen
6d6fb037b5 Marked NodePhase deprecated. 2016-08-10 17:55:58 -07:00
Jess Frazelle
7e9d82129e
fix go vet errors
Signed-off-by: Jess Frazelle <jessfraz@google.com>

fix composites

Signed-off-by: Jess Frazelle <me@jessfraz.com>
2016-08-10 16:45:41 -07:00
Kubernetes Submit Queue
1d4e0ea3c1 Merge pull request #30341 from sttts/sttts-simplify-deepcopy-canonical-element
Automatic merge from submit-queue

Simplify canonical element term in deepcopy

Replace the old functional canonical element term in deepcopy registration with direct struct instantiation.

The old way was an artifact of non-uniform pointer/non-pointer types in the signature of deepcopy function. Since we changed that to always be a pointer, we can simplify the code.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.kubernetes.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.kubernetes.io/reviews/kubernetes/kubernetes/30341)
<!-- Reviewable:end -->
2016-08-10 16:34:07 -07:00
Kubernetes Submit Queue
473425200f Merge pull request #29841 from mfojtik/fix-label-selector
Automatic merge from submit-queue

Do not re-initialize the output on label selector conversion

This conversion will always kill whatever is passed in the output.

@kargakis @deads2k PTAL

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.kubernetes.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.kubernetes.io/reviews/kubernetes/kubernetes/29841)
<!-- Reviewable:end -->
2016-08-10 08:02:30 -07:00
bindata-mockuser
6cce4534f8 Update generated code 2016-08-10 09:12:40 +02:00
Timothy St. Clair
24993b0343 Update generated files due to dependency shift.
Also minor bug fix in federation api.
2016-08-09 10:41:09 -05:00
Kubernetes Submit Queue
94fc389daa Merge pull request #29837 from thockin/validate-dotdot-in-projections
Automatic merge from submit-queue

Validate .. in projections, fix tests

I noticed this when reviewing another PR.  I fixed it but the test was beyond comprehension, so I fixed that too.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.kubernetes.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.kubernetes.io/reviews/kubernetes/kubernetes/29837)
<!-- Reviewable:end -->
2016-08-09 02:31:58 -07:00
Jordan Liggitt
4db004972a
Plumb context to strategy methods 2016-08-08 22:33:25 -04:00
Kubernetes Submit Queue
2537f66f0e Merge pull request #29230 from luxas/goimport
Automatic merge from submit-queue

Run goimport for the whole repo

While removing GOMAXPROC and running goimports, I noticed quite a lot of other files also needed a goimport format. Didn't commit `*.generated.go`, `*.deepcopy.go` or files in `vendor`

This is more for testing if it builds.
The only strange thing here is the gopkg.in/gcfg.v1 => github.com/scalingdata/gcfg replace.
cc @jfrazelle @thockin
2016-08-05 16:22:01 -07:00
deads2k
32920b5617 add subjectaccessreviews resource 2016-08-05 11:20:56 -04:00
Kubernetes Submit Queue
7921a9ce67 Merge pull request #25816 from soltysh/scheduledjob_kubectl
Automatic merge from submit-queue

ScheduledJob kubectl

@erictune the last part (kubectl) of the ScheduledJob, as usual builds on top of previous PRs, so only last 2 commits matter (the kubectl one and storage leftovers).

```release-note
* Introducing ScheduledJobs as described in [the proposal](https://github.com/kubernetes/kubernetes/blob/master/docs/proposals/scheduledjob.md) as part of `batch/v2alpha1` version (experimental feature).
```
[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]()
2016-08-04 17:36:07 -07:00
Michal Fojtik
e220f95da7 Do not re-initialize the output on label selector conversion 2016-08-04 10:18:42 +02:00
deads2k
60dd4a5d26 interesting changes to add tokenreviews endpoint to implement webhook 2016-08-03 08:37:45 -04:00
Kubernetes Submit Queue
d3f36756d5 Merge pull request #29601 from caesarxuchao/check-list
Automatic merge from submit-queue

Validate list objects when building scheme

The first commit is #29468. This PR is a followup.

Modified the description of **List** in api-convention.md to:
`The name of a list kind must end with "List". Lists have a limited set of common metadata. All lists use the required "items" field to contain the array of objects they return. Any kind that has the "items" field must be a list kind.`

Also added code to enforce the above rules during scheme registration.

@kubernetes/sig-api-machinery @bgrant0607 @erictune @lavalamp @smarterclayton
2016-08-02 22:53:40 -07:00
Kubernetes Submit Queue
1edf254efb Merge pull request #25458 from errm/env-var-style-config-keys
Automatic merge from submit-queue

Allow Secret & ConfigMap keys to contain caps, dots, and underscores

[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/.github/PULL_REQUEST_TEMPLATE.md?pixel)]()

Re: #23722

This makes loosens the regex used in in Secrets and ConfigMap,
in order to make environment variable style keys valid
2016-08-02 21:00:52 -07:00
Chao Xu
81858d755e add validateListType to pkg/api/meta/schema_test.go 2016-08-02 15:47:24 -07:00
Maciej Szulik
df124fed14 ScheduledJob suspend being pointer leftovers 2016-08-02 21:15:30 +02:00
k8s-merge-robot
7a62b9c8d1 Merge pull request #29523 from fraenkel/service_names_rfc1035
Automatic merge from submit-queue

Allow service names up to 63 characters (RFC 1035)

fixes #3752
2016-08-02 10:33:16 -07:00
Michael Fraenkel
b1e7e6cf46 Service names conform to RFC 1035 2016-08-02 08:42:15 -06:00
Lucas Käldström
c88a07ce1a Run goimports 2016-08-02 15:12:39 +03:00