Commit Graph

11589 Commits

Author SHA1 Message Date
Harsh Singh
1763688d71 Added config parameter for CPU threads 2020-10-29 12:16:10 +05:30
卢振兴10069964
9470f64a4f add audit-log-compress to apiserver 2020-10-29 09:33:05 +08:00
Nick Maliwacki
5712e33abc SetCondtion updates generation 2020-10-28 14:25:03 -07:00
Kubernetes Prow Robot
8bc8b11bcf Merge pull request #95939 from dprotaso/leaderelection-release
Address scenario where releasing a resource lock fails if a prior update fails or gets cancelled
2020-10-28 13:54:06 -07:00
Kubernetes Prow Robot
2e18975d2b Merge pull request #92956 from zhouya0/remove_dependency_between_create_rolebinding
Remove dependency of generators from  create rolebinding
2020-10-28 13:53:39 -07:00
Kubernetes Prow Robot
ec0ef23599 Merge pull request #95923 from deads2k/remove-deprecated
remove the deprecated client that we stopped generating
2020-10-28 12:50:11 -07:00
Dave Protasowski
5e7ed7b86d Re-add the event recorder in the release test
Prior having a mock recorder would cause panics since the lock
would be set to nil on update failures. Now the recorder will
use the cached lock
2020-10-28 14:08:36 -04:00
Dave Protasowski
8160ecfd90 Don't clear the cached resourcelock when errors occurs on updates
This allows the lock to be release normally - even with a
potentially stale lock. This flow should only occur when we're
the lease holders.
2020-10-28 14:08:36 -04:00
Dave Protasowski
23ce312b9f Add failing test showing release is not working properly 2020-10-28 14:08:36 -04:00
Tim Hockin
4f8fb1d3ca Wipe some fields on service "type" updates
Service has had a problem since forever:

- User creates a service type=LoadBalancer
- We silently allocate them a NodePort
- User changes type to ClusterIP
- We fail the operation because they did not clear NodePort

They never asked for or used the NodePort!

Dual-stack introduced some dependent fields that get auto-wiped on
updates.  This carries it further.

If you squint, you can see Service as a big, messy discriminated union,
with type as the discriminator. Ignoring fields for non-selected
union-modes seems right.

This introduces the potential for an apply loop. Specifically, we will
accept YAML that we did not previously accept. Apply could see the
field in local YAML and not in the server and repeatedly try to patch it
in. But since that YAML is currently an error, it seems like a very low
risk. Almost nobody actually specifies their own NodePort values.

To mitigate this somewhat, we only auto-wipe on updates. The same YAML
would fail to create. This is a little inconsistent. We could
auto-wipe on create, too, at the risk of more potential impact.

To do this properly, we need to know the old and new values, which means
we can not do it in defaulting or conversion. So we do it in strategy.

