Commit Graph

1715 Commits (b73ce8e47d4ab45a367e88b0bdf30cd80cd9657e)

Author SHA1 Message Date
Haoran Wang 45ec7d9f51 fix error type 2017-07-04 17:21:36 +08:00
Cao Shufeng 00e871a846 remove unused function and variable from audit backend 2017-07-04 16:14:10 +08:00
Shiyang Wang 3d6479f721 Fix 401/403 apiserver errors do not return 'Status' objects 2017-07-04 15:35:51 +08:00
Kubernetes Submit Queue ea6e84365e Merge pull request #47206 from gyliu513/typo
Automatic merge from submit-queue

Follow up for https://github.com/kubernetes/kubernetes/pull/47003

**What this PR does / why we need it**:
This is addressing left comments for https://github.com/kubernetes/kubernetes/pull/47003#discussion_r120888982

/cc @aveshagarwal 

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #

**Special notes for your reviewer**:

**Release note**:

```release-note
```
2017-07-04 00:25:22 -07:00
Kubernetes Submit Queue 4ae3b032f4 Merge pull request #48394 from smarterclayton/must_serialize_if_data_differs
Automatic merge from submit-queue (batch tested with PRs 48439, 48440, 48394)

GuaranteedUpdate must write if stored data is not canonical

An optimization added to the GuaranteedUpdate loop changed the
comparison of the current objects serialization against the stored data,
instead comparing to the in memory object, which defeated the mechanism
we use to migrate stored data (GET then PUT should update the version stored in etcd if the canonical serialization has changed)

This commit preserves that optimization but correctly verifies the in
memory serialization against the on disk serialization by fetching the
latest serialized data. Since most updates are not no-ops, this should
not regress the performance of the normal path.

Fixes #48393

```release-note
When performing a GET then PUT, the kube-apiserver must write the canonical representation of the object to etcd if the current value does not match. That allows external agents to migrate content in etcd from one API version to another, across different storage types, or across varying encryption levels. This fixes a bug introduced in 1.5 where we unintentionally stopped writing the newest data.
```
2017-07-03 13:05:30 -07:00
deads2k 9b43bd4a5b make the panic handler first 2017-07-03 14:34:03 -04:00
Kubernetes Submit Queue 74bde7f7ff Merge pull request #48354 from deads2k/gc-01-deletenever
Automatic merge from submit-queue (batch tested with PRs 47784, 47793, 48334, 48435, 48354)

allow a deletestrategy to opt-out of GC

Not all resources should be GC-able and we implemented an ignore list to handle this, but at the storage layer they could still set finalizers, they just hung in a stuck state forever.  This updates the strategy to allow a resource to indicate that they shouldn't be GCed.

@kubernetes/sig-api-machinery-misc
2017-07-03 10:41:56 -07:00
Kubernetes Submit Queue cf9f110387 Merge pull request #48334 from CaoShuFeng/LevelMetadata
Automatic merge from submit-queue (batch tested with PRs 47784, 47793, 48334, 48435, 48354)

update events' ResponseStatus at Metadata level

ResponseStatus is populated in MetadataLevel, so we also update it in
MetadataLevel.

**Release note**:

```
NONE
```
2017-07-03 10:41:51 -07:00
Kubernetes Submit Queue 55261d7955 Merge pull request #47784 from CaoShuFeng/rule_validate
Automatic merge from submit-queue (batch tested with PRs 47784, 47793, 48334, 48435, 48354)

add validate for advanced audit policy

This change checks group name and non-resrouce URLs format for audit
policy.

**Release note**:

```
add validate for advanced audit policy, kube-apiserver will do a stricter validation and will break existing users with invalid configs.
```
2017-07-03 10:41:47 -07:00
deads2k 312fb1e1fa allow a deletestrategy to opt-out of GC 2017-07-03 11:27:45 -04:00
Cao Shufeng b6abcacb38 update events' ResponseStatus at Metadata level
ResponseStatus is populated in MetadataLevel, so we also update it in
MetadataLevel.
2017-07-03 20:43:48 +08:00
Cao Shufeng 7437b88386 add validate for advanced audit policy
This change checks group name and non-resrouce URLs format for audit
policy.
2017-07-03 20:35:35 +08:00
Clayton Coleman b851614adf
GuaranteedUpdate must write if stored data is not canonical
An optimization added to the GuaranteedUpdate loop changed the
comparison of the current objects serialization against the stored data,
instead comparing to the in memory object, which defeated the mechanism
we use to migrate stored data.

This commit preserves that optimization but correctly verifies the in
memory serialization against the on disk serialization by fetching the
latest serialized data. Since most updates are not no-ops, this should
not regress the performance of the normal path.
2017-07-02 23:13:15 -04:00
Nikhita Raghunath 36271f985d
Add Cleanup section to apiextensions client-go 2017-07-02 03:53:35 +05:30
Kubernetes Submit Queue fbba67098b Merge pull request #48317 from CaoShuFeng/impersonation_group
Automatic merge from submit-queue

remove useless check from impersonation filter

When groupsSpecified is false, that means no other groups are added
rather than the service account groups. So this check doesn't make
any sense.

**Release note**:

```
NONE
```
2017-06-30 19:47:38 -07:00
Kubernetes Submit Queue 19724f0b98 Merge pull request #48151 from apelisse/accept-encoding-gzip
Automatic merge from submit-queue (batch tested with PRs 47918, 47964, 48151, 47881, 48299)

GZip openapi schema if accepted by client

**What this PR does / why we need it**: Uses gzip "Accept-Encoding" flag rather than specific path to download gzipped openapi schema.

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #48375

**Special notes for your reviewer**:

**Release note**:

```release-note
```
2017-06-30 18:42:38 -07:00
Kubernetes Submit Queue 9c74026ffc Merge pull request #46803 from apelisse/new-download-openapi
Automatic merge from submit-queue (batch tested with PRs 43558, 48261, 42376, 46803, 47058)

OpenAPI downloads protobuf rather than Json

**What this PR does / why we need it**: 
The current implementation of the OpenAPI getter fetches the swagger in a Json format from the apiserver. The Json file is big (~1.7mb), which means that it takes a long time to download, and then a long time to parse. Because that is going to be needed on each `kubectl` run later, we want this to be as fast as possible.

The apiserver has been modified to be able to return a protobuf version of the swagger, which this patch intends to use.

