Commit Graph

948 Commits

Author SHA1 Message Date
Cao Shufeng a7a4624d67 run make update
Kubernetes-commit: 2c19a5d43c772d9a2f2427591ec3d8d863b7d4fe
2018-08-17 11:35:57 +08:00
Cao Shufeng d61a594a58 update Annotations description about audit.Event
Kubernetes-commit: 0a8c207a59d34a811e792364c1077f896ae8b9a8
2018-08-17 11:15:49 +08:00
Tristan Burgess 753c6a1ccc 50342: Establish '406 Not Acceptable' response for protobuf serialization 'errNotMarshalable'
- Added metav1.Status() that enforces '406 Not Acceptable' response if
    protobuf serialization is not fully supported for the API resource type.
     - JSON and YAML serialization are supposed to be more completely baked
    in, so serialization involving those, and general errors with seralizing
    protobuf, will return '500 Internal Server Error'.
	- If serialization failure occurs and original HTTP status code is
    error, use the original status code, else use the serialization failure
    status code.
     - Write encoded API responses to intermediate buffer
     - Use apimachinery/runtime::Encode() instead of
    apimachinery/runtime/protocol::Encode() in
    apiserver/endpoints/handlers/responsewriters/writers::SerializeObject()
     - This allows for intended encoder error handling to fully work, facilitated by
    apiserver/endpoints/handlers/responsewriters/status::ErrorToAPIResponse() before officially
    writing to the http.ResponseWriter
     - The specific part that wasn't working by ErrorToAPIResponse() was the
    HTTP status code set. A direct call to
    http.ResponseWriter::WriteHeader(statusCode) was made in
    SerializeObject() with the original response status code, before
    performing the encode. Once this
    method is called, it can not again update the status code at a later
    time, with say, an erro status code due to encode failure.
     - Updated relevant apiserver unit test to reflect the new behavior
    (TestWriteJSONDecodeError())
     - Add build deps from make update for protobuf serializer

50342: Code review suggestion impl
 - Ensure that http.ResponseWriter::Header().Set() is called before http.ResponseWriter::WriteHeader()
    - This will avert a potential issue where changing the response media type to text/plain wouldn't work.
    - We want to respond with plain text if serialization fails of the original response, and serialization also fails for the resultant error response.

50342: wrapper for http.ResponseWriter
  - Prevent potential performance regression caused by modifying encode to use a buffer instead of streaming
    - This is achieved by creating a wrapper type for http.ResponseWriter that will use WriteHeader(statusCode) on the first
    call to Write(). Thus, on encode success, Write() will write the original statusCode. On encode failure, we pass control
    onto responsewriters::errSerializationFatal(), which will process the error to obtain potentially a new status code, depending
    on whether or not the original status code was itself an error.

50342: code review suggestions
  - Remove historical note from unit test comment
  - Don't export httpResponseWriterWithInit type (for now)

Kubernetes-commit: bcdf3bb64333ce12f15b1beebef48f554d69027f
2018-08-06 19:18:36 -04:00
Mehdy Bohlool bad7b5ebe9 generated files
Kubernetes-commit: 612dcb9ef1b256deb2431ea5b0a01b351407b6a1
2018-08-08 14:01:51 -07:00
Dr. Stefan Schimanski a549f2934f kube-apiserver: switch apiserver's DeprecatedInsecureServingOptions
Kubernetes-commit: d787213d1b8802d370032d17157ac1de7573ad15
2018-08-06 16:31:23 +02:00
Dr. Stefan Schimanski 3698d7a898 apiserver: move controller-manager's insecure config into apiserver
Kubernetes-commit: 1d9a896066b3e10e8c1a0d506e00bc354b7772f0
2018-08-16 20:47:15 +02:00
Yu-Ju Hong ebfb60793e Update the InputStream tests
Kubernetes-commit: ab25c40ceb8af9da74f2cb5cc498ed4d4a0afb9b
2018-08-13 17:35:00 -07:00
Yu-Ju Hong 6b85aed1d6 apiserver: pass the parent request context when creating InputStream
This ensures that request cancellation will be propagated properly to
the client used to create the stream. Without this fix, the apiserver
and the kubelet may leak resources (e.g., goroutine, inotify watches).
One such example is that if user run `kubectl logs -f <container that
don't produce new logs)` and then enter ctrl-c, both kubelet and
apiserver will hold on to the connection and resources indefinitely.