This change also adds unit tests and updates e2e tests to rely on and
verify this behavior.
2020-10-28 10:41:26 -07:00
Kubernetes Prow Robot
17312ea4a9 Merge pull request #95810 from ruiwen-zhao/staticcheck_fix
Fix staticcheck failures on apiserver/plugin/pkg/{authenticator, auth…
2020-10-28 07:45:55 -07:00
David Eads
1f349b5d05 remove the deprecated client that we stopped generating 2020-10-28 10:43:31 -04:00
David Eads
5edd3763ce generated 2020-10-28 10:34:15 -04:00
Patrik Cyvoct
6af838c3d1 fix case when HC timeout is 0
Signed-off-by: Patrik Cyvoct <patrik@ptrk.io>
2020-10-28 11:45:50 +01:00
Yixiang2019
62710bc034 cleanup: fix some error log capitalization
Signed-off-by: Yixiang2019 <wang.yixiang@zte.com.cn>
2020-10-28 16:44:54 +08:00
Kubernetes Prow Robot
8456a514f1 Merge pull request #95736 from Jefftree/reuse-parser
Reuse SSA type converter for resources in the same API Group
2020-10-27 17:28:10 -07:00
Kubernetes Prow Robot
c5ecae737d Merge pull request #95117 from andrewsykim/fake-dynamic-list
fake dynamic client: document that List does not preserve TypeMeta in UnstructuredList
2020-10-27 17:27:55 -07:00
Kubernetes Prow Robot
451e4030c1 Merge pull request #95924 from khenidak/tombstone-ipfamily
tombstone-ing IPFamily field(15)
2020-10-27 16:36:19 -07:00
Kubernetes Prow Robot
2c58deffa8 Merge pull request #95635 from RaunakShah/pvc_describe
Alter wording to describe pods using a pvc
2020-10-27 15:31:57 -07:00
David Eads
4af2f7d37f add godoc for events to events.k8s.io 2020-10-27 15:36:37 -04:00
W. Trevor King
f95ec84322 Event: Document TTL and best-effort-ness
Generally try to waive away folks who see a particular event stream
and feel tempted to extrapolate and build tooling that expects the
same underlying resource transition chain to continue to produce a
similar event stream as the underlying components evolve and are
updated.  New controllers should not be constrained to be
backwards-compatible with previous versions with regard to Event
emission.  This is distinct from the Event type itself, which has the
usual Kubernetes-API compatibility commitments for versioned types.

The EventTTL default has been 1h since 7e258b85bd (Reduce TTL for
events in etcd from 48hrs to 1hr, 2015-03-11, #5315), and remains so
today:

  $ git --no-pager log -1 --format='%h %s' origin/master
  8e5c02255c Merge pull request #90942 from ii/ii-create-pod%2Bpodstatus-resource-lifecycle-test
  $ git --no-pager grep EventTTL: 8e5c02255c cmd/kube-apiserver/app/options/options.go
  8e5c02255cc:cmd/kube-apiserver/app/options/options.go:		EventTTL:               1 * time.Hour,

In this space [1,2]:

  To avoid filling up master's disk, a retention policy is enforced:
  events are removed one hour after the last occurrence.  To provide
  longer history and aggregation capabilities, a third party solution
  should be installed to capture events.
  ...
  Note: It is not guaranteed that all events happening in a cluster
  will be exported to Stackdriver.  One possible scenario when events
  will not be exported is when event exporter is not running
  (e.g. during restart or upgrade).  In most cases it's fine to use
  events for purposes like setting up metrics and alerts, but you
  should be aware of the potential inaccuracy.
  ...
  To prevent disturbing your workloads, event exporter does not have
  resources set and is in the best effort QOS class, which means that
  it will be the first to be killed in the case of resource
  starvation.

Although that's talking more about export from etcd -> external
storage, and not about cluster components submitting events to etcd.

[1]: https://kubernetes.io/docs/tasks/debug-application-cluster/events-stackdriver/
[2]: https://github.com/kubernetes/website/pull/4155/files#diff-d8eb69c5436aa38b396d4f3ed75e4792R10
2020-10-27 15:36:37 -04:00
Kubernetes Prow Robot
56069e4f9d Merge pull request #95874 from tkashem/webhook-handle-error
Webhook: handle error when calling wait.ExponentialBackoff
2020-10-27 11:41:34 -07:00
Khaled (Kal) Henidak
ae2210324c tombstone-ing IPFamily field(15) 2020-10-27 17:55:03 +00:00
Andrew Sy Kim
deb1bb8bff fake dynamic client: document that List does not preserve TypeMeta in UnstructuredList
Signed-off-by: Andrew Sy Kim <kim.andrewsy@gmail.com>
2020-10-27 13:42:16 -04:00
Abu Kashem
f8e35de156 Webhook: handle error when calling wait.ExponentialBackoff
- Inside WithExponentialBackoff function, handle error returned
by wait.ExponentialBackoff.
- Ensure that the wait time is bound to the given context.
2020-10-27 12:04:28 -04:00
wojtekt
f62e61c28f Fix cacher test after bumping fakeBudget timeout to 2 seconds 2020-10-27 15:25:31 +01:00
Kubernetes Prow Robot
b4258ec138 Merge pull request #95869 from wojtek-t/debug_watchcache_test
Fix cacher test flakiness
2020-10-27 04:33:59 -07:00
Kubernetes Prow Robot
4df8d97af0 Merge pull request #95725 from p0lyn0mial/delegated-authz-sar-timeout
sets explicit timeout for SubjectAccessReview client
2020-10-27 03:37:59 -07:00
Kubernetes Prow Robot
1f0371bb3f Merge pull request #95864 from nilo19/cleanup/fix-typos
Fix a lot of typos in Azure codes
2020-10-27 02:13:59 -07:00
Kubernetes Prow Robot
68f6b09e80 Merge pull request #80954 from zachomedia/fix-lock-release
Fix leader election lock release when using LeaseLocks
2020-10-26 20:57:58 -07:00
Kubernetes Prow Robot
3d6026499b Merge pull request #95235 from andrewsykim/controlplane-egress-selector
apiserver: support 'controlplane' as an egress selector type
2020-10-26 14:45:59 -07:00
Khaled Henidak (Kal)
6675eba3ef dual stack services (#91824)
* api: structure change

* api: defaulting, conversion, and validation

* [FIX] validation: auto remove second ip/family when service changes to SingleStack

* [FIX] api: defaulting, conversion, and validation

* api-server: clusterIPs alloc, printers, storage and strategy

* [FIX] clusterIPs default on read

* alloc: auto remove second ip/family when service changes to SingleStack

* api-server: repair loop handling for clusterIPs

* api-server: force kubernetes default service into single stack

* api-server: tie dualstack feature flag with endpoint feature flag

* controller-manager: feature flag, endpoint, and endpointSlice controllers handling multi family service

* [FIX] controller-manager: feature flag, endpoint, and endpointSlicecontrollers handling multi family service

* kube-proxy: feature-flag, utils, proxier, and meta proxier

* [FIX] kubeproxy: call both proxier at the same time

* kubenet: remove forced pod IP sorting

* kubectl: modify describe to include ClusterIPs, IPFamilies, and IPFamilyPolicy

* e2e: fix tests that depends on IPFamily field AND add dual stack tests

* e2e: fix expected error message for ClusterIP immutability

* add integration tests for dualstack

the third phase of dual stack is a very complex change in the API,
basically it introduces Dual Stack services. Main changes are:

- It pluralizes the Service IPFamily field to IPFamilies,
and removes the singular field.
- It introduces a new field IPFamilyPolicyType that can take
3 values to express the "dual-stack(mad)ness" of the cluster:
SingleStack, PreferDualStack and RequireDualStack
- It pluralizes ClusterIP to ClusterIPs.

The goal is to add coverage to the services API operations,
taking into account the 6 different modes a cluster can have:

- single stack: IP4 or IPv6 (as of today)
- dual stack: IPv4 only, IPv6 only, IPv4 - IPv6, IPv6 - IPv4

* [FIX] add integration tests for dualstack

* generated data

* generated files

Co-authored-by: Antonio Ojea <aojea@redhat.com>
2020-10-26 13:15:59 -07:00
wojtekt
6eb71c4089 Fix cacher test flakiness 2020-10-26 20:09:13 +01:00
Jefftree
1f986cc69d Make versionconverter functions private 2020-10-26 11:03:17 -07:00
Jefftree
7182d84b10 Reuse SSA type converter for resources in the same API Group 2020-10-26 11:03:17 -07:00
shahra
ff6711140a Change pvc describe test 2020-10-26 10:49:48 -07:00
Kubernetes Prow Robot
2e1d903b13 Merge pull request #95836 from nodo/yaml-unmarshal-number
Add yaml util to unmarshal numbers into int/float
2020-10-26 10:25:27 -07:00
Haowei Cai
742ba5f24a add an APIServerIdentity feature gate 2020-10-26 10:25:13 -07:00
Lukasz Szaszkiewicz
2160cbc53f DelegatingAuthorizationOptions: exposes and sets a default timeout for SubjectAccessReview client
previously no timeout was set. Requests without explicit timeout might potentially hang forever and lead to starvation of the application.
2020-10-26 17:11:59 +01:00
Qi Ni
ecdc1ba57c Fix a lot of typos in Azure codes 2020-10-26 22:47:38 +08:00
Kubernetes Prow Robot
e79a873b4c Merge pull request #95821 from markusthoemmes/optimize-nn-string
Optimize string building for NamespacedName
2020-10-26 07:45:01 -07:00
Andrew Sy Kim
e4b45d944d apiserver: use canonical egress selection names in EgressSelectorConfiguration API docs
Signed-off-by: Andrew Sy Kim <kim.andrewsy@gmail.com>
2020-10-26 10:24:16 -04:00
Andrew Sy Kim
5a09325864 apiserver: update TestReadEgressSelectorConfiguration to use 'controlplane' egress selector name
Signed-off-by: Andrew Sy Kim <kim.andrewsy@gmail.com>
2020-10-26 10:24:16 -04:00
Andrew Sy Kim
30d43806c3 apiserver: add validation for EgressSelection names in EgressSelectorConfiguration API
Signed-off-by: Andrew Sy Kim <kim.andrewsy@gmail.com>
2020-10-26 10:24:16 -04:00
Andrew Sy Kim
a0aebf96ec apiserver: support egress selection name 'controlplane' and deprecate 'master'
Signed-off-by: Andrew Sy Kim <kim.andrewsy@gmail.com>
2020-10-26 10:24:16 -04:00
Kubernetes Prow Robot
16e18a590f Merge pull request #95813 from nilo19/bug/fix-pip-name
Azure: Update the frontend IP config when the service's `pipName` annotation is changed
2020-10-25 17:31:01 -07:00
Andrea Nodari
04d972cb4b Add yaml util to unmarshal numbers into int/float 2020-10-24 11:36:22 +02:00
Qi Ni
87a4805ba4 Update the frontend IP config when the service's pipName annotation is changed 2020-10-24 17:35:23 +08:00
Kubernetes Prow Robot
f20a36f784 Merge pull request #95428 from roycaihw/cleanup/generalize-lease-controller
Generalize node lease controller
2020-10-23 13:43:02 -07:00
Kubernetes Prow Robot
6578517aa7 Merge pull request #95259 from tkashem/apf-workload-low
Increase the concurrency share of workload-low priority level
2020-10-23 12:15:02 -07:00