Note that there is currently no piece of code that exists that allows us to go from the protobuf version of the file, back into Json and/or `spec.Swagger`. Because the protobuf is not very different (but significantly different enough that it can't be translated), I've updated the code to use `openapi_v2.Document` (the protobuf type) everywhere rather than `spec.Swagger`. The behavior should be identical though.

There are more changes that are coming in follow-up pull-requests: using the gzip version (also provided by the new apiserver) to even further reduce the size of the downloaded content, and use the HTTP Etag cache mechanism to completely get rid of recurrent fetch requests. I'm currently working on these two features.

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: partly #38637

**Special notes for your reviewer**:

**Release note**:
```release-note
NONE
```
2017-06-30 16:28:48 -07:00
Clayton Coleman 3662184786
meta.EachListItem should support runtime.Unstructured
Allows callers to iterate over that construct.
2017-06-30 16:40:26 -04:00
Kubernetes Submit Queue 992002689e Merge pull request #47132 from pichouk/patch-1
Automatic merge from submit-queue

Fix a typo in deletion log of apiserver

**What this PR does / why we need it**:
I just fix a typo in a log message. Nothing more 😄 

**Which issue this PR fixes**
apiserver sometimes log this message "About do delete object from database". It seems that there is a typo for `to`.

```release-note
Fix a typo in apiserver log message
```
2017-06-30 05:30:17 -07:00
Cao Shufeng 0a1e24f31e remove useless check from impersonation filter
When groupsSpecified is false, that means no other groups are added
rather than the service account groups. So this check doesn't make
any sense.
2017-06-30 10:51:07 +08:00
Mikhail Mazurskiy dc1ee493a2
Refactor unstructured converter 2017-06-30 09:35:14 +10:00
Aaron Crickenberger 8469b01333 TestLoopbackHostPort should accept IPv6 loopback host 2017-06-29 11:49:28 -07:00
Dan Mace 547d820588 Fix Unstructured field accessor
Fix the Unstructured GetDeletionGracePeriodSeconds accessor which was
always returning nil regardless of the underlying stored value. The
field value always appearing nil prevents Custom Resource instances
from being deleted when garbage collection is enabled for CRs and
when DeletePropagationOrphan is used. More generally, this fix means that
delete-on-update now works for CR instances.

Add some test coverage for Unstructured metadata deserialization.

The Unstructured DeletionGracePeriodSeconds field marshals as a value
type from JSON and as a pointer type via SetDeletionGracePeriodSeconds.
The GetDeletionGracePeriodSeconds method now supports handling both
int64 and *int64 values so that either underlying value can be returned.

Add a reflection-based unit test which attempts to exercise all the
Object Get/Set methods for nil handling.
2017-06-28 13:44:29 -04:00
Guangya Liu 159fa86d98 Follow up for https://github.com/kubernetes/kubernetes/pull/47003 2017-06-28 10:41:09 +08:00
xiangpengzhao fcf2df9ad7 Validate --storage-backend type. 2017-06-28 09:47:49 +08:00
Kubernetes Submit Queue 82eff38a63 Merge pull request #45610 from bsalamat/priority_api
Automatic merge from submit-queue (batch tested with PRs 45610, 47628)

Add Priority to Kubernetes API

**What this PR does / why we need it**: This is the first in a series of PRs to add priority to Kubernetes API. Subsequent PRs will add priority name resolution to admission controller.


**Release note**:

```release-note
Add PriorityClassName and Priority fields to PodSpec.
```
2017-06-27 17:46:08 -07:00
Antoine Pelisse f617df7d6a Add NYTimes/gziphandler dependency 2017-06-27 15:55:01 -07:00
Antoine Pelisse bd38dd4d12 openapi: Read Accept-Content to send gzip if needed 2017-06-27 15:55:00 -07:00
Kubernetes Submit Queue fd884b7eb6 Merge pull request #48106 from timstclair/audit-metrics
Automatic merge from submit-queue (batch tested with PRs 48106, 46761)

s/count/total/ in audit prometheus metrics

Responding to https://github.com/kubernetes/kubernetes/pull/46732#discussion_r124057806, making the metric names conform with the [metric naming convention](https://prometheus.io/docs/practices/naming/#metric-names).

kubernetes/features#22

/cc @ericchiang @ihmccreery
2017-06-27 15:01:57 -07:00
Kubernetes Submit Queue 9120d58fc9 Merge pull request #47352 from p0lyn0mial/wire_admission_to_sample_apiserver
Automatic merge from submit-queue

shows how to wire admission control in a sample api server.

**What this PR does / why we need it**:
This PR shows how to wire admission control in a custom api server

**Release note**:

```release-note
NONE
```
2017-06-27 10:06:06 -07:00
Kubernetes Submit Queue 353633b877 Merge pull request #47904 from deads2k/log-01-supress
Automatic merge from submit-queue (batch tested with PRs 47484, 47904, 48034)

prioritize messages for long steps

This pull prioritizes the trace messages, so steps that are unusually large come out at the info level and all details come out a v(4) level.
2017-06-26 22:21:58 -07:00
Kubernetes Submit Queue d31bcad496 Merge pull request #47702 from smarterclayton/avoid_mutable
Automatic merge from submit-queue (batch tested with PRs 48012, 47443, 47702, 47178)

Don't bother with a mutable transformer for identity

The default value transformer can safely be the identity transformer - mutability is not required if the caller doesn't need transformation.
2017-06-26 17:48:03 -07:00
Kubernetes Submit Queue aac42add77 Merge pull request #47443 from p0lyn0mial/use_incluster_cfg_when_creating_ext_informers
Automatic merge from submit-queue (batch tested with PRs 48012, 47443, 47702, 47178)

incluster config will be used when creating external shared informers.

**What this PR does / why we need it**:
Previously the loopback configuration was used to talk to the server.
As a consequence a custom API server was unable to talk to the root API server.
This PR changes the above by using incluster configuration to create shared informers.

**Release note**:

```release-note
NONE
```
2017-06-26 17:48:01 -07:00
Kubernetes Submit Queue eadd20ef48 Merge pull request #47748 from nikhita/client-go-examples-readme
Automatic merge from submit-queue

Update custom-resources example in client-go

- Update client-go examples `README.md` to point to the CustomResources example instead of the deprecated TPR one.
- Delete `staging/src/k8s.io/client-go/examples/custom-resources`. 

Fixing #47743.

**Release note**:

```release-note
NONE
```

/cc @ahmetb @sttts
2017-06-26 16:30:55 -07:00
Nikhita Raghunath bfa9ce4308
Update CR example in client-go
Remove custom-resources directory from client-go

Add TPR example back

Mention CRD is successor to TPR
2017-06-27 03:39:29 +05:30
Bobby (Babak) Salamat 403b30f6e9 Autogenerated files 2017-06-26 15:02:49 -07:00
Tim St. Clair b34d6ab890
s/count/total/ in audit prometheus metrics 2017-06-26 14:41:20 -07:00
Bobby Salamat 91f893eebe Add priority to Kubernetes API 2017-06-26 13:43:19 -07:00
Kubernetes Submit Queue 6b973991a8 Merge pull request #48036 from hongchaodeng/master
Automatic merge from submit-queue (batch tested with PRs 48036, 48022)

apiextensions-apiserver: fix build

Can't build CRD due to this bug. This PR will fix it.
2017-06-26 12:52:39 -07:00
Eric Paris f4767c270d prioritize messages for long steps 2017-06-26 13:17:00 -04:00
Paul Michali a2a99c786a IPv6 support for getting node IP
As part of ChooseHostInterface(), it will call a function to try to get the
global IP for the host, by looking at all the system interfaces and select
the first IP that is not a loopback, link-local, or point-to-point IP.

This commit does the following:

- Allows IPv6 non-local IPs to be selected.
- IPv4 takes priority (checks all interfaces for IPv4 addresses and
  then checks all interfaces for IPv6), for backward compatibility.
- Adds UTs for code coverage (was no coverage of underlying function),
  increasing from 62% to 84%.
- Improved logging and reporting for error conditions.
- Minor renaming of functions and variables for readability.
2017-06-26 13:13:17 +00:00
Kubernetes Submit Queue df7f4b3526 Merge pull request #47975 from deads2k/api-14-proto
Automatic merge from submit-queue (batch tested with PRs 46425, 47975)

make proto time precision match json

json readers/writers see second precision, but protobuf readers/writers seen nanosecond precision.  This means that a json client can read and write and accidentally mutate fields as seen by protobuf clients.

This makes the precision consistent.

@kubernetes/sig-api-machinery-misc @smarterclayton 

```release-note
Update protobuf time serialization for a one second granularity
```
2017-06-26 05:49:40 -07:00
Hongchao Deng 9ee991837c apiextensions-apiserver: fix build 2017-06-25 19:33:17 -07:00
Kubernetes Submit Queue 06453433c0 Merge pull request #48017 from liggitt/encode-nested
Automatic merge from submit-queue

Plumb preferred version to nested object encoder

Fixes https://github.com/kubernetes/kubernetes/issues/48018
2017-06-24 10:24:32 -07:00
Kubernetes Submit Queue beb5b9dd4d Merge pull request #47869 from timothysc/affinity_cleanup
Automatic merge from submit-queue

Removes alpha feature gate for affinity annotations.  

**What this PR does / why we need it**:
In 1.5 we added a backstop to support alpha affinity annotations.  This PR removes that support in favor of the Beta fields per discussions.  

It also serves as a precursor to some of the component config work that @ncdc has done around @mikedanese design proposal.  

xref: https://github.com/kubernetes/kubernetes/pull/41617 

**Special notes for your reviewer**:

**Release note**:

```
Removes alpha feature gate for pod affinity annotations.  
```

/cc @kubernetes/sig-scheduling-pr-reviews @kubernetes/sig-cluster-lifecycle-misc
2017-06-24 06:11:42 -07:00
Kubernetes Submit Queue b042c76d10 Merge pull request #47936 from caesarxuchao/test-api-dependency
Automatic merge from submit-queue (batch tested with PRs 47650, 47936, 47939, 47986, 48006)

External dependency of k8s.io/api

Fix https://github.com/kubernetes/kubernetes/issues/48007

It's unfortunate that k8s.io/api has external dependencies.

Most of the dependencies are introduced by "k8s.io/apimachinery/pkg/util/intstr" and ugorji.
2017-06-24 05:15:40 -07:00
Kubernetes Submit Queue 714f97d7ba Merge pull request #47740 from liggitt/websocket-protocol
Automatic merge from submit-queue

Add token authentication method for websocket browser clients

Closes #47967

Browser clients do not have the ability to set an `Authorization` header programatically on websocket requests. All they have control over is the URL and the websocket subprotocols sent (see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket)

This PR adds support for specifying a bearer token via a websocket subprotocol, with the format `base64url.bearer.authorization.k8s.io.<encoded-token>`

1. The client must specify at least one other subprotocol, since the server must echo a selected subprotocol back
2. `<encoded-token>` is `base64url-without-padding(token)`

This enables web consoles to use websocket-based APIs (like watch, exec, logs, etc) using bearer token authentication.

For example, to authenticate with the bearer token `mytoken`, the client could do:
```js
var ws = new WebSocket(
  "wss://<server>/api/v1/namespaces/myns/pods/mypod/logs?follow=true",
  [
    "base64url.bearer.authorization.k8s.io.bXl0b2tlbg",
    "base64.binary.k8s.io"
  ]
);
```

This results in the following headers:
```
Sec-WebSocket-Protocol: base64url.bearer.authorization.k8s.io.bXl0b2tlbg, base64.binary.k8s.io
```

Which this authenticator would recognize as the token `mytoken`, and if authentication succeeded, hand off to the rest of the API server with the headers
```
Sec-WebSocket-Protocol: base64.binary.k8s.io
```

Base64-encoding the token is required, since bearer tokens can contain characters a websocket protocol may not (`/` and `=`)

```release-note
Websocket requests may now authenticate to the API server by passing a bearer token in a websocket subprotocol of the form `base64url.bearer.authorization.k8s.io.<base64url-encoded-bearer-token>`
```
2017-06-24 00:34:41 -07:00
Kubernetes Submit Queue aee3c5ae87 Merge pull request #47973 from sjenning/include-obj-fieldpath-event-key
Automatic merge from submit-queue

include object fieldpath in event key

Fixes https://github.com/kubernetes/kubernetes/issues/47692

#47462 exposed a bug where `getEventKey()` only keys on event fields that are common at the pod level. Events generated by different containers in the same pod will yield identical event keys.  This results in events with the same message from different containers in a pod being aggregated in error.

This wasn't a problem before as the event message contained container specific information and thus didn't produce the same event key.

@derekwaynecarr @dhilipkumars @dchen1107
2017-06-23 19:51:53 -07:00
Jordan Liggitt 49b51c2de8
Plumb preferred version to nested object encoder 2017-06-23 22:09:03 -04:00
Kubernetes Submit Queue ed3c50a755 Merge pull request #47845 from liggitt/remove-redirect
Automatic merge from submit-queue (batch tested with PRs 47993, 47892, 47591, 47469, 47845)

Remove redirect verb parsing

The redirect verb was removed pre-1.0 in https://github.com/kubernetes/kubernetes/pull/9826 so the request parsing logic is dead code

Diff best viewed without whitespace:
https://github.com/kubernetes/kubernetes/pull/47845/files?w=1
2017-06-23 18:05:52 -07:00
Kubernetes Submit Queue 1a93dd60bb Merge pull request #47945 from sakeven/fix/add_level_for_print_flags
Automatic merge from submit-queue (batch tested with PRs 47883, 47179, 46966, 47982, 47945)

add level for print flags

Signed-off-by: sakeven <jc5930@sina.cn>



**What this PR does / why we need it**:
It's ugly to print all flags whenever.

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: 

fixes #47932

**Special notes for your reviewer**:

**Release note**:

```
NONE
```
2017-06-23 15:48:46 -07:00
Kubernetes Submit Queue 80af10c0e6 Merge pull request #46966 from ilackarms/compression-gating
Automatic merge from submit-queue (batch tested with PRs 47883, 47179, 46966, 47982, 47945)

Add feature gating to REST Compression

**What this PR does / why we need it**: Adds feature gating to opt out of REST API compression

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #46963 

**Special notes for your reviewer**: This PR is a fix / addendum to #45666

**Release note**:

```release-note
```
2017-06-23 15:48:40 -07:00
Antoine Pelisse 224dba9a13 openapi: Fetch protobuf rather than Json
This is much faster.
2017-06-23 13:50:50 -07:00
Seth Jennings fbcb0562ea include object fieldpath in event key 2017-06-23 13:26:02 -05:00
deads2k 5b8a483a96 make proto time precision match json 2017-06-23 13:53:19 -04:00
Scott Weiss c305f72315 add compression to GET and LIST api requests
this feature is gated; disabled by default
2017-06-23 11:24:36 -04:00
Timothy St. Clair 4aea626944 Removes alpha feature gate for affinity annotations. Beta fields should be used. 2017-06-23 10:02:14 -05:00
Kubernetes Submit Queue 10a6b227b1 Merge pull request #47778 from NickrenREN/etcd-compact-loglevel
Automatic merge from submit-queue

Lower etcd compacted loglevel

Fixes #47941

When we run apiserver, it will consistently produce logs like:

> I0620 15:27:44.627978    2765 compact.go:159] etcd: compacted rev (7825), endpoints ([http://127.0.0.1:2379])
I0620 15:32:44.632311    2765 compact.go:159] etcd: compacted rev (8193), endpoints ([http://127.0.0.1:2379])
I0620 15:37:44.643658    2765 compact.go:159] etcd: compacted rev (8552), endpoints ([http://127.0.0.1:2379])
...

which does not mean much overall, we may change the loglevel and lower the frequency.

**Release note**:
-->
```release-note
NONE
```
2017-06-23 06:04:53 -07:00
Kubernetes Submit Queue f5a5c50812 Merge pull request #47602 from rootfs/gophercloud-383
Automatic merge from submit-queue (batch tested with PRs 46151, 47602, 47507, 46203, 47471)

rebase gophercloud to support HTTP status 300 in pagination, so listingng Cinder v1/v2 API versions won't break

**What this PR does / why we need it**:
Since Cinder block v1/v2 support lands in 1.7, we have to ensure Cinder block api list won't fail due to https://github.com/gophercloud/gophercloud/pull/384.


**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #47651

**Special notes for your reviewer**:

@anguslees @NickrenREN 

**Release note**:

```release-note
NONE
```
2017-06-23 05:08:21 -07:00
sakeven 8b1a08a919 add level for print flags
Signed-off-by: sakeven <jc5930@sina.cn>
2017-06-23 11:59:36 +08:00
Chao Xu 1b7201ab91 generated Godeps.json 2017-06-22 16:58:53 -07:00
Kubernetes Submit Queue e123311d8a Merge pull request #47684 from nikhita/fix-cr-example
Automatic merge from submit-queue

Fix link to apiextensions client-go example

Fixes link to client-go example for apiextensions-apiserver.

Fixing #47211.

**Special notes for your reviewer**:

When I run `hack/update-staging-client-go.sh`, I get this error:

```
!!! Error in staging/copy.sh:132
    Error in staging/copy.sh:132. 'git commit -q -m "Snapshot" > /dev/null' exited with status 1
  Call stack:
    1: staging/copy.sh:132 main(...)
  Exiting with status 1
```

What am I missing here?
/cc @caesarxuchao @sttts 

**Release note**:

```
NONE
```
2017-06-22 16:44:03 -07:00
p0lyn0mial 074544b3b0 incluster config will be used when creating external shared informers.
previously the loopback configuration was used to talk to the server.
As a consequence a custom API server was unable to talk to the root API server.
2017-06-22 21:48:50 +02:00
Chao Xu c2d576886b run update-staging-godeps.sh; the script asks user to manually commit changes for each repo 2017-06-22 11:31:04 -07:00
Chao Xu 60604f8818 run hack/update-all 2017-06-22 11:31:03 -07:00
Chao Xu 4379bbdafb manually fix openapi-gen 2017-06-22 11:31:03 -07:00
Chao Xu 239613b521 manually fix kubectl openapi unit test 2017-06-22 11:31:02 -07:00
Chao Xu 847b048fa0 make all works. generated harmless covnersion/deepcoy chagnes 2017-06-22 11:30:59 -07:00
Chao Xu ffe74d1fe7 run hack/update-staging-client-go, somehow we copied listers/<authn,authz,imagepolicy> 2017-06-22 11:30:59 -07:00
Chao Xu f2d3220a11 run root-rewrite-import-client-go-api-types 2017-06-22 11:30:59 -07:00
Chao Xu e185f7e277 run hack/update-codegen.sh 2017-06-22 11:30:58 -07:00
Chao Xu 6abfeb9d40 some copy.sh changes 2017-06-22 11:30:58 -07:00
Chao Xu edd30fddcd run fix-casttype.sh 2017-06-22 11:30:52 -07:00
Chao Xu 4fb28dafad pkg/apis/move-external-types-for-apis.sh, k8s.io/api compiles 2017-06-22 11:30:51 -07:00
Chao Xu 94e8bb6261 unify register.go formats:
networking/v1/register.go
staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1/register.go
staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1alpha1/register.go
staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1 register.go
2017-06-22 11:30:51 -07:00
Chao Xu 58edb6b485 split v1/register.go to regsiter.go and builder.go
move api/v1 to k8s.io/api/v1
duplicate some global variables/functions in pkg/api/v1/builder.go, add todo to remove these
2017-06-22 10:21:42 -07:00
Kubernetes Submit Queue 4d1379c473 Merge pull request #47512 from rickypai/rpai/fix_hostalias_json_key
Automatic merge from submit-queue (batch tested with PRs 42252, 42251, 42249, 47512, 47887)

fix HostAliases' json keys to be hostAlias instead of hostMapping to reflect actual feature name

**What this PR does / why we need it**: a rename was introduce during the middle of #44641 to change from `hostMappings` to `hostAliases`. the Go structs were updated, but I neglected to update the json keys. They should be in sync.

**Special notes for your reviewer**:  I messed up. This is an API change. I hope this is still ok to be in the 1.7 release.

**Release note**:
```release-note
HostAliases is now parsed with `hostAliases` json keys to be in line with the feature's name.
```
2017-06-21 22:13:33 -07:00
Kubernetes Submit Queue 96716d3eb4 Merge pull request #47857 from deads2k/agg-35-routing
Automatic merge from submit-queue (batch tested with PRs 47878, 47503, 47857)

restore working aggregator and avoid duplicate informers

Fixes https://github.com/kubernetes/kubernetes/issues/47866

This runs the informer all the way through and makes sure its started.

@lavalamp ptal
@kubernetes/sig-api-machinery-bugs
2017-06-21 21:12:18 -07:00
Ricky Pai 797dc10a0c generated code 2017-06-21 16:39:50 -07:00
Kubernetes Submit Queue 03014f486c Merge pull request #47824 from mbohlool/revert2
Automatic merge from submit-queue (batch tested with PRs 47851, 47824, 47858, 46099)

Revert 44714 manually

#44714 broke backward compatibility for old swagger spec that kubectl still uses. The decision on #47448 was to revert this change but the change was not automatically revertible. Here I semi-manually remove all references to UnixUserID and UnixGroupID and updated generated files accordingly.

Please wait for tests to pass then review that as there may still be tests that are failing.

Fixes #47448

Adding release note just because the original PR has a release note. If possible, we should remove both release notes as they cancel each other.

**Release note**: (removed by caesarxuchao)

UnixUserID and UnixGroupID is reverted back as int64 to keep backward compatibility.
2017-06-21 15:21:14 -07:00
Kubernetes Submit Queue 5d30190b3b Merge pull request #47851 from jhorwit2/jah/revert-psp-hostpath-whitelist
Automatic merge from submit-queue (batch tested with PRs 47851, 47824, 47858, 46099)

Revert "Merge pull request #43946 from jhorwit2/jah/host-path-psp"

fixes #47863

This reverts commit b5eadb5d6b, reversing
changes made to 1889d654f5.



**What this PR does / why we need it**:

Revert whitelist host paths in psp due to API concerns. Please refer to https://github.com/kubernetes/kubernetes/pull/47811 for the concerns.

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #

**Special notes for your reviewer**:

cc @liggitt @ericchiang @smarterclayton 

**Release note**:

```release-note
```
2017-06-21 15:21:11 -07:00
Kubernetes Submit Queue ee89c30eb3 Merge pull request #47792 from liggitt/decode-raw
Automatic merge from submit-queue (batch tested with PRs 34515, 47236, 46694, 47819, 47792)

Fix rawextension decoding in update

Fixes https://github.com/kubernetes/kubernetes/issues/47842

The `Create` handler was correctly decoding into the internal version, but the `Update` handler was not.

Top-level objects were not affected, because the type of the `New()` object returned by the rest handler governs the destination group/version/kind.

If a field within the object is of type `RawExtension`, and converts to a `runtime.Object` field in the internal object, the `runtime.Object` field provides no information about the desired group/version/kind, so the decoder's groupversioner governs.

This would manifest as the resthandler's Update function being given an internal top-level object with it's runtime.Object field containing an external object.
2017-06-21 13:30:21 -07:00
Kubernetes Submit Queue d3ee9df2c2 Merge pull request #46694 from matt-tyler/bug-gcpauthdefaultcred
Automatic merge from submit-queue (batch tested with PRs 34515, 47236, 46694, 47819, 47792)

Clear auth config when gcp app default credentials fail

**What this PR does / why we need it**:

Specific use case is when utilizing multiple gcp accounts, the user may provide credentials for the wrong account.

This change ensures the incorrect credentials are not cached in auth config, and logs an appropriate message.

**Which issue this PR fixes** : fixes #38075

**Special notes for your reviewer**:

**Release note**:

```release-note
Tokens retrieved from Google Cloud with application default credentials will not be cached if the client fails authorization
```
2017-06-21 13:30:13 -07:00
deads2k f525c0815e restore working aggregator and avoid duplicate informers 2017-06-21 15:14:59 -04:00
Josh Horwitz b6e08ec39d Revert "Merge pull request #43946 from jhorwit2/jah/host-path-psp"
This reverts commit b5eadb5d6b, reversing
changes made to 1889d654f5.
2017-06-21 12:45:22 -04:00
Jordan Liggitt e8b24679dc
Remove redirect verb parsing 2017-06-21 11:17:24 -04:00
Jordan Liggitt 6a872c09eb
Use websocket protocol authenticator in apiserver 2017-06-21 09:47:34 -04:00
Jordan Liggitt e2a03bcf2a
Add websocket protocol authentication method 2017-06-21 09:47:34 -04:00
mbohlool 70c4fe7f4f update generated files 2017-06-21 04:09:08 -07:00
mbohlool c91a12d205 Remove all references to types.UnixUserID and types.UnixGroupID 2017-06-21 04:09:07 -07:00
Jordan Liggitt a536ee3615
Fix rawextension decoding in update 2017-06-20 11:05:31 -04:00
Kubernetes Submit Queue 35016b153e Merge pull request #46604 from slintes/goClientNotFoundStatusErrorExample
Automatic merge from submit-queue (batch tested with PRs 46604, 47634)

Added example for status errors in go client

This PR adds status error handling examples to the go client examples, for both in-cluster and out-of-cluster usage. Fixes https://github.com/kubernetes/client-go/issues/163
2017-06-20 03:15:54 -07:00
NickrenREN 151b6a04e1 Lower etcd compacted loglevel 2017-06-20 15:46:13 +08:00
Kubernetes Submit Queue 6bab8dc493 Merge pull request #46812 from lavalamp/whitlockjc-plumbing
Automatic merge from submit-queue (batch tested with PRs 47726, 47693, 46909, 46812)

Plumb service resolver into webhook AC

This is the last piece of plumbing needed for https://github.com/kubernetes/features/issues/209
2017-06-19 18:34:06 -07:00
Kubernetes Submit Queue 6b52d8f138 Merge pull request #47701 from smarterclayton/stable_serialization
Automatic merge from submit-queue (batch tested with PRs 47669, 40284, 47356, 47458, 47701)

Serialized protobuf should have stable map order

Leverage `stable_marshaller_all` tag in gogo-protobuf to ensure all of our maps have stable ordering when serialized to protobuf. This preserves the behavior from JSON that we rely on to avoid writing to etcd except when the content has changed.

Will slightly increase allocations (1 slice per non-empty map in an object) during Encode, which has a minor impact on CPU. However, avoiding writes when a client issues a blind put results in significantly less CPU across the whole cluster (avoiding a new etcd version for an Endpoints object might save ~1 core/sec on large clusters).

Fixes #47678 

```release-note
The protobuf serialization of API objects has been updated to store maps in a predictable order to ensure that the representation of that object does not change when saved into etcd. This prevents the same object from being seen as being modified, even when no values have changed.
```
2017-06-19 15:25:06 -07:00
Nikhita Raghunath 731a1ccb44
Fix typo in cross-repo link 2017-06-20 00:20:30 +05:30
Kubernetes Submit Queue 2d023ab085 Merge pull request #46855 from wojtek-t/log_broken_watches
Automatic merge from submit-queue

Add logging to debug conflicts in kubemark-scale test

Ref #46851
2017-06-19 07:26:24 -07:00
Matt Tyler b92016769e Clear auth config when gcp credentials fail
Specific use case is when utilizing multiple
gcp accounts, the user may provide credentials
for the wrong account.

This change ensures the incorrect credentials
are not cached in auth config, and logs an
appropriate message.
2017-06-18 14:50:47 +08:00
Clayton Coleman c1ff7592fa
Add test for stable encoding 2017-06-17 14:32:51 -04:00
Clayton Coleman 606825eea4
generated: protobuf with stable map ordering 2017-06-17 14:32:51 -04:00
Clayton Coleman dac0d07546
Don't bother with a mutable transformer for identity 2017-06-17 09:19:13 -04:00
Marc Sluiter 92ac232790 run update-bazel.sh 2017-06-17 13:24:09 +02:00
Marc Sluiter a71bb87ec7 Added namespace and better pod name in client go example 2017-06-17 13:24:08 +02:00
Marc Sluiter 601ab10dbd Updated error handling example based on PR feedback 2017-06-17 13:24:08 +02:00
Marc Sluiter 8ca1732023 Added example for status errors in go client 2017-06-17 13:24:07 +02:00
Daniel Smith 6ff1a9829d generated files 2017-06-16 16:45:14 -07:00
Daniel Smith cadaaa349a Plumb service resolver to webhook AC 2017-06-16 16:45:14 -07:00
Kubernetes Submit Queue 532cb25d21 Merge pull request #47223 from sttts/sttts-fix-cr-example-link
Automatic merge from submit-queue

Fix cross-repo link

Fixing https://github.com/kubernetes/kubernetes/issues/47211
2017-06-16 16:13:22 -07:00
Kubernetes Submit Queue d7b631a52d Merge pull request #46883 from ahmetb/clientgo-toc
Automatic merge from submit-queue

clientgo/examples: add ToC for examples

Also add authenticate- prefix to auth samples. This patch could use some
improvement explaining workqueue and TPR examples as I'm not entirely sure.

/assign @caesarxuchao

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-06-16 14:14:26 -07:00
Kubernetes Submit Queue ad4d965711 Merge pull request #46961 from zjj2wry/api_describe
Automatic merge from submit-queue

Fix api description

**What this PR does / why we need it**:
prefered ->  preferred
the the ->  the

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #

**Special notes for your reviewer**:

**Release note**:

```release-note
NONE
```
2017-06-16 12:19:08 -07:00
Kubernetes Submit Queue 464831e240 Merge pull request #47557 from janetkuo/hash-label-rename
Automatic merge from submit-queue (batch tested with PRs 46884, 47557)

Rename DaemonSet and StatefulSet hash label

**What this PR does / why we need it**:

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #47554

**Special notes for your reviewer**:

**Release note**:

```release-note
NONE
```

/assign @kow3ns 
/cc @bgrant0607 
@kubernetes/sig-apps-api-reviews
2017-06-16 11:34:01 -07:00
Janet Kuo 25a67fc5cd Rename DaemonSet and StatefulSet hash label
Make them share the same hash label "controller-revision-hash", for
consistency
2017-06-15 18:04:27 -07:00
Huamin Chen ca65a6d151 rebase gophercloud to support HTTP status 300 in pagination, so listing Cinder v1/v2 API versions won't break
Signed-off-by: Huamin Chen <hchen@redhat.com>
2017-06-15 20:23:26 +00:00
Matt Liggett f6bcac3fec Add version and flag info to apiserver and CM logs.
Should help debugging.
Specifically for #45706
2017-06-15 11:38:11 -07:00
Kubernetes Submit Queue 08c705e875 Merge pull request #46800 from deads2k/agg-33-priority
Automatic merge from submit-queue (batch tested with PRs 47492, 47542, 46800, 47545, 45764)

separate group and version priority

Fixes https://github.com/kubernetes/kubernetes/issues/46322


This just modifies the API and does the minimal plumbing.  I can extend this pull or do another to fix the priority problem.
2017-06-14 21:43:44 -07:00
Kubernetes Submit Queue 791380664e Merge pull request #47537 from sakshamsharma/fix/typo_secretbox_prefix
Automatic merge from submit-queue (batch tested with PRs 47510, 47516, 47482, 47521, 47537)

Fix typo in secretbox transformer prefix

Introduced by #46916 via cherry picked commit [here](12bb591dbf).

Urgent fix in my opinion, ideally should be merged before production.

@smarterclayton
2017-06-14 20:32:51 -07:00
Kubernetes Submit Queue d2eb68c4a5 Merge pull request #47432 from deads2k/crd-13-gc-off
Automatic merge from submit-queue (batch tested with PRs 47204, 46808, 47432, 47400, 47099)

disable GC for custom resources

xref https://github.com/kubernetes/kubernetes/issues/47431

This prevents GC on CustomResources so you don't get an uncleared finalizer that prevents deletion
2017-06-14 17:13:58 -07:00
Saksham Sharma 2c820c2050 Fix typo in secretbox transformer prefix 2017-06-14 11:45:57 -07:00
deads2k 963c85e1c8 sort current API versions and fallback for others 2017-06-14 09:29:44 -04:00
deads2k d13ad28420 add group priority to apiservice 2017-06-14 09:29:44 -04:00
Kubernetes Submit Queue be0a5f75d5 Merge pull request #47457 from timstclair/audit-objref
Automatic merge from submit-queue (batch tested with PRs 47073, 47457, 47479)

audit: Fill in full ObjectRef, include in LevelMetadata

The previous implementation was missing several ObjectReference fields, including `APIVersion`, `Resource`, and `Subresource`. This PR adds those fields, and also fills in the `ObjectRef` when the level is `Metadata` (previously it was only filled for level `Request`).

For kubernetes/features#22

/cc @ericchiang @ihmccreery
2017-06-14 01:52:14 -07:00
Tim St. Clair 28beb4572e
audit: Fill in full ObjectRef, include in LevelMetadata 2017-06-14 00:46:04 -07:00
Kubernetes Submit Queue 4319f0fe5e Merge pull request #47302 from CaoShuFeng/leak_socket_file
Automatic merge from submit-queue (batch tested with PRs 47302, 47389, 47402, 47468, 47459)

remove leaked socket file in unit test

Fixes #47301


**Release note**:

```
NONE
```
2017-06-13 23:37:41 -07:00
Ahmet Alp Balkan 62d1251874
clientgo/examples: add ToC for examples
Also add authenticate- prefix to auth samples.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-06-13 15:48:40 -07:00
Kubernetes Submit Queue 7560142e27 Merge pull request #47276 from kow3ns/rm-partition-strategy
Automatic merge from submit-queue (batch tested with PRs 46441, 43987, 46921, 46823, 47276)

Remove PartitionStatefulSetStrategyType

This PR removes PartitionStatefulSetStrategyType add adds a parameter to RollingUpdateStatefulSetStrategyType as described in the issue below. We need this PR to ensure that the StatefulSet API conforms to the existing API for DaemonSet.

fixes #46975
```release-note
NONE
```
@kargakis 
@smarterclayton 
@janetkuo
2017-06-13 13:55:53 -07:00
Kubernetes Submit Queue 72a046d858 Merge pull request #43987 from cosmincojocar/azure_plugin_for_client_auth
Automatic merge from submit-queue (batch tested with PRs 46441, 43987, 46921, 46823, 47276)

Azure plugin for client auth

This is an Azure Active Directory plugin for client authentification. It provides an integration with Azure CLI 2.0 login command. It can also be used standalone, in that case it will use the device code flow to acquire an access token. 

More details are provided in the README.md file. 

https://github.com/kubernetes/kubectl/issues/29

cc @brendandburns @colemickens
2017-06-13 13:55:45 -07:00
Kubernetes Submit Queue e58bc88c55 Merge pull request #46929 from CaoShuFeng/extra_newline
Automatic merge from submit-queue (batch tested with PRs 46929, 47391, 47399, 47428, 47274)

Remove empty lines from log

Everything() returns a new line end with "\n", it's not necessary
to add another one.
**Release note**:

```
NONE
```
2017-06-13 10:52:06 -07:00
deads2k 1da8f67560 disable GC for custom resources 2017-06-13 10:40:58 -04:00
Kubernetes Submit Queue 456293ba0c Merge pull request #45545 from ocadotechnology/44461-gophercloud-bump
Automatic merge from submit-queue (batch tested with PRs 46678, 45545, 47375)

update gophercloud/gophercloud dependency

**What this PR does / why we need it**:

**Which issue this PR fixes** 
fixes #44461

**Special notes for your reviewer**:

**Release note**:

```release-note
update gophercloud/gophercloud dependency for reauthentication fixes
```
2017-06-12 20:32:39 -07:00
Kenneth Owens 37a54d521a Generated code 2017-06-12 10:08:46 -07:00
p0lyn0mial 1feca6e28b shows how to wire admission control in a sample api server. 2017-06-12 18:32:32 +02:00
Dr. Stefan Schimanski 2aa87e4fee Fix cross-repo link 2017-06-12 09:40:16 +02:00
Kubernetes Submit Queue a648e10910 Merge pull request #47246 from gyliu513/container-image
Automatic merge from submit-queue

Made image as required in v1 Container struct.

**What this PR does / why we need it**:

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #47244 

**Special notes for your reviewer**:

**Release note**:

```release-note
none
```
2017-06-11 16:17:36 -07:00
Kubernetes Submit Queue df1e289888 Merge pull request #47004 from ixdy/bazel-stamp-multiple-packages
Automatic merge from submit-queue

bazel: stamp multiple packages by using x_defs instead of linkstamp in go_binary rules

**What this PR does / why we need it**: Fixes regression introduced sometime in the last few months that prevented bazel-built clusters from identifying version properly. 

It does so by updating the bazelbuild/rules_go and kubernetes/repo-infra dependencies to support using stamp values in `go_binary` `x_defs`, and then changing our `go_binary` rules to use `x_defs` instead of `linkstamp`.

This whole charade is necessary because we need to stamp version information in multiple packages.

This pretty much only affects the bazel build, so it should be low risk.

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #45298

**Special notes for your reviewer**: depends on https://github.com/kubernetes/repo-infra/pull/18; should not be merged before it.

**Release note**:

```release-note
NONE
```

/assign @spxtr @mikedanese
2017-06-11 00:33:13 -07:00
Cao Shufeng 2c19b9e143 remove leaked socket file in unit test 2017-06-11 14:07:32 +08:00
Cao Shufeng 3816b6fde5 Remove extra empty lines from log
remove extra "\n" from Everything()
2017-06-11 10:32:39 +08:00
Guangya Liu 4250c5d3f4 Update client-go. 2017-06-10 02:56:19 -04:00
Kubernetes Submit Queue 9df40c3661 Merge pull request #42156 from croomes/storageos
Automatic merge from submit-queue

StorageOS Volume Plugin

**What this PR does / why we need it**:
This PR adds a new volume plugin for StorageOS volumes.  StorageOS runs as a container on Kubelet nodes, aggregating local or attached storage and making its capacity available to all nodes within the cluster. More information at http://storageos.com.

The StorageOS plugin supports:

1. Dynamic Provisioning using Storage Classes
2. Persistent Volumes and Persistent Volume Claims.

**Which issue this PR fixes**
A feature request has been created:
https://github.com/kubernetes/features/issues/190

This isn't on the schedule for 1.6 as I wasn't sure when it would be ready.  We intend to make the StorageOS container openly available within the 1.6 lifetime.

**Special notes for your reviewer**:

Separate commits for feature and godep changes.

**Release note**:
```release-note
StorageOS Volume Driver
[StorageOS](http://www.storageos.com) can be used as a storage provider for Kubernetes.  With StorageOS, capacity from local or attached storage is pooled across the cluster, providing converged infrastructure for cloud-native applications. 
```
2017-06-09 18:25:04 -07:00
Kubernetes Submit Queue 25aed0a631 Merge pull request #47251 from sttts/sttts-dynamic-client-getoptions
Automatic merge from submit-queue (batch tested with PRs 36376, 47251)

client-go: GetOptions for dynamic client

Looks like `GetOptions` were forgotten in the dynamic client. Without them it's hard to write a dynamic initializer controller (useful for custom resources).
2017-06-09 11:24:41 -07:00
Kubernetes Submit Queue d26bfda9b6 Merge pull request #47189 from sttts/sttts-aggregator-transport-cleanup
Automatic merge from submit-queue (batch tested with PRs 47113, 46665, 47189)

kube-apiserver: cleanup node proxy setup code

Follow-up of https://github.com/kubernetes/kubernetes/pull/46680, fixing #46679

- move `proxyTransport` from `New` func to config
- use self-explaining variable names
- remove redundant temporary var
- make `CreateNodeDialer` side-effect-free
- make imports follow conventions
- lower-case error messages
2017-06-09 10:26:44 -07:00
Dr. Stefan Schimanski 30668b24fb client-go: GetOptions for dynamic client 2017-06-09 18:04:17 +02:00
Simon Croome 5e2503e71f Add StorageOS volume plugin 2017-06-09 13:19:27 +01:00
Kubernetes Submit Queue 8c2a07fa1f Merge pull request #45575 from wanghaoran1988/fix_44476
Automatic merge from submit-queue

Make gcp auth provider not to override the Auth header if it's already exits

**What this PR does / why we need it**:
Make AuthProvider not wrap the transport if beartoken or basic auth is enabled
**Which issue this PR fixes** :
 fixes #44476 

**Special notes for your reviewer**:

**Release note**:
```
GCP auth plugin no longer overwrites existing Authorization headers.
```
2017-06-08 23:47:03 -07:00
Kubernetes Submit Queue 9f23149a52 Merge pull request #44965 from jpeeler/podpreset-exclusion-simple
Automatic merge from submit-queue

Allow pods to opt out of PodPreset mutation via an annotation on the pod

An annotation in the pod spec of the form:
podpreset.admission.kubernetes.io/PodPresetOptOut: "true"
Will cause the admission controller to skip manipulating the pod spec,
no matter the labelling.

This is an alternative implementation to pull #44163.

```release-note
Allow pods to opt out of PodPreset mutation via an annotation on the pod.
```
2017-06-08 22:57:34 -07:00
zhengjiajin f7ce20d2e4 Fix api description 2017-06-09 10:27:53 +08:00
Jeff Grafton 64bd79fad7 Convert go_binary linkstamp to x_defs 2017-06-08 14:59:55 -07:00
Kubernetes Submit Queue a5affa8d86 Merge pull request #47065 from deads2k/server-26-impersonate-test
Automatic merge from submit-queue

test header removal for impersonation

Fixes https://github.com/kubernetes/kubernetes/issues/37722

Adds a test that fails if the headers aren't removed.

@lavalamp per request
2017-06-08 13:04:26 -07:00
Dawn Chen acabdc4679 Merge pull request #47191 from liggitt/revert-gzip
Revert "add gzip compression to GET and LIST requests"
2017-06-08 11:50:39 -07:00
Kubernetes Submit Queue d31c946f31 Merge pull request #46970 from shiywang/cdr
Automatic merge from submit-queue (batch tested with PRs 46559, 46970)

Add e2e test that ensures that CRDs work in kube-apiserver

part of https://github.com/kubernetes/kubernetes/issues/45511
2017-06-08 11:43:04 -07:00
Jordan Liggitt 63e3e2fa7b
Revert "add gzip compression to GET and LIST requests"
This reverts commit fc650a54d0.
2017-06-08 13:26:05 -04:00
Dr. Stefan Schimanski 342a8fc657 kube-apiserver: cleanup node proxy setup code 2017-06-08 18:20:16 +02:00
Shiyang Wang f7ae22ab8e e2e test that ensures that CRDs work in kube-apiserver 2017-06-08 21:28:04 +08:00
Kubernetes Submit Queue 5404948e7b Merge pull request #47041 from k82cn/k8s_10043
Automatic merge from submit-queue

Deprecated binding for 1.7

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #10043

```release-note
Deprecated Binding objects in 1.7.
```
2017-06-07 23:10:38 -07:00
Klaus Ma 6ad529be3e generated client-go. 2017-06-08 10:53:25 +08:00
Kubernetes Submit Queue d16d64f620 Merge pull request #46916 from smarterclayton/secretbox
Automatic merge from submit-queue (batch tested with PRs 46979, 47078, 47138, 46916)

Add a secretbox and AES-CBC path for encrypt at rest

Add a secretbox and AES-CBC encrypt at rest provider and alter the config, based on feedback from security review.  AES-CBC is more well reviewed and generally fits better with common criteria and FIPS, secretbox is newer and faster than CBC.

```release-note
Add secretbox and AES-CBC encryption modes to at rest encryption.  AES-CBC is considered superior to AES-GCM because it is resistant to nonce-reuse attacks, and secretbox uses Poly1305 and XSalsa20.
```
2017-06-07 19:01:53 -07:00
Kubernetes Submit Queue 1901cf8a37 Merge pull request #47138 from smarterclayton/delete_collection
Automatic merge from submit-queue (batch tested with PRs 46979, 47078, 47138, 46916)

DeleteCollection should include uninitialized resources

Users who delete a collection expect all resources to be deleted, and
users can also delete an uninitialized resource. To preserve this
expectation, DeleteCollection selects all resources regardless of
initialization.

The namespace controller should list uninitialized resources in order to
gate cleanup of a namespace.

Fixes #47137
2017-06-07 19:01:47 -07:00
Kubernetes Submit Queue 914f5d659e Merge pull request #47003 from aveshagarwal/master-scheduler-aggregate-errors-issue
Automatic merge from submit-queue (batch tested with PRs 45877, 46846, 46630, 46087, 47003)

Remove duplicate errors from an aggregate error input.

This PR, in general, removes duplicate errors from an aggregate error input, and returns unique errors with their occurrence count. Specifically,  this PR helps with some scheduler errors that fill the log enormously. For example, see the following `truncated` output from a 300-plus nodes cluster, as there was a same error from almost all nodes.


[SchedulerPredicates failed due to persistentvolumeclaims "mongodb" not found, which is unexpected., SchedulerPredicates failed due to persistentvolumeclaims "mongodb" not found, which is unexpected., SchedulerPredicates failed due to persistentvolumeclaims "mongodb" not found, which is unexpected., SchedulerPredicates failed due to persistentvolumeclaims "mongodb" not found, which is unexpected., SchedulerPredicates failed due to persistentvolumeclaims "mongodb" not found, which is unexpected., SchedulerPredicates failed due to persistentvolumeclaims "mongodb" not found, which is unexpected., SchedulerPredicates failed due to persistentvolumeclaims "mongodb" not found, which is unexpected., SchedulerPredicates failed due to persistentvolumeclaims "mongodb" not found, which is unexpected., SchedulerPredicates failed due to persistentvolumeclaims "mongodb" not found, which is unexpected., SchedulerPredicates failed due to persistentvolumeclaims "mongodb" not found, which is unexpected., SchedulerPredicates failed due to persistentvolumeclaims "mongodb" not found, which is unexpected., SchedulerPredicates failed due to persistentvolumeclaims "mongodb" not found, which is unexpected., SchedulerPredicates failed due to persistentvolumeclaims "mongodb" not found, which is unexpected., SchedulerPredicates failed due to persistentvolumeclaims "mongodb" not found, which is unexpected., SchedulerPredicates failed due to persistentvolumeclaims "mongodb" not found, which is unexpected., SchedulerPredicates failed due to persistentvolumeclaims "mongodb" not found, which is unexpected., SchedulerPredicates failed due to persistentvolumeclaims "mongodb" not found, which is unexpected., SchedulerPredicates failed due to persistentvolumeclaims "mongodb" not found.........

After this PR, the output looks like (on a 2-node cluster):

SchedulerPredicates failed due to persistentvolumeclaims "mongodb" not found, which is unexpected.(Count=2)

@derekwaynecarr @smarterclayton @kubernetes/sig-scheduling-pr-reviews 

Fixes https://github.com/kubernetes/kubernetes/issues/47145
2017-06-07 17:55:52 -07:00
Kubernetes Submit Queue 20bf5f2311 Merge pull request #47086 from enisoc/crd-namespace-cleanup
Automatic merge from submit-queue (batch tested with PRs 47024, 47050, 47086, 47081, 47013)

apiextensions-apiserver: Fix decoding of DeleteOptions.

Fixes #47072 by making apiextensions-apiserver capable of decoding unversioned DeleteOptions, rather than only handling Unstructured objects (i.e. Custom Resources).

This also closes #46736 and #37554 since the added regression test works for TPR as well.
2017-06-07 16:53:43 -07:00
Kubernetes Submit Queue 43295501a3 Merge pull request #47050 from sttts/sttts-deprecate-tpr-example
Automatic merge from submit-queue (batch tested with PRs 47024, 47050, 47086, 47081, 47013)

client-go: deprecate TPR example and add CRD example

/cc @nilebox

Part of https://github.com/kubernetes/kubernetes/issues/46702
2017-06-07 16:53:40 -07:00
Kubernetes Submit Queue 507ca73218 Merge pull request #47024 from CaoShuFeng/legacy_hijack
Automatic merge from submit-queue

[legacy audit] add response audit for hijack

Fixes #47097
**Release note**:

```
NONE
```
2017-06-07 16:32:32 -07:00
Clayton Coleman 9ad1f80fdc
DeleteCollection should include uninitialized resources
Users who delete a collection expect all resources to be deleted, and
users can also delete an uninitialized resource. To preserve this
expectation, DeleteCollection selects all resources regardless of
initialization.

The namespace controller should list uninitialized resources in order to
gate cleanup of a namespace.
2017-06-07 17:50:57 -04:00
Avesh Agarwal 667ed4ef51 Remove duplicate errors from an aggregate error input.
Helps with some scheduler errors that fill the log enormously.
2017-06-07 15:33:43 -04:00
Kyâne Pichou 7adf8d8cac Fix a typo in deletion log of apiserver 2017-06-07 19:08:29 +02:00
Anthony Yeh 0921c9a12a
apiextensions-apiserver: Fix decoding of DeleteOptions. 2017-06-07 08:58:55 -07:00
Saksham Sharma 1307340742
Add configuration for AESCBC, Secretbox encryption
Add tests for new transformers
2017-06-07 11:11:43 -04:00
Dr. Stefan Schimanski e2b50ac9b8 client-go: deprecate TPR example and add CRD example 2017-06-07 13:45:58 +02:00
Cao Shufeng cf8e3ccf19 Add Validate() function for audit options 2017-06-07 16:53:02 +08:00
Kubernetes Submit Queue 0613ae5077 Merge pull request #46669 from kow3ns/statefulset-update
Automatic merge from submit-queue (batch tested with PRs 46235, 44786, 46833, 46756, 46669)

implements StatefulSet update

**What this PR does / why we need it**:
1. Implements rolling update for StatefulSets
2. Implements controller history for StatefulSets.
3. Makes StatefulSet status reporting consistent with DaemonSet and ReplicaSet.

https://github.com/kubernetes/features/issues/188

**Special notes for your reviewer**:

**Release note**:
```release-note
Implements rolling update for StatefulSets. Updates can be performed using the RollingUpdate, Paritioned, or OnDelete strategies. OnDelete implements the manual behavior from 1.6. status now tracks 
replicas, readyReplicas, currentReplicas, and updatedReplicas. The semantics of replicas is now consistent with DaemonSet and ReplicaSet, and readyReplicas has the semantics that replicas did prior to this release.
```
2017-06-07 00:27:53 -07:00
Kubernetes Submit Queue d3b740bf28 Merge pull request #47060 from deads2k/crd-12-prefix
Automatic merge from submit-queue

Fix etcd storage location for CRs

Fixes https://github.com/kubernetes/kubernetes/issues/46031

The first commit is easy, the second commit is hard.  

@sttts Read the second commit very carefully and search the repo to make sure that you agree this is only affecting aggregator and apiextensions.

@pmorie @derekwaynecarr make sure you check to see if service catalog is double prefixing.  Looks like we missed it in 1.6, but no one was using it.
2017-06-06 21:46:35 -07:00
Cao Shufeng 9212b0240d [legacy audit] add response audit for hijack 2017-06-07 10:17:40 +08:00
Kubernetes Submit Queue 683b7ff81a Merge pull request #47082 from wojtek-t/fix_node_conflicts
Automatic merge from submit-queue (batch tested with PRs 47083, 44115, 46881, 47082, 46577)

Revert "Optimize selector for single-matching items"

This reverts commit f93a270edc.

Fix: #46851

@smarterclayton 

The problem was that removing the requirement from the predicate resulted in not using "trigger" function in Cacher, which is super critical for performance. And this was messed up.
2017-06-06 18:48:18 -07:00
Kubernetes Submit Queue 379a15a478 Merge pull request #46881 from smarterclayton/fixes_to_table_print
Automatic merge from submit-queue (batch tested with PRs 47083, 44115, 46881, 47082, 46577)

Add an e2e test for server side get

Print a better error from the response. Performs validation to ensure it
does not regress in alpha state.

This is tests and bug fixes for https://github.com/kubernetes/community/pull/363

@kubernetes/sig-api-machinery-pr-reviews
2017-06-06 18:48:16 -07:00
Wojciech Tyczynski dbafff3eea Revert "Optimize selector for single-matching items"
This reverts commit f93a270edc.
2017-06-06 23:26:28 +02:00
Clayton Coleman 395399ab3d
Add an AES-CBC mode for encrypt at rest 2017-06-06 16:47:25 -04:00
Kenneth Owens 1a784ef86f Auto generated code for StatefulSet update 2017-06-06 13:47:19 -07:00
Kubernetes Submit Queue 6ed4bc7b97 Merge pull request #46828 from cblecker/links-update
Automatic merge from submit-queue (batch tested with PRs 46718, 46828, 46988)

Update docs/ links to point to main site

**What this PR does / why we need it**:
This updates various links to either point to kubernetes.io or to the kubernetes/community repo instead of the legacy docs/ tree in k/k
Pre-requisite for #46813

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #

**Special notes for your reviewer**:

**Release note**:
```release-note
NONE
```

@kubernetes/sig-docs-maintainers @chenopis @ahmetb @thockin
2017-06-06 11:43:18 -07:00
Kubernetes Submit Queue 6e9ff11582 Merge pull request #46718 from deads2k/crd-08-serialization
Automatic merge from submit-queue (batch tested with PRs 46718, 46828, 46988)

handle unversioned objects for encoding for CRs

Fixes https://github.com/kubernetes/kubernetes/issues/47036

This updates the encoding for "special" types like `Status` when coming back through the CR APIs.  It also closes a bug this allowed to be exposed in validation for CRs

xref: https://github.com/kubernetes/features/issues/95
2017-06-06 11:43:15 -07:00
deads2k 38c25393df test header removal for impersonation 2017-06-06 14:08:23 -04:00
deads2k bc3434c084 change the default storage location to avoid double prefixing 2017-06-06 13:28:08 -04:00
deads2k 6cb18cae82 remove extra prefix from CRs 2017-06-06 13:25:54 -04:00
Clayton Coleman 23cd6c52ba
Add a secretbox implementation for encryption
Uses nacl/secretbox
2017-06-06 10:50:38 -04:00
Clayton Coleman 868cdeca8a
bump(golang.org/x/crypto/nacl):d172538b2cfce0c13cee31e647d0367aa8cd2486 2017-06-06 10:50:37 -04:00
Kubernetes Submit Queue cc568f6433 Merge pull request #45666 from ilackarms/compression
Automatic merge from submit-queue

add gzip compression to GET and LIST requests

Fixes https://github.com/kubernetes/kubernetes/issues/44164



Enable compressed response bodies for non-watch GET and LIST requests on API Objects.

**What this PR does / why we need it**: Adds compression via Accept-Encoding header, returns Content-Encoding header on responses (only supports gzip at this time). Enabled solely for GET and LIST requests which can return very large response bodies. 

**Special notes for your reviewer**:

See https://github.com/kubernetes/kubernetes/issues/44164 for discussion.

**Release note**:

```release-note-
```
2017-06-06 07:43:03 -07:00
deads2k 6c391607de handle unversioned objects for encoding for CRs 2017-06-06 10:20:50 -04:00
deads2k c0aaf94159 enforce proper TypeMeta 2017-06-06 10:09:37 -04:00
stuart.warren af28a43a65 commit staging godeps 2017-06-06 15:01:56 +01:00
Kubernetes Submit Queue 04477ff90c Merge pull request #46775 from sttts/sttts-rename-kube-apiext-server
Automatic merge from submit-queue

Rename {kube- ->}apiextensions-{-> api}server

Completely mechanical renaming, as preparation of the repo sync. This repo is generic, the prefix does not make sense.

Part of issue https://github.com/kubernetes/kubernetes/issues/46702

TODOs
- [ ] Waiting for the submit queue to settle, then rebase.
2017-06-06 06:46:34 -07:00
Scott Weiss fc650a54d0 add gzip compression to GET and LIST requests
closes #44164
2017-06-06 08:42:21 -04:00
Kubernetes Submit Queue 5633d7595c Merge pull request #46854 from CaoShuFeng/jijacker
Automatic merge from submit-queue (batch tested with PRs 46897, 46899, 46864, 46854, 46875)

[advanced audit] fix invalid status code for hijacker

Fixes #47035

When using hijacker to take over the connection, the http status code
should be 101 not 200.

PS:
Use "kubectl exec" as an example to review this change.

Part of https://github.com/kubernetes/features/issues/22
2017-06-06 05:22:47 -07:00
Kubernetes Submit Queue f01fd32301 Merge pull request #46974 from liggitt/cert-filename
Automatic merge from submit-queue (batch tested with PRs 46112, 46764, 46727, 46974, 46968)

Avoid * in filenames

Fixes #46958
2017-06-06 03:17:46 -07:00
Kubernetes Submit Queue b238d3e6c5 Merge pull request #46764 from CaoShuFeng/audit-empty-policy-file
Automatic merge from submit-queue (batch tested with PRs 46112, 46764, 46727, 46974, 46968)

empty audit policy file is legal configuration

Empty audit policy file or policy file contains only comments means
using default audit level for all requests.

**Release note**:

```
NONE
```

Part of https://github.com/kubernetes/features/issues/22
2017-06-06 03:17:41 -07:00
Kubernetes Submit Queue 8da89aeb00 Merge pull request #46112 from sttts/sttts-unversioned-to-meta
Automatic merge from submit-queue

apimachinery: move unversioned registration to metav1

Follow-up from the discussions in https://github.com/kubernetes/kubernetes/pull/43027:

We need `Status` as unversioned type which is hardcoded to `GroupVersion{Group: "", Version: "v1"}`. If the core group is not in the scheme, we miss `Status`.

Fixing https://github.com/kubernetes/kubernetes/issues/47030.
2017-06-06 03:13:01 -07:00
Dr. Stefan Schimanski 33e50da9f4 Rename {kube- ->}apiextensions-{-> api}server 2017-06-06 12:06:31 +02:00
Kubernetes Submit Queue cb681321c7 Merge pull request #45686 from jingxu97/May/emptyDir
Automatic merge from submit-queue

Add EmptyDir volume capacity isolation

This PR adds the support for isolating the emptyDir volume use. If user
sets a size limit for emptyDir volume, kubelet's eviction manager monitors its usage
and evict the pod if the usage exceeds the limit.

This feature is part of local storage capacity isolation and described in the proposal kubernetes/community#306

**Release note**:

```release-note
Alpha feature: allows users to set storage limit to isolate EmptyDir volumes. It enforces the limit by evicting pods that exceed their storage limits  
```
2017-06-05 23:08:58 -07:00
Christoph Blecker 1bdc7a29ae
Update docs/ URLs to point to proper locations 2017-06-05 22:13:54 -07:00
Kubernetes Submit Queue a552ee61a0 Merge pull request #46672 from smarterclayton/initializer_with_config
Automatic merge from submit-queue (batch tested with PRs 46967, 46992, 43338, 46717, 46672)

Select initializers from the dynamic configuration

Continues #36721

kubernetes/features#209
2017-06-05 20:27:50 -07:00
Kubernetes Submit Queue 5ece6470b3 Merge pull request #46717 from timstclair/audit-proto
Automatic merge from submit-queue (batch tested with PRs 46967, 46992, 43338, 46717, 46672)

Generate protobuf for the audit API

Add protobuf generation & annotations for the advanced auditing API. We're not using them directly now, but settling on the field numbering will help with some 3rd party integrations.

For kubernetes/features#22

/cc @ihmccreery
2017-06-05 20:27:48 -07:00
Kubernetes Submit Queue 6b50a5cb39 Merge pull request #43338 from fabianofranz/group_aliases_in_api
Automatic merge from submit-queue (batch tested with PRs 46967, 46992, 43338, 46717, 46672)

Add group alias names to API resources to allow discovery

**What this PR does / why we need it**: 
Adds `GroupNames []string` to API resources, which represents the list of group aliases that every resource belongs to. 

Partially fixes https://github.com/kubernetes/kubernetes/issues/41353

This moves the logic of "all" (which currently [translates](fbc94c0896/pkg/kubectl/cmd/util/shortcut_restmapper.go (L106)) to "pods,replicationcontrollers,services,...") to the server-side. Will allow clients like `kubectl` to discover group aliases instead of having it hardcoded and the API server to better handle consistency across multiple clients, version skew, etc; and will make "all" un-special and allow other groups to be created.

As a follow-up we'll patch `kubectl` to make groups aliases discoverable and the hardcoded list a fallback while we still have to support it.

Related to https://github.com/kubernetes/kubernetes/pull/42595#issuecomment-286839885.

**Release note**:
```release-note
Adds the `Categories []string` field to API resources, which represents the list of group aliases (e.g. "all") that every resource belongs to. 
```
@kubernetes/sig-api-machinery-misc @deads2k @bgrant0607
2017-06-05 20:27:46 -07:00
Kubernetes Submit Queue f1dfda1fe6 Merge pull request #46967 from deads2k/crd-11-ns-wait
Automatic merge from submit-queue (batch tested with PRs 46967, 46992, 43338, 46717, 46672)

deflake CRD watch tests

Fixes https://github.com/kubernetes/kubernetes/issues/46446. Again...

This flake window is caused by the watch cache starting late.  This pull updates the test to do fancy list/create/watch/delete semantics to catch the problem.  In the field, this should be treated the same as any other "resourceVersion tool old" error and handled with a list/watch.  The test cannot be level driven, it is actually testing the edge behavior, so we have to do something weird like this.

@sttts @liggitt let's try this again...
2017-06-05 20:27:42 -07:00
Kubernetes Submit Queue 61cd3fca01 Merge pull request #46683 from atlassian/fix-untructured-owner-references
Automatic merge from submit-queue (batch tested with PRs 44883, 46836, 46765, 46683, 46050)

Fix round-trip of Unstructured.OwnerReferences

**What this PR does / why we need it**:
Previously `setOwnerReference()` was storing pointers but `extractOwnerReference()` is expecting pointer fields as plain values so it cannot read those pointers. And hence you cannot read what you've just stored.

**Which issue this PR fixes**
#46817

**Special notes for your reviewer**:
This is similar to #43346.

**Release note**:
```release-note
NONE
```
2017-06-05 18:43:13 -07:00
Kubernetes Submit Queue 0589c55e7c Merge pull request #46836 from CaoShuFeng/legacy_audit
Automatic merge from submit-queue (batch tested with PRs 44883, 46836, 46765, 46683, 46050)

update copyed doc for advanced audit

doc for WithAudit is copyed from WithLegacyAudit, it's out of date.
This change update doc for these two functions.

**Release note**:

```
NONE
```
2017-06-05 18:43:08 -07:00
Kubernetes Submit Queue 56da71bb34 Merge pull request #46844 from sttts/sttts-invalid-query-params
Automatic merge from submit-queue (batch tested with PRs 46972, 42829, 46799, 46802, 46844)

apiserver: return BadRequest 400 for invalid query params

Fixes https://github.com/kubernetes/kubernetes/issues/39730
Replaces #40773.
2017-06-05 17:46:57 -07:00
Kubernetes Submit Queue f893cddfba Merge pull request #46460 from sakshamsharma/location_transformer
Automatic merge from submit-queue (batch tested with PRs 46550, 46663, 46816, 46820, 46460)

Add configuration for encryption providers

## Additions

Allows providing a configuration file (using flag `--experimental-encryption-provider-config`) to use the existing AEAD transformer (with multiple keys) by composing mutable transformer, prefix transformer (for parsing providerId), another prefix transformer (for parsing keyId), and AES-GCM transformers (one for each key). Multiple providers can be configured using the configuration file.

Example configuration:
```
kind: EncryptionConfig
apiVersion: v1
resources:
  - resources:
    - namespaces
    providers:
    - aes:
        keys:
        - name: key1
          secret: c2vjcmv0iglzihnly3vyzq==
        - name: key2
          secret: dghpcybpcybwyxnzd29yza==
    - identity: {}
```

Need for configuration discussed in:
#41939
[Encryption](3418b4e4c6/contributors/design-proposals/encryption.md)

**Pathway of a read/write request**:
1. MutableTransformer
2. PrefixTransformer reads the provider-id, and passes the request further if that matches.
3. PrefixTransformer reads the key-id, and passes the request further if that matches.
4. GCMTransformer tries decrypting and authenticating the cipher text in case of reads. Similarly for writes.

## Caveats
1. To keep the command line parameter parsing independent of the individual transformer's configuration, we need to convert the configuration to an `interface{}` and manually parse it in the transformer. Suggestions on better ways to do this are welcome.

2. Flags `--encryption-provider` and `--encrypt-resource` (both mentioned in [this document](3418b4e4c6/contributors/design-proposals/encryption.md) ) are not supported in this because they do not allow more than one provider, and the current format for the configuration file possibly supersedes their functionality.

3. Currently, it can be tested by adding `--experimental-encryption-provider-config=config.yml` to `hack/local-up-cluster.sh` on line 511, and placing the above configuration in `config.yml` in the root project directory.

Previous discussion on these changes:
https://github.com/sakshamsharma/kubernetes/pull/1

@jcbsmpsn @destijl @smarterclayton

## TODO
1. Investigate if we need to store keys on disk (per [encryption.md](3418b4e4c6/contributors/design-proposals/encryption.md (option-1-simple-list-of-keys-on-disk)))
2. Look at [alpha flag conventions](https://github.com/kubernetes/kubernetes/blob/master/pkg/features/kube_features.go)
3. Need to reserve `k8s:enc` prefix formally for encrypted data. Else find a better way to detect transformed data.
2017-06-05 16:43:48 -07:00
Kubernetes Submit Queue 39d548f40c Merge pull request #46816 from dashpole/update_godep
Automatic merge from submit-queue (batch tested with PRs 46550, 46663, 46816, 46820, 46460)

Update cAdvisor version to v0.26.0

issue: #46658

I have requested a 1 day exception for code freeze.

/assign @dchen1107 

```release-note
Fix disk partition discovery for brtfs
Add ZFS support
Add overlay2 storage driver support
```
2017-06-05 16:43:43 -07:00
Fabiano Franz 39e5812848 Update generated 2017-06-05 20:32:30 -03:00
Fabiano Franz 058f9b4f32 Add group alias names to discovery in registry 2017-06-05 20:18:12 -03:00
Fabiano Franz f07bf05f02 Add group alias names to discovery in API resources 2017-06-05 20:18:12 -03:00
Tim St. Clair d7d5435720
Generate protobuf for the audit API 2017-06-05 16:13:41 -07:00
Clayton Coleman 772ab8e1b4
Load initializers from dynamic config
Handle failure cases on startup gracefully to avoid causing cascading
errors and poor initialization in other components. Initial errors from
config load cause the initializer to pause and hold requests. Return
typed errors to better communicate failures to clients.

Add code to handle two specific cases - admin wants to bypass
initialization defaulting, and mirror pods (which want to bypass
initialization because the kubelet owns their lifecycle).
2017-06-05 19:12:41 -04:00
Jing Xu 0b13aee0c0 Add EmptyDir Volume and local storage for container overlay Isolation
This PR adds two features:
1. add support for isolating the emptyDir volume use. If user
sets a size limit for emptyDir volume, kubelet's eviction manager
monitors its usage
and evict the pod if the usage exceeds the limit.
2. add support for isolating the local storage for container overlay. If
the container's overly usage exceeds the limit defined in container
spec, eviction manager will evict the pod.
2017-06-05 12:05:48 -07:00
Jeff Peeler 08a59530e1 Allow pods to opt out of PodPreset mutation
An annotation in the pod spec of the form:
podpreset.admission.kubernetes.io/exclude: "true"
Will cause the admission controller to skip manipulating the pod spec,
no matter the labelling.

The annotation for a podpreset acting on a pod has also been slightly
modified to contain a podpreset prefix:
podpreset.admission.kubernetes.io/podpreset-{name} = resource version

Fixes #44161
2017-06-05 11:56:30 -04:00
Jordan Liggitt b5e5e93201
Avoid * in filenames 2017-06-05 11:35:06 -04:00
Solly Ross c8fdeb022f Update generated autoscaling files
This commit updates the generated autoscaling files to be up-to-date
with the HPA status condition changes.
2017-06-05 11:21:31 -04:00
deads2k 04de3e6794 deflake CRD watch tests 2017-06-05 10:24:20 -04:00
Kubernetes Submit Queue a72967454d Merge pull request #46734 from mbohlool/aggr
Automatic merge from submit-queue (batch tested with PRs 46734, 46810, 46759, 46259, 46771)

OpenAPI aggregation for kube-aggregator

This PR implements OpenAPI aggregation layer for kube-aggregator. On each API registration, it tries to download swagger.spec of the user api server. On failure it will try again next time (either on another add or get /swagger.* on aggregator server) up to five times. To merge specs, it first remove all unrelated paths from the downloaded spec (anything other than group/version of the API service) and then remove all unused definitions. Adding paths are straightforward as they won't have any conflicts, but definitions will most probably have conflicts. To resolve that, we would reused any definition that is not changed (documentation changes are fine) and rename the definition otherwise.

To use this PR, kube aggregator should have nonResourceURLs (for get verb) to user apiserver.

```release-note
Support OpenAPI spec aggregation for kube-aggregator
```

fixes: #43717
2017-06-05 06:51:20 -07:00
Kubernetes Submit Queue 04acd91a0d Merge pull request #45871 from YuPengZTE/devTestAddKnownTypesIdemPotent
Automatic merge from submit-queue

delete the useless "gv" in Errorf

Signed-off-by: yupengzte <yu.peng36@zte.com.cn>



**What this PR does / why we need it**:
Fix "no formatting directive in Errorf call"
**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #

**Special notes for your reviewer**:

**Release note**:

```release-note
```
2017-06-05 02:54:14 -07:00
mbohlool 63e3e84e7e Update proto 2017-06-04 21:54:11 -07:00
mbohlool c2f2a33dc5 Update Bazel 2017-06-04 21:54:11 -07:00
mbohlool 1a1d9a0394 Aggregate OpenAPI specs 2017-06-04 21:54:11 -07:00
mbohlool fccff9adb6 Enable OpenAPI definition generation for apiregistration 2017-06-04 21:54:10 -07:00
mbohlool 0a886ffaf8 Separate Build and Serving parts of OpenAPI spec handler 2017-06-04 21:54:10 -07:00
mbohlool ef8ee84cd0 Remove unused servePath from GetOperationIDAndTags and GetDefinitionName 2017-06-04 21:54:10 -07:00
David Ashpole 56f53b9207 update prometheus dependency for staging 2017-06-04 15:00:23 -07:00
Kubernetes Submit Queue f28fe811ad Merge pull request #46680 from cheftako/aggregate
Automatic merge from submit-queue (batch tested with PRs 46681, 46786, 46264, 46680, 46805)

Enable Dialer on the Aggregator

Centralize the creation of the dialer during startup.
Have the dialer then passed in to both APIServer and Aggregator.
Aggregator the uses the dialer as its Transport base.

**What this PR does / why we need it**:Enables the Aggregator to use the Dialer/SSHTunneler to connect to the user-apiserver.

**Which issue this PR fixes** : fixes ##46679

**Special notes for your reviewer**:

**Release note**: None
2017-06-03 21:16:46 -07:00
Kubernetes Submit Queue 09702160b0 Merge pull request #46264 from Q-Lee/annotate
Automatic merge from submit-queue (batch tested with PRs 46681, 46786, 46264, 46680, 46805)

Add annotation for image policy webhook fail open.

**What this PR does / why we need it**: there's no good way to audit log if binary verification fails open. Adding an annotation can solve that, and provide a useful tool to audit [non-malicious] containers.

**Release note**: add the annotation "alpha.image-policy.k8s.io/failed-open=true" to pods created when the image policy webhook fails open.

```release-note
Add the `alpha.image-policy.k8s.io/failed-open=true` annotation when the image policy webhook encounters an error and fails open.
```
2017-06-03 21:16:43 -07:00
Kubernetes Submit Queue fb4f44dca6 Merge pull request #46751 from liggitt/sni-cert-test
Automatic merge from submit-queue (batch tested with PRs 40760, 46706, 46783, 46742, 46751)

Pre-generate SNI test certs

Pre-generates test certs for SNI tests, since doing this dynamically can take a loooong time in entropy-starved or CPU-bound test envs (like in a container).
2017-06-03 18:30:46 -07:00
Kubernetes Submit Queue 17f0918bb9 Merge pull request #46742 from caesarxuchao/update-gengo
Automatic merge from submit-queue (batch tested with PRs 40760, 46706, 46783, 46742, 46751)

Update gengo to the latest
2017-06-03 18:30:44 -07:00
Kubernetes Submit Queue dbd1503b65 Merge pull request #45924 from janetkuo/daemonset-history
Automatic merge from submit-queue

Implement Daemonset history

~Depends on #45867 (the 1st commit, ignore it when reviewing)~ (already merged)

Ref https://github.com/kubernetes/community/pull/527/ and https://github.com/kubernetes/community/pull/594

@kubernetes/sig-apps-api-reviews @kubernetes/sig-apps-pr-reviews @erictune @kow3ns @lukaszo @kargakis 

---

TODOs:
- [x] API changes
  - [x] (maybe) Remove rollback subresource if we decide to do client-side rollback 
- [x] deployment controller 
  - [x] controller revision
    - [x] owner ref (claim & adoption)
    - [x] history reconstruct (put revision number, hash collision avoidance)
    - [x] de-dup history and relabel pods
    - [x] compare ds template with history 
  - [x] hash labels (put it in controller revision, pods, and maybe deployment)
  - [x] clean up old history 
  - [x] Rename status.uniquifier when we reach consensus in #44774 
- [x] e2e tests 
- [x] unit tests 
  - [x] daemoncontroller_test.go 
  - [x] update_test.go 
  - [x] ~(maybe) storage_test.go // if we do server side rollback~

kubectl part is in #46144

--- 

**Release note**:

```release-note
```
2017-06-03 16:52:38 -07:00
Tim Hockin be987b015c Merge pull request #46716 from thockin/proxy-comments
Kube-proxy cleanups
2017-06-03 15:57:17 -07:00
Clayton Coleman ce972ca475
Add an e2e test for server side get
Print a better error from the response. Performs validation to ensure it
does not regress in alpha state.
2017-06-03 18:22:39 -04:00
Kubernetes Submit Queue a2412f114e Merge pull request #46772 from sttts/sttts-resolve-localhost
Automatic merge from submit-queue (batch tested with PRs 46620, 46732, 46773, 46772, 46725)

apiserver: avoid resolving 'localhost'

Fixes https://github.com/kubernetes/kubernetes/issues/46767.
2017-06-03 11:39:44 -07:00
Kubernetes Submit Queue 6b76c40a62 Merge pull request #46732 from timstclair/audit-metrics
Automatic merge from submit-queue (batch tested with PRs 46620, 46732, 46773, 46772, 46725)

Instrument advanced auditing

Add prometheus metrics for audit logging, including:

- A total count of audit events generated and sent to the output backend
- A count of audit events that failed to be audited due to an error (per backend)
- A count of request audit levels (1 per request)

For https://github.com/kubernetes/features/issues/22

- [x] TODO: Call `HandlePluginError` from the webhook backend, once https://github.com/kubernetes/kubernetes/pull/45919 merges (in this or a separate PR, depending on timing of the merge)

/cc @ihmccreery @sttts @soltysh @ericchiang
2017-06-03 11:39:40 -07:00
Kubernetes Submit Queue 07f85565a2 Merge pull request #36721 from smarterclayton/initializers
Automatic merge from submit-queue

Add initializer support to admission and uninitialized filtering to rest storage

Initializers are the opposite of finalizers - they allow API clients to react to object creation and populate fields prior to other clients seeing them.

High level description:

1. Add `metadata.initializers` field to all objects
2. By default, filter objects with > 0 initializers from LIST and WATCH to preserve legacy client behavior (known as partially-initialized objects)
3. Add an admission controller that populates .initializer values per type, and denies mutation of initializers except by certain privilege levels (you must have the `initialize` verb on a resource)
4. Allow partially-initialized objects to be viewed via LIST and WATCH for initializer types
5. When creating objects, the object is "held" by the server until the initializers list is empty
6. Allow some creators to bypass initialization (set initializers to `[]`), or to have the result returned immediately when the object is created.

The code here should be backwards compatible for all clients because they do not see partially initialized objects unless they GET the resource directly. The watch cache makes checking for partially initialized objects cheap. Some reflectors may need to change to ask for partially-initialized objects.

```release-note
Kubernetes resources, when the `Initializers` admission controller is enabled, can be initialized (defaulting or other additive functions) by other agents in the system prior to those resources being visible to other clients.  An initialized resource is not visible to clients unless they request (for get, list, or watch) to see uninitialized resources with the `?includeUninitialized=true` query parameter.  Once the initializers have completed the resource is then visible.  Clients must have the the ability to perform the `initialize` action on a resource in order to modify it prior to initialization being completed.
```
2017-06-03 07:16:52 -07:00
Kubernetes Submit Queue 5b5b8e6390 Merge pull request #44844 from dixudx/update_gophercloud
Automatic merge from submit-queue

update gophercloud that fixed code format

**What this PR does / why we need it**:

mainly to include [#265](https://github.com/gophercloud/gophercloud/pull/265), which fixed the code format including below two files:

* vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v1/apiversions/urls.go
* vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/images/results.go
2017-06-03 01:22:08 -07:00
Cao Shufeng 541935b13f fix invalid status code for hijacker
When using hijacker to take over the connection, the http status code
should be 101 not 200.

PS:
Use "kubectl exec" as an example to review this change.
2017-06-03 16:03:52 +08:00
Janet Kuo 4e6f70ff67 Autogen: run hack/update-all.sh 2017-06-03 00:43:53 -07:00
Kubernetes Submit Queue 78a9e4feba Merge pull request #46375 from deads2k/auth-05-nameprotection
Automatic merge from submit-queue (batch tested with PRs 46456, 46675, 46676, 46416, 46375)

prevent illegal verb/name combinations in default policy rules

Names aren't presented with some kinds of "normal" verbs.  This prevents people from making common mistakes.

@timothysc as I noted in your pull.  This will prevent some classes of errors.
2017-06-03 00:28:53 -07:00
Kubernetes Submit Queue ead40ebdce Merge pull request #46416 from CaoShuFeng/audit_doc
Automatic merge from submit-queue (batch tested with PRs 46456, 46675, 46676, 46416, 46375)

Fix doc about Verb for advanced audit feature

This patch is commited to address the following comment:
https://github.com/kubernetes/kubernetes/pull/45315#discussion_r117107507
**Release note**:

```
NONE
```
2017-06-03 00:28:50 -07:00
Dr. Stefan Schimanski 4846c0d167 apiserver: return BadRequest 400 for invalid query params 2017-06-03 08:54:40 +02:00
Kubernetes Submit Queue e837c3bbc2 Merge pull request #46388 from lavalamp/whitlockjc-generic-webhook-admission
Automatic merge from submit-queue (batch tested with PRs 46239, 46627, 46346, 46388, 46524)

Dynamic webhook admission control plugin

Unit tests pass.

Needs plumbing:
* [ ] service resolver (depends on @wfender PR)
* [x] client cert (depends on ????)
* [ ] hook source (depends on @caesarxuchao PR)

Also at least one thing will need to be renamed after Chao's PR merges.

```release-note
Allow remote admission controllers to be dynamically added and removed by administrators.  External admission controllers make an HTTP POST containing details of the requested action which the service can approve or reject.
```
2017-06-02 23:37:42 -07:00
Kubernetes Submit Queue 348bf1e032 Merge pull request #46627 from deads2k/api-12-labels
Automatic merge from submit-queue (batch tested with PRs 46239, 46627, 46346, 46388, 46524)

move labels to components which own the APIs

During the apimachinery split in 1.6, we accidentally moved several label APIs into apimachinery.  They don't belong there, since the individual APIs are not general machinery concerns, but instead are the concern of particular components: most commonly the kubelet.  This pull moves the labels into their owning components and out of API machinery.

@kubernetes/sig-api-machinery-misc @kubernetes/api-reviewers @kubernetes/api-approvers 
@derekwaynecarr  since most of these are related to the kubelet
2017-06-02 23:37:38 -07:00
Kubernetes Submit Queue 3093936a18 Merge pull request #46551 from caesarxuchao/rule-validation
Automatic merge from submit-queue (batch tested with PRs 46726, 41912, 46695, 46034, 46551)

Fix validation of Rule.Resouces
2017-06-02 21:42:43 -07:00
Kubernetes Submit Queue 047c4667fe Merge pull request #46034 from kensimon/canonical-aggregate-events
Automatic merge from submit-queue (batch tested with PRs 46726, 41912, 46695, 46034, 46551)

Event aggregation: include latest event message in aggregate event

**What this PR does / why we need it**:

This changes the event aggregation behavior so that, when multiple events are deduplicated, the aggregated event includes the message of the latest related event.

This fixes an issue where the original event expires due to TTL, and the aggregate event doesn't contain any useful message.

**Which issue this PR fixes**:

fixes #45971

```release-note
Duplicate recurring Events now include the latest event's Message string
```
2017-06-02 21:42:41 -07:00
Kubernetes Submit Queue aab12f217e Merge pull request #46726 from deads2k/crd-09-proto
Automatic merge from submit-queue

add protobuf for CRD

Adds protobuf encoding to CRD and simplifies loopback initialization.

xref: https://github.com/kubernetes/features/issues/95
2017-06-02 21:34:54 -07:00
Shiyang Wang 87f8779624 add more unit test 2017-06-03 11:47:46 +08:00
Shiyang Wang fb4fc7d7d1 fix JSONPath parser will not filter strings containing parentheses 2017-06-03 11:47:09 +08:00
Clayton Coleman b993f7d303
generated: client-go staging 2017-06-02 22:09:05 -04:00
Clayton Coleman 331eea67d8
Allow initialization of resources
Add support for creating resources that are not immediately visible to
naive clients, but must first be initialized by one or more privileged
cluster agents. These controllers can mark the object as initialized,
allowing others to see them.

Permission to override initialization defaults or modify an initializing
object is limited per resource to a virtual subresource "RESOURCE/initialize"
via RBAC.

Initialization is currently alpha.
2017-06-02 22:09:03 -04:00
Kubernetes Submit Queue caead74171 Merge pull request #45184 from DirectXMan12/feature/metrics-client-gen-tweaks
Automatic merge from submit-queue (batch tested with PRs 46801, 45184, 45930, 46192, 45563)

Tweak client-gen to support metrics API

This PR adds support to client-gen for readonly APIs as well as for customizing the resource name used for a given type.

This is required to support the clients generated for `k8s.io/metrics/pkg/apis/metrics`.

cc @caesarxuchao 

Currently based on #45180

**Release note**:
```release-note
NONE
```
2017-06-02 18:05:50 -07:00
Kubernetes Submit Queue 97ac6e752b Merge pull request #46668 from caesarxuchao/admissionregistration-nonnamespace
Automatic merge from submit-queue (batch tested with PRs 46648, 46500, 46238, 46668, 46557)

Admissionregistration nonnamespace

The two types are root scoped.

Just adding a couple of tags. Other code is generated.
2017-06-02 15:20:50 -07:00