Commit Graph

40526 Commits

Author SHA1 Message Date
Patrick Ohly
24f5764787 pv controller test: more test cases
The main goal was to cover retrieval of a PVC from the apiserver when
it isn't known yet. This is achieved by adding PVCs and (for the sake
of completeness) PVs to the reactor, but not the controller, when a
special annotation is set. The approach with a special annotation was
chosen because it doesn't affect other tests.

The other test cases were added while checking the existing tests
because (at least at first glance) the situations seemed to be not
covered.
2020-10-28 10:52:11 +01:00
Patrick Ohly
22f81e9e0b pv controller test: use sub tests
This makes it possible to run individual tests.
2020-10-28 10:39:59 +01:00
Patrick Ohly
06f934ea1f pv controller test: enable klog output
This makes it possible to run tests with -v=5 and thus actually get
some output.
2020-10-28 10:39:10 +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
a9e9cabbea Merge pull request #94676 from JornShen/fix_Test_Run_Positive_VolumeMountControllerAttachEnabledRace_data_trace
Fix flaky unit test Test_Run_Positive_VolumeMountControllerAttachEnabledRace data race
2020-10-27 23:31:56 -07:00
Kubernetes Prow Robot
2754cc23e2 Merge pull request #95801 from jingxu97/oct/owner
Add jingxu97 to volume/util owners
2020-10-27 14:26:11 -07: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
93fcb22e64 Merge pull request #95687 from tangwz/make_profile_an_interface
scheduler: make Profile an interface.
2020-10-27 11:41:26 -07:00
Renaud Gaubert
969e45f49f Add the pod_resources_endpoint_requests_total metric 2020-10-27 11:23:39 -07:00
Kubernetes Prow Robot
94cedd9f14 Merge pull request #95720 from draveness/feature/topology-manager-format
style: update comments in topology manager
2020-10-27 10:36:38 -07:00
Kubernetes Prow Robot
1cb1005437 Merge pull request #95662 from SergeyKanzhelev/nilInterfaceInShouldRecordEvent
The function shouldRecordEvent will panic when the value of input obj…
2020-10-27 10:36:28 -07:00
Kubernetes Prow Robot
554319cce8 Merge pull request #95410 from benhxy/staticcheck
Fix static check for pkg/controller/podautoscaler
2020-10-27 10:36:14 -07:00
Mike Dame
d9f334683e Change function signature for MatchNodeSelectorTerms
As part of externalizing this function to the k8s.io/component-helpers repo,
this commit simplifies the function signature and makes its 2 helpers private
(nodeSelectorRequirementsAsSelector and nodeSelectorRequirementsAsFieldSelector).
2020-10-27 12:52:06 -04:00
Jan Chaloupka
6822a0ec20 Move pkg/apis/core/v1.IsScalarResourceName under pkg/scheduler/util
IsScalarResourceName is imported only inside pkg/scheduler packages.
2020-10-27 13:40:32 +01:00
Patrick Ohly
5686664a1d PV controller: don't delete PVs when PVC is not known yet
Normally, the PV controller knows about the PVC that triggers the
creation of a PV before it sees the PV, because the PV controller must
set the volume.beta.kubernetes.io/storage-provisioner annotation that
tells an external provisioner to create the PV.

When restarting, the PV controller first syncs its caches, so that
case is also covered.

However, the creator of a PVC might decided to set that annotation
itself to speed up volume creation. While unusual, it's not forbidden
and thus part of the external Kubernetes API. Whether it makes sense
depends on the intentions of the user.

When that is done and there is heavy load, an external provisioner
might see the PVC and create a PV before the PV controller sees the
PVC. If the PV controller then encounters the PV before the PVC, it
incorrectly concludes that the PV needs to be deleted instead of being
bound.

