Commit Graph

212 Commits

Author SHA1 Message Date
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
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
wawa0210
6709d4f938 Keep the imagePullPolicy of kubectl alpha debug consistent with the default 2020-09-24 00:22:53 +08: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
Patrick Ohly
32fdf688b3 GenericEphemeralVolume: 'make update' for API 2020-07-09 11:03:03 +02:00
Patrick Ohly
c05c8e915b GenericEphemeralVolume: feature gate, API, documentation
As explained in
https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1698-generic-ephemeral-volumes,
CSI inline volumes are not suitable for more "normal" kinds of storage
systems. For those a new approach is needed: "generic ephemeral inline
volumes".
2020-07-09 11:02:59 +02:00
Chelsey Chen
e010436e2a Update conversion between ReportingController and Source.Component 2020-07-08 08:46:38 -04:00
Paulo Gomes
8976e3620f Add seccomp enforcement and validation based on new GA fields
Adds seccomp validation.

This ensures that field and annotation values must match when present.

Co-authored-by: Sascha Grunert <sgrunert@suse.com>
2020-07-06 09:13:25 +01:00
Benjamin Elder
2abc8afece eparis to emeritus 2020-06-30 09:50:44 -07:00
Benjamin Elder
960ef085e9 zmerlynn to emeritus 2020-06-30 09:43:59 -07:00
Javier Diaz-Montes
7ef7ce2a3c Adding autogenerated files 2020-06-14 21:26:27 -04:00
wojtekt
5a9b6a3114 Autogenerated 2020-04-27 18:53:11 +02:00
Kubernetes Prow Robot
b4a088f1cf Merge pull request #88217 from gkarthiks/master
fix: golint failures
2020-04-16 08:38:46 -07:00
Hemant Kumar
053baaf143 Update generated files
update generated code
2020-03-04 21:23:31 -05:00
Kubernetes Prow Robot
f221dbb91b Merge pull request #88505 from liggitt/pod-ip-patch
Honor status.podIP over status.podIPs and node.spec.podCIDR over node.spec.PodCIDRs when mismatched
2020-03-02 16:16:36 -08:00
Jordan Liggitt
60da52a24a Honor status.podIP over status.podIPs, node.spec.podCIDR over node.spec.podCIDRs 2020-03-02 14:21:22 -05:00
Kubernetes Prow Robot
86141c0cce Merge pull request #88503 from robscott/app-protocol
Adding AppProtocol to Service and Endpoints Ports
2020-02-26 00:20:40 -08:00
Rob Scott
6a33727632 Adding AppProtocol to Service and Endpoints Ports 2020-02-25 17:42:34 -08:00
Kubernetes Prow Robot
851efa8a34 Merge pull request #84051 from bart0sh/PR0079-multiple-sizes-hugepages
Implement support for multiple sizes huge pages
2020-02-25 14:40:27 -08:00
Steve Azzopardi
4eb06577dc Fix golint issues for core/v1/validation
reference https://github.com/kubernetes/kubernetes/issues/68026
2020-02-24 20:50:39 +01:00
Taesun Lee
b873cbbed5 Fix: pkg/apis Typos in comments, function name, error message
poicy -> policy
varialbes -> variables
exeuction -> execution
Resaurces -> Resources
TestSetDefaulEndpointsProtocol -> TestSetDefaultEndpointsProtocol
TestSetDefaulServiceTargetPort -> TestSetDefaultServiceTargetPort
TestSetDefaulServiceExternalTraffic -> TestSetDefaultServiceExternalTraffic
2020-02-24 00:11:00 +09:00
Ed Bartosh
882d6e93af Implement tests for multiple sizes huge pages
Co-Authored-By: Odin Ugedal <odin@ugedal.com>
2020-02-19 18:15:40 +02:00
Ed Bartosh
0eb65bd7da Implement support for multiple sizes huge pages
This implementation allows Pod to request multiple hugepage resources
of different size and mount hugepage volumes using storage medium
HugePage-<size>, e.g.

spec:
  containers:
    resources:
      requests:
        hugepages-2Mi: 2Mi
        hugepages-1Gi: 2Gi
    volumeMounts:
      - mountPath: /hugepages-2Mi
        name: hugepage-2mi
      - mountPath: /hugepages-1Gi
        name: hugepage-1gi
    ...
  volumes:
    - name: hugepage-2mi
      emptyDir:
        medium: HugePages-2Mi
    - name: hugepage-1gi
      emptyDir:
        medium: HugePages-1Gi

NOTE: This is an alpha feature.
      Feature gate HugePageStorageMediumSize must be enabled for it to work.