Kubernetes-commit: 31d1607a514b62ef46452e402f5438d827314b98
2018-08-13 16:34:49 -07:00
Tim Allclair 8e1390d9d4 Synchronous & unbatched audit log writes
Kubernetes-commit: c9670d0652f8d7da662f71caac6fca2044296ae6
2018-03-15 00:44:46 -07:00
xuzhonghu e767cd8dbf kube-apiserver make use of GlogSetter
Kubernetes-commit: 38d48e8d025a9cceccfc8a80d72f751b8bb65dab
2018-06-05 10:32:46 +08:00
xuzhonghu 91f6779130 move glog setter to util/logs
Kubernetes-commit: 0aff9490cf528579df55ab6609ff1c8fa6db95e9
2018-06-05 10:18:23 +08:00
jennybuckley fef02d6bec Add test cases for webhook dry run
Kubernetes-commit: 3a506be626398f927049c3ce735fd29ac0efd5f1
2018-08-07 14:59:29 -07:00
jennybuckley 53e7058d7c Fix typo in webhook dry-run check
Kubernetes-commit: aa36dc94cd7a2e538ad5e6ef8999fbbe9dc0df78
2018-08-07 14:37:24 -07:00
Antoine Pelisse c4bca20fbb dry-run: Add resttests
Kubernetes-commit: f3b8e85a4e5719c22d35b922e82c7dff7b5982b0
2018-08-03 11:35:23 -07:00
fqsghostcloud 0fc525d3c8 fix typo
fix typo

Kubernetes-commit: 18f1ad7dc5392cb4537fa33bd73cdb8dc2c1e523
2018-08-13 17:36:15 +08:00
Lucas Käldström 9747204de4 Remove defaulting from shared ComponentConfig types
Kubernetes-commit: 1b2346584f9c7eb78de96305dfa8f5298a4d9827
2018-08-09 23:33:47 +03:00
Jordan Liggitt 5558d0c5ce Make the request attributes clearer in forbidden messages
Kubernetes-commit: 4e0a3b557e235ad354f6dfb4567d2a20ebde403a
2018-08-09 15:51:52 -04:00
Lucas Käldström 0fb19f3031 Write manually-created conversion funcs for shared ComponentConfig types
Kubernetes-commit: 2c0d3787998479aa95c9544767681d353e4e1ff7
2018-08-09 19:48:12 +03:00
Chao Wang b0b043eda2 list the default enabled admission plugins
Kubernetes-commit: ee96a5638d21f0da111b1106a82976cc59bbbf67
2018-08-06 17:25:24 +08:00
Tripathi 4e7be504bf Support pulling requestheader CA from extension-apiserver-authentication ConfigMap without client CA
This commit prevents extension API server from erroring out during bootstrap when the core
API server doesn't support certificate based authentication for it's clients i.e. client-ca isn't
present in extension-apiserver-authentication ConfigMap in kube-system.

This can happen in cluster setups where core API server uses Webhook token authentication.

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

Kubernetes-commit: db828a44406efe09e2db91e6dc88d1292c9a29e1
2018-07-18 15:07:09 -07:00
Cao Shufeng b40373204e use Audit v1 api and add it to some unit tests
Kubernetes-commit: 716dc87a1095027f9ab08ee59abfffab1d15ec29
2018-07-27 14:06:29 +08:00
Cao Shufeng d84f9deae6 run "make update"
Kubernetes-commit: 15b800fdf77c70e4560954ba311f761a7a0d2448
2018-07-06 15:23:37 +08:00
Cao Shufeng 28497af6f8 upgrade advanced Audit to stable
Kubernetes-commit: 6d2c2ef1697aa2671358e383e258735eeb26e65c
2018-07-06 13:35:20 +08:00
yue9944882 d7eae80a4e cleaning up
Kubernetes-commit: a6b781935eb833144c3459f791a3a12cfebc66ee
2018-07-24 15:04:28 +08:00
jennybuckley dc1d8e7050 block dry run if a webhook would be called
Kubernetes-commit: e4c219df42c77ecb8f0588197072bef81bca7429
2018-08-07 09:27:18 -07:00
Chao Xu e1ccfa4e7d Remove rest.ConnectRequest.
Make apiserver pass connectRequest.Options directly to the admission layer. All
the information in rest.ConnectRequest is present in admission attributes.