The same issue occurred earlier for external binding and the existing
code for looking up a PVC in the cache or in the apiserver solves the
issue also for volume provisioning, it just needs to be enabled also
for PVs without the pv.kubernetes.io/bound-by-controller annotation.
2020-10-27 11:26:58 +01:00
Sergey Kanzhelev
d974b142d3 follow up for #94109 2020-10-27 07:02:44 +00:00
Kubernetes Prow Robot
47943d5f9c Merge pull request #94109 from derekwaynecarr/cleanup-kubelet-todos
Cleanup kubelet TODOs that are no longer pertinent.
2020-10-26 23:49:59 -07:00
tangwz
5f3efa671d scheduler: make Profile an interface. 2020-10-27 09:13:04 +08:00
Kubernetes Prow Robot
6c5cda5a40 Merge pull request #95473 from troy0820/fix/validate-verb
Validate verb in auth can-i command
2020-10-26 16:23:59 -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
Renaud Gaubert
817bf784d2 Kubelet now implements the V1 podresources API 2020-10-26 12:10:18 -07:00
Kubernetes Prow Robot
5ed903dbfd Merge pull request #95809 from alculquicondor/rebench-spread
Optimize NormalizeScore for PodTopologySpread
2020-10-26 11:23:02 -07:00
Kubernetes Prow Robot
c34a2c44a8 Merge pull request #95866 from JornShen/add_metrics_report_time_permit_change
Report a metric for time taken to perform recursive permission change
2020-10-26 10:25:37 -07:00
Kubernetes Prow Robot
bdde4fb8f5 Merge pull request #93040 from cmluciano/cml/ipvsschedmodules
ipvs: ensure selected scheduler kernel modules are loaded
2020-10-26 10:25:17 -07:00
liuhongyu
d1525ec808 Fix the kube-proxy comment so that the document can be generated correctly 2020-10-26 23:13:50 +08: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
jornshen
4ed7709774 Report a metric for time taken to perform recursive permission change 2020-10-26 21:04:30 +08:00
Christopher M. Luciano
51ed242194 ipvs: check for existence of scheduler module and fail if not found
Signed-off-by: Christopher M. Luciano <cmluciano@us.ibm.com>
2020-10-23 17:17:44 -04: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
Ben Hu
4e62298c1b Fix static checks for pkg/controller/podautoscaler 2020-10-23 18:53:07 +00:00
Kubernetes Prow Robot
1fcd02cc2e Merge pull request #95812 from Huang-Wei/fix-pts-node-miss-label
Fix a bug that Pods with topologySpreadConstraints get scheduled to nodes without required labels
2020-10-23 09:55:57 -07:00
Aldo Culquicondor
e721576d55 Optimize NormalizeScore for PodTopologySpread
Change-Id: I928174a220c8c0f4b69180fdfb2f075278a482be
2020-10-23 11:15:15 -04:00
Aldo Culquicondor
ab7a38220f Add 5k nodes benchmark for pod topology spreading
Change-Id: I1a5ed73ba03570671c0a92277678c0f3f786385f
2020-10-23 11:15:15 -04:00
Kubernetes Prow Robot
ec453ffb1a Merge pull request #90691 from arjunrn/container-resource-hpa
Add container based scaling to HPA
2020-10-23 05:51:51 -07:00
Tomas Smetana
0c4e05a245 PV Controller: PV plugin and mode metrics 2020-10-23 14:35:35 +02:00
Kubernetes Prow Robot
106ee38796 Merge pull request #95647 from JoshuaAndrew/master
Horizontal Pod Autoscaler doesn`t automatically scale the number of pods correctly
2020-10-23 04:05:59 -07:00
draveness
60d3f99b1f style: update comments in topology manager 2020-10-23 18:20:50 +08:00
Kubernetes Prow Robot
c6f7fbcfbc Merge pull request #93220 from wawa0210/fix-93165
ingore apparmor on windows
2020-10-22 23:17:59 -07:00
Kubernetes Prow Robot
1257bc5acb Merge pull request #91474 from cici37/pkgController
Cleanup CCM dependencies
2020-10-22 23:17:45 -07:00
Kubernetes Prow Robot
afa941b8e1 Merge pull request #95789 from qingsenLi/k8s201023
remove unused const failedExpiration
2020-10-22 22:17:35 -07:00
Kubernetes Prow Robot
0f4f699639 Merge pull request #95772 from alculquicondor/fix-spread-bench
Fix labels for spreading benchmark
2020-10-22 22:17:26 -07:00
Kubernetes Prow Robot
153d33091b Merge pull request #95632 from mrkm4ntr/remove-redundant-variable
Remove redundant variable
2020-10-22 22:16:48 -07:00
Kubernetes Prow Robot
d332c020e0 Merge pull request #95576 from knabben/scheduler-plugin-config
Replacing factory tests with scheduler.New and options
2020-10-22 22:16:39 -07:00
Kubernetes Prow Robot
766ae2b81b Merge pull request #95252 from tssurya/shrink-input-chain
Kube-proxy: Perf-fix: Shrink INPUT chain
2020-10-22 22:16:02 -07:00
Kubernetes Prow Robot
a4209939f8 Merge pull request #95602 from chenyw1990/master
write checkpoint only when allocated devices updated.
2020-10-22 20:35:36 -07:00
Jing Xu
e233a7220b Add jingxu97 to volume/util owners
Add myself to volume/util/operationexecutor owner

Change-Id: I85424e7ede4f6c136bed65c619aa48e856e8770f
2020-10-22 20:31:31 -07:00
Ali
bfdeda58b7 Delete framework/v1alpha1 folder and change remaining import paths 2020-10-23 13:16:13 +11:00
Wei Huang
f7a93ea915 Fix a bug that Pods with topologySpreadConstraints get scheduled to nodes without required labels 2020-10-22 15:56:16 -07:00
Haowei Cai
4af91987a9 generated 2020-10-22 12:00:51 -07:00