2020-02-19 18:15:40 +02:00
gkarthiks
8853a985fd fix: golint failures
Signed-off-by: gkarthiks <github.gkarthiks@gmail.com>
2020-02-16 15:09:45 -08:00
wojtekt
1fc80c57ee Autogenerated 2020-02-04 16:06:36 +01:00
wojtekt
881dde8bee Remove unnecessary manual conversions 2020-02-04 16:05:25 +01:00
sewon.oh
463442aa29 Update container hugepage limit when creating the container
Unit test for updating container hugepage limit
Add warning message about ignoring case.
Update error handling about hugepage size requirements

Signed-off-by: sewon.oh <sewon.oh@samsung.com>
2020-01-28 09:35:02 +09:00
Kubernetes Prow Robot
2cd685a020 Merge pull request #87250 from starizard/adding-taint-toleration-error-reasons
Adding taint toleration error reasons
2020-01-25 01:23:01 -08:00
Shawn Rebello
22bd26fefb Adding taint toleration error reasons 2020-01-24 02:50:55 +05:30
wojtekt
9174905ae7 Autogenerated 2020-01-12 21:09:05 +01:00
Jordan Liggitt
bb90f0ff94 Install APIs directly for tests 2019-12-13 11:56:29 -05:00
Kubernetes Prow Robot
d9be37e926 Merge pull request #72046 from m1093782566/service-topology-api
Service Topology implementation
2019-11-15 02:57:42 -08:00
Roc Chan
31d623b4d7 Autogenerated files 2019-11-15 14:37:44 +08:00
Kubernetes Prow Robot
4e45328e65 Merge pull request #83123 from aramase/dualstack-downward-api
Dualstack downward api
2019-11-14 22:13:42 -08:00
wojtekt
067d173266 Eliminate couple unnecessary conversions 2019-11-12 15:00:09 +01:00
wojtekt
0b4b7d95a2 Autogenerated 2019-11-02 16:33:47 +01:00
Anish Ramasekar
af4d18ccf9 add status.podIPs in downward api
add host file write for podIPs

update tests

remove import alias

update type check

update type check

remove import alias

update open api spec

add tests

update test

add tests

address review comments

update imports

remove todo and import alias
2019-10-25 09:18:49 -07:00
wojtekt
7b6bcdf780 Autogenerated code 2019-10-24 20:21:00 +02:00
wojtekt
d7011f1bdb Cleanup explicitly registered functions 2019-10-24 20:21:00 +02:00
Kubernetes Prow Robot
6d4aeccfcc Merge pull request #83709 from wojtek-t/autogenerate_decode_parameters
Autogenerate conversions for decoding parameters
2019-10-23 19:07:05 -07:00
Kubernetes Prow Robot
5d3efb06d4 Merge pull request #83865 from mrbobbytables/update-api-approvers-owners
Prune inactive owners from api-approver owned OWNERS files.
2019-10-23 12:50:46 -07:00
wojtekt
3be4d85ec6 Autogenerated files 2019-10-23 08:28:31 +02:00
Kubernetes Prow Robot
6a5f0e6eda Merge pull request #81348 from yastij/code-org-service-controller
move service helpers to k8s.io/cloud-provider
2019-10-17 00:20:38 -07:00
Yassine TIJANI
d796baea27 move service helpers to k8s.io/cloud-provider
Signed-off-by: Yassine TIJANI <ytijani@vmware.com>
2019-10-16 14:12:11 +02:00
Bob Killen
03082531cc Prune inactive owners from api-approver owned OWNERS files. 2019-10-13 08:54:18 -04:00
David Eads
a886247fe4 generated 2019-10-11 16:38:32 -04:00
Mahendra Kariya
3698100224 Fix golint errors in pkg/apis/core (#82919)
* Fix lint errors related to receiver name

Ref #68026

* Fix lint errors related to comments

Ref #68026

* Fix package name in comments

Ref #68026

* Rename Cpu to CPU

Ref #68026

* Fix lint errors related to naming convention

Ref #68026

* Remove deprecated field

DoNotUse_ExternalID has been deprecated and is not in use anymore.
It has been removed to fix lint errors related to underscores in field
names.

Ref #68026, #61966

* Include pkg/apis/core in golint check

Ref #68026

* Rename var to fix lint errors

Ref #68026

* Revert "Remove deprecated field"

This reverts commit 75e9bfc168077fcb9346e334b59d60a2c997735b.

Ref #82919

* Remove math from godoc

Ref #82919, #68026

* Remove underscore from var name

Ref #68026

* Rename var in staging core api type

Ref #68026
2019-09-25 11:06:51 -07:00
Kubernetes Prow Robot
7e906ae145 Merge pull request #82047 from roberthbailey/owners
Remove myself from reviewers across the repo
2019-09-04 04:35:00 -07:00
Matthias Bertschy
a042a4b0ee startupProbe: make update 2019-08-30 00:42:43 +02:00