Kubernetes-commit: 355691d310803ea3a0cd8ff284a39ead38857602
2018-07-30 18:35:51 -07:00
Jordan Liggitt 520d366673 document /watch prefix deprecation
Kubernetes-commit: c31faf2509e7431948a08c9b474858b753188781
2018-06-15 11:21:56 -04:00
jennybuckley 4dcfdb8ab8 Explicitly disable dry run for connect
Kubernetes-commit: 702937ac8614a05d3168c6565bea8a3347883dc0
2018-07-11 11:45:24 -07:00
jennybuckley 1232b1c9c4 Skip building openapi for ignored paths
Kubernetes-commit: 37c10e2e05b31fd65ca865744d745f60fea7d0c3
2018-07-24 16:11:42 -07:00
jennybuckley 91278157f6 Support dry run in admission plugins
Kubernetes-commit: adafb1365e2b9f6c422c437e916e22a4fe1c2e3a
2018-08-06 10:37:44 -07:00
hongjian.sun 300db50c66 fix apiserver pprof redirect bug
Kubernetes-commit: 981f2397815248e12663b01d6cc6d6d963012c95
2018-08-06 19:35:01 +08:00
Dr. Stefan Schimanski 7aafc31c03 apiserver: output flags in logical sections
Kubernetes-commit: 42d533e40c112f62635a8aa0e3c3def298b26cc9
2018-05-30 14:45:37 +02:00
hangaoshuai c8bda16dad update zz_generated.conversion.go file
Kubernetes-commit: d6caefe848e14d8703632427b8ce542bacd4d4c7
2018-08-05 11:50:25 +08:00
hangaoshuai f0f99f21ff add an OWNERS file
Kubernetes-commit: 6be5a07d4114acfaabf21da4d0bf2653fcf3118d
2018-07-13 09:26:56 +08:00
hangaoshuai 70bcdadea7 add generated code files
Kubernetes-commit: 2193f9892e9fd1b953fb8a4e9affe363444fdcd1
2018-07-12 21:32:30 +08:00
hangaoshuai efae429c1d move apiserver Configuration to k8s.io/apiserver/pkg/apis/config
Kubernetes-commit: 0875ffe1e25c2d3544e2966b827c3d2d70531ed5
2018-07-12 17:37:52 +08:00
Antoine Pelisse 30e2071cad storage: Move precondition check as a method of preconditions
Kubernetes-commit: b5258a53809bde48cac07848d787a0fc7db16b2a
2018-07-31 13:53:27 -07:00
Antoine Pelisse dbac430f68 dry-run: Use dry-runnable structure
Kubernetes-commit: 68937c4934013739a1efc1b051820667d6d6349d
2018-06-21 08:49:13 -07:00
David Eads cb5cac48ee make package name match all the import aliases
Kubernetes-commit: d3bd0eb1d5cefc25e4476d8dc086ebd90439ef4e
2018-08-01 10:01:32 -04:00
Jake Sanders 41bff9cd5e Escape illegal characters in remote extra keys
Signed-off-by: Jake Sanders <jsand@google.com>

Kubernetes-commit: f35e3d07c9898f8ec156209a868fa4451eb9afe2
2018-07-03 21:19:15 -07:00
Clayton Coleman b605717f7d Make the timeout error more specific so users can find it
This makes the error consistent with the timeout filter and also helps
the user understand that they requested a specific timeout.

Kubernetes-commit: 8a2d037bc51c97758c0a68f2726f104953846cd5
2018-07-25 12:50:39 -04:00
xuzhonghu bc8364d7ab Add String method to audit.Backend interface
Kubernetes-commit: 416a478cf6e4ea2aaecf5108aade563c9fc3fc53
2018-07-18 17:35:08 +08:00
Cao Shufeng 0511e4e41d fix a TODO in ValidatingAdmissionWebhook
Kubernetes-commit: 162499515c0813f579770091dc30925207d063b2
2018-06-04 14:55:46 +08:00
Solly Ross 42da2694e6 Autoset OpenAPI version w/o SecurityDefinitions
There's code to automatically populate OpenAPI info based on existing
generic apiserver config, but it only fires if securitydefinitions are
present.  This doesn't make much sense, since this info is both required
and independent of security definitions, and there's no easy, generic
way to generate security definitions for an aggregated API server.

Kubernetes-commit: ef73bb684bcc4402f66160f254193d2690b80f11
2018-07-19 17:32:40 -04:00
Antoine Pelisse 026601bbf1 dry-run: Add DryRunTrue value
Kubernetes-commit: e99651b34bf94fdead5a8827abe0fc98159cd16d
2018-07-09 15:52:16 -07:00
Antoine Pelisse bff3b5dab2 dry-run: Create feature-gate flag
Kubernetes-commit: 9e7b140450d7045d7a9c185885f76c03bc4c5eb0
2018-06-27 16:53:52 -07:00
Joe Julian cdc300abf6 extend timeout to workaround slow arm64 math
The math/big functions are slow on arm64. There is improvement coming
with go1.11 but in the mean time if a server uses rsa certificates on
arm64, the math load for the multitude of watches over taxes the ability
of the processor and the TLS connections time out. Retries will also not
succeed and serve to exacerbate the problem.

By extending the timeout, the TLS connections will eventually be
successful and the load will drop.

Fixes #64649

Kubernetes-commit: 62b9d378666c4bd6c1e70ada0b5061883c7d8ba6
2018-07-16 19:43:30 -07:00
Mikhail Mazurskiy 0ba502e8f9 Handle errors
Kubernetes-commit: 5cab7f9a57dbbd6e2a181018aae523235843f77d
2018-07-17 20:29:55 +10:00
Jordan Liggitt a1b44cc72f Do not attempt to convert nil object during DELETE webhook admission
Kubernetes-commit: aad0e2e15f789fc3768d6e5607b86e8b824b3917
2018-07-20 00:15:49 -04:00
yue9944882 3b41cc363d fixes operation for "create on update"
remove create-on-update logic for quota controller

review: add more error check

remove unused args

revert changes in patch.go

use hasUID to judge if it's a create-on-update

Kubernetes-commit: ccb1ec7a3695082326fe60ec06890f91004dc043
2018-06-28 16:35:15 +08:00