Commit Graph

2462 Commits

Author SHA1 Message Date
Chao Xu
22452917c2 make some rbac and scheduling post start hooks tolerate the apiserver
bootstrap delay caused by installing storage versions.
2020-11-08 18:53:40 -08:00
Andrew Sy Kim
7cf19e5fb7 endpointslice API: rename 'accepting' condition to 'serving' condition
Signed-off-by: Andrew Sy Kim <kim.andrewsy@gmail.com>
2020-11-05 19:18:45 -05:00
Andrew Sy Kim
80046582d7 endpointslice API strategy: drop disabled fields 'accepting' and 'terminating'
Signed-off-by: Andrew Sy Kim <kim.andrewsy@gmail.com>
2020-11-05 19:18:45 -05:00
Kubernetes Prow Robot
56c1be8317
Merge pull request #95603 from soltysh/api_extensions
Introduce api-extensions category in k8s apiserver
2020-11-04 13:25:07 -08:00
Kubernetes Prow Robot
95c56ada4b
Merge pull request #96112 from wojtek-t/remove_variadic_from_storage_interface
Remove variadic argument from storage interface
2020-11-02 11:57:00 -08:00
Kubernetes Prow Robot
cf4a33c549
Merge pull request #95761 from ingvagabund/move-rbac-under-component-helpers
Move pkg/registry/rbac code imported by kubectl under component helpers
2020-11-02 11:56:29 -08:00
Jan Chaloupka
a5920f7edb Move helpers from pkg/registry/rbac/reconciliation and pkg/registry/rbac/validation under k8s.io/component-helpers 2020-11-02 17:51:16 +01:00
Kubernetes Prow Robot
d1c296431e
Merge pull request #96059 from knight42/refactor/migrate-health-check
refactor: migrate health checks of control-plane off insecure port in tests
2020-11-02 08:21:08 -08:00
wojtekt
8b98305858 Remove variadic argument from storage interface 2020-11-02 16:08:23 +01:00
knight42
3c4d6859c8
refactor: migrate health checks of control-plane off insecure port in tests
Signed-off-by: knight42 <anonymousknight96@gmail.com>
2020-10-31 11:39:25 +08:00
Kubernetes Prow Robot
bf67247124
Merge pull request #93258 from zshihang/token
mv TokenRequest and TokenRequestProjection to GA
2020-10-30 16:36:51 -07:00
Shihang Zhang
ff641f6eb2 mv TokenRequest and TokenRequestProjection to GA 2020-10-29 20:47:01 -07:00
Tim Hockin
a4c9330683 Populate ClusterIPs on read
Old stored services will not have the `clusterIPs` field when read back
without this.

This includes some renaming for clarity and expanded comments, and a new
test for default on read.
2020-10-29 20:40:39 -07:00
Maciej Szulik
9a4dfec2be
Introduce api-extensions category in k8s apiserver
This category includes:
1. mutating admission configs
2. validating admission configs
3. CRDs
4. APIServices
2020-10-29 16:44:26 +01: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
Tim Hockin
c5f3e560e4 Make some methods into non-methods 2020-10-28 10:41:26 -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
Arjun Naik
0fec7b0f7e Added functionality and API for pod autoscaling based on container resources
Signed-off-by: Arjun Naik <anaik@redhat.com>
2020-10-21 21:10:05 +02:00
Michael Gugino
717be0cd44 Allow deletion of unhealthy pods if enough healthy
Currently, if you have a PDB with 0 disruptions
available and you attempt to evict a non-healthy
pod, the eviction request will always fail.  This
is because the eviction API does not currently
take in to account that the pod you are removing
is the unhealthy one.

This commit accounts for trying to evict an
unhealthy pod as long as there are enough healthy
pods to satisfy the PDB's requirements.  To
protect against race conditions, a ResourceVersion
constraint is enforced.  This will ensure that
the target pod does not go healthy and allow
any race condition to occur which might disrupt
too many pods at once.

This commit also eliminates superfluous class to
DeepCopy for the deleteOptions struct.
2020-10-20 12:59:23 -04:00
Dan Winship
3a110546ed Move SCTP to GA 2020-10-15 08:56:33 -04:00
Zsolt Prontvai
c244e175e2 Fix golint failures in pkg/registry/core/replicationcontroller 2020-10-03 12:56:14 +01:00
Kubernetes Prow Robot
def8fe3b4e
Merge pull request #94685 from verb/ec-admission
Convert to EphemeralContainers for validation in EphemeralContainersREST
2020-09-30 00:29:25 -07:00
Kubernetes Prow Robot
0f39af90ed
Merge pull request #94364 from wojtek-t/efficient_watch_resumption
Efficient watch resumption
2020-09-25 15:42:48 -07:00
Kubernetes Prow Robot
63d4a03270
Merge pull request #94947 from phillc/master
Replace 'the the ' with 'the '
2020-09-23 20:28:04 -07:00
Kubernetes Prow Robot
f728fbaa62
Merge pull request #94501 from ialidzhikov/nit/labels-staticcheck
Fix staging/src/k8s.io/apimachinery/pkg/labels golint findings
2020-09-22 12:23:51 -07:00
phillc
adbc7c2172
find . -type f \( -name "*.go" -or -name "*.md" \) -print0 | xargs -0 gsed -i 's/the the /the /g' 2020-09-21 16:37:12 -04:00
Jordan Liggitt
71fcc2298d Fix resource location for ipv6 pods 2020-09-16 11:24:07 -04:00
wojtekt
fbd65a265a Pipe newFunc to etcd3 storage layer 2020-09-15 08:19:12 +02:00
David Eads
c0c033b12f generated 2020-09-14 09:24:41 -04:00
David Eads
c7911a384c remove pod presets 2020-09-14 09:24:40 -04:00
ialidzhikov
88fadb24c1 Fix staging/src/k8s.io/apimachinery/pkg/labels golint findings
Signed-off-by: ialidzhikov <i.alidjikov@gmail.com>
2020-09-10 18:55:17 +03:00
Lee Verberne
bf0a33d1de Use EphemeralContainers for storage validation
When updating ephemeral containers, convert Pod to EphemeralContainers
in storage validation. This resolves a bug where admission webhook
validation fails for ephemeral container updates because the webhook
client cannot perform the conversion.

Also enable the EphemeralContainers feature gate for the admission
control integration test, which would have caught this bug.
2020-09-10 17:24:52 +02:00
Haowei Cai
07506ab384 generated 2020-09-08 19:14:36 -07:00
Chao Xu
86dd4ce3b5 Let kube-apiserver host the storage version API
Co-authored-by: Haowei Cai <haoweic@google.com>
2020-09-08 19:14:36 -07:00
Kubernetes Prow Robot
1f708f6e62
Merge pull request #94112 from damemi/sort-endpoints
Remove canonicalization of endpoints by endpoints controller for better comparison
2020-09-04 22:13:40 -07:00
Antonio Ojea
0004b199d5 do not mutate endpoints in the apiserver
the endpoints API handler was using the Canonicalize() method to
reorder the endpoints, however, due to differences with the
endpoint controller RepackSubsets(), the controller was considering
the endpoints different despite they were not, generating unnecessary
updates evert resync period.
2020-09-04 08:42:45 -04:00
Jordan Liggitt
68dd0b7f27 Deflake TestServiceRegistryExternalTrafficHealthCheckNodePortUserAllocation 2020-09-03 16:31:03 -04:00
Daniel Smith
a86afc12df update scripts 2020-09-02 10:49:40 -07:00
Daniel Smith
75f835aa08 move port definitions to a common location 2020-09-02 10:48:25 -07:00
Kubernetes Prow Robot
0a1aa394b7
Merge pull request #92987 from nikhita/cleanup-owners-apimachinery
apimachinery: remove inactive members from OWNERS
2020-08-27 19:08:33 -07:00
Zhou Peng
d253551e89 [pkg/registry/admissionregistration]: fixup wrong copy&paste godoc
This was introduced at commit: fc5a613c17

Signed-off-by: Zhou Peng <p@ctriple.cn>
2020-08-23 00:48:55 +08:00
Kubernetes Prow Robot
bdb99c8e09
Merge pull request #93906 from aojea/flakeSvc
Deflake TestServiceRegistryUpdateDryRun test
2020-08-18 15:45:10 -07:00
Antonio Ojea
b276b4775f Deflake TestServiceRegistryUpdateDryRun test
The test suite was using a /24 cluster network for the allocator.
The ip allocator, if no ip is specified when creating the cluster,
picks one randomly, that means that we had 1/256 chances of
collision.

The TestServiceRegistryUpdateDryRun was creating a service without
a ClusterIP, the ip allocator assigned one random, and it was
never deleting it. The same test was checking later if one
specific IP was not allocated, not taking into consideration
that the same ip may have allocated to the first Service.

To avoid any randomness, we create the first Service with a specific
IP address.
2020-08-18 22:02:55 +02:00
Jordan Liggitt
f87a846e65 Validate ingress TLS secretName in v1 2020-08-12 10:13:08 -04:00
Kubernetes Prow Robot
96c057ab48
Merge pull request #92001 from huffmanca/include-csidriver-fsgroup
Include CSIDriver capability to indicate fsGroup support
2020-07-16 09:11:42 -07:00
Kubernetes Prow Robot
c23a4b08d7
Merge pull request #92874 from chelseychen/event-api
Fix a few places where source field is empty when creating events via events/v1
2020-07-11 20:57:31 -07:00
Christian Huffman
58bd3e5230 Include CSIDriver SupportsFsGroup 2020-07-11 23:29:24 -04:00
Nikhita Raghunath
db495ea983 apimachinery: remove inactive members from OWNERS 2020-07-11 19:28:24 +05:30
Sascha Grunert
96fb83c4c1
Implement PodSecurityPolicy enforcement for seccomp GA
This implements the necessary pieced for the PodSecurityPolicy
enforcement like described in the appropriate KEP section:

https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/20190717-seccomp-ga.md#podsecuritypolicy-enforcement

Signed-off-by: Sascha Grunert <sgrunert@suse.com>
2020-07-10 15:55:21 +02:00
Kubernetes Prow Robot
26f0227019
Merge pull request #91408 from saschagrunert/seccomp-api-migration
Add seccomp GA version skew for pods
2020-07-10 04:29:48 -07:00