Commit Graph

54 Commits

Author SHA1 Message Date
Dan Winship
02926c9563 Update PreferSameTrafficDistribution to GA 2025-10-14 08:20:43 -04:00
Dan Winship
b13564a63c Belatedly remove references to PreferSameTrafficDistribution being Alpha 2025-10-14 08:18:05 -04:00
PatrickLaabs
1ae1964e88 chore: depr. pointer pkg replacement for pkg/apis 2025-07-07 16:19:01 +02:00
Dan Winship
af3584778e update generate docs for PreferSameTrafficDistribution 2025-03-19 08:39:13 -04:00
Dan Winship
4435ead24a Add PreferSameTrafficDistribution feature gate and associated API. 2025-03-19 08:39:13 -04:00
Dan Winship
6ca82f9c16 Update the use of sets in EndpointSlice validation
Don't use sets for validating port name and zone hint uniqueness,
since constructing a new set each time is likely to be less efficient
than just doing a linear search.

Keep the sets for supportedAddressTypes and supportedPortProtocols
(since they're only constructed once) but switch to the generic set
API.
2025-03-19 08:39:13 -04:00
Dan Winship
ad22c0d495 Fix IP/CIDR validation to allow updates to existing invalid objects
Ignore pre-existing bad IP/CIDR values in:
  - pod.spec.podIP(s)
  - pod.spec.hostIP(s)
  - service.spec.externalIPs
  - service.spec.clusterIP(s)
  - service.spec.loadBalancerSourceRanges (and corresponding annotation)
  - service.status.loadBalancer.ingress[].ip
  - endpoints.subsets
  - endpointslice.endpoints
  - networkpolicy.spec.{ingress[].from[],egress[].to[]}.ipBlock
  - ingress.status.loadBalancer.ingress[].ip

In the Endpoints and EndpointSlice case, if *any* endpoint IP is
changed, then the entire object must be valid; invalid IPs are only
allowed to remain in place for updates that don't change any IPs.
(e.g., changing the labels or annotations).

In most of the other cases, when the invalid IP is part of an array,
it can be moved around within the array without triggering
revalidation.
2025-03-12 12:41:32 -04:00
Dan Winship
692785d25b Add legacy versions of IsValidIP/IsValidCIDR
Add validation.IsValidIPForLegacyField and
validation.IsValidCIDRForLegacyField, which validate "legacy" IP/CIDR
fields correctly. Use them for all such fields (indirectly, via a
wrapper in pkg/apis/core/validation that handles the
StrictIPCIDRValidation feature gate correctly).

Change IsValidIP and IsValidCIDR to require strict parsing and
canonical form, and update the IPAddr, ServiceCIDR, and
NetworkDeviceData validation to make use of them.
2025-03-12 09:58:04 -04:00
Dan Winship
ba189de78f Slightly improve EndpointSlice address validation
Because it used both IsValidIPv4Address and ValidateEndpointIP,
EndpointSlice validation produced duplicate error messages when given
an invalid IP. Fix this by calling IsValidIP first, and only doing the
other checks if that one fails.

Also, since no one else was using the IsValidIPv4Address and
IsValidIPv6Address methods anyway, just inline them into the
EndpointSlice validation, so we don't have to worry about "should they
do legacy or strict validation" later.
2025-03-12 09:37:39 -04:00
Dan Winship
76f1684117 Rename ValidateNonSpecialIP to ValidateEndpointIP
There is not a single definition of "non-special IP" that makes sense
in all contexts. Rename ValidateNonSpecialIP to ValidateEndpointIP and
clarify that it shouldn't be used for other validations.

Also add a few more unit tests.
2025-03-12 09:37:39 -04:00
Tim Hockin
e54719bb66 Use randfill, do API renames 2025-03-08 15:18:00 -08:00
Patrick Ohly
8a908e0c0b remove import doc comments
The "// import <path>" comment has been superseded by Go modules.
We don't have to remove them, but doing so has some advantages:

- They are used inconsistently, which is confusing.
- We can then also remove the (currently broken) hack/update-vanity-imports.sh.
- Last but not least, it would be a first step towards avoiding the k8s.io domain.

This commit was generated with
   sed -i -e 's;^package \(.*\) // import.*;package \1;' $(git grep -l '^package.*// import' | grep -v 'vendor/')

Everything was included, except for
   package labels // import k8s.io/kubernetes/pkg/util/labels
because that package is marked as "read-only".
2024-12-02 16:59:34 +01:00
Stephen Kitt
ff3e9ea79f pkg/api(s): drop pointer wrapper functions
The new k8s.io/utils/ptr package provides generic wrapper functions,
which can be used instead of type-specific pointer wrapper functions.
This replaces the latter with the former, and migrates other uses of
the deprecated pointer package to ptr in affacted files.

Signed-off-by: Stephen Kitt <skitt@redhat.com>
2024-09-23 23:00:34 +02:00
Joe Betz
2595aa1309 generate 2024-09-03 14:26:26 -04:00
Iceber Gu
498bebee6d fix the version order of 'discovery.k8s.io'
Signed-off-by: Iceber Gu <caiwei95@hotmail.com>
2024-04-29 14:31:58 +08:00
Dave Protasowski
76059738a4 update standard protocols to match KEP3726 2023-10-16 17:38:06 -04:00
dprotaso
610509fedd Update standard app protocols
Add websocket support - see https://github.com/kubernetes/enhancements/pull/3996
2023-07-12 08:28:50 -04:00
Lior Lieberman
6843c52060 remove kubernetes.io/grpc standard protocol 2023-03-22 18:33:49 +00:00
Kubernetes Prow Robot
3cf9f66e90 Merge pull request #116743 from thockin/docs-clarify-publish-not-ready-endpoints
Clarify EPSlice docs wrt the Ready conditions
2023-03-21 23:14:35 -07:00
Tim Hockin
78530ec0a8 Clarify EPSlice docs wrt the Ready conditions
`publishNotReadyAddresses` is an explicit override, so this makes it
clear that is OK.
2023-03-19 09:28:58 -07:00
Lior Lieberman
812d55d230 Updated: Redefine AppProtocol field description and add new standard values (#115433)
* redefine app protocol and add standard values

* change k8s.io/http2 to k8s.io/h2c

* address feedback

* Update staging/src/k8s.io/api/discovery/v1/types.go

Co-authored-by: Rob Scott <rob.scott87@gmail.com>

* remove kubernetes.io/tcp and change wording

---------

Co-authored-by: Rob Scott <rob.scott87@gmail.com>
2023-03-14 19:26:33 -07:00
Kubernetes Prow Robot
48e4052fc0 Merge pull request #114902 from TommyStarK/pkg-apis/replace-deprecated-pointer-function
pkg/apis: Replace deprecated pointer function
2023-03-09 21:34:15 -08:00
Kubernetes Prow Robot
5a896bf379 Merge pull request #114677 from kl52752/epd-warning-address-type
Generate warning for EndpointSlice AddressType FQDN
2023-01-10 13:47:27 -08:00
TommyStarK
c242e647ae pkg/apis: Replace deprecated pointer function
Signed-off-by: TommyStarK <thomasmilox@gmail.com>
2023-01-08 13:14:37 +01:00
TommyStarK
f166a52573 pkg/apis: Replace deprecated pointer function
Signed-off-by: TommyStarK <thomasmilox@gmail.com>
2023-01-05 11:48:05 +01:00
Katarzyna Lach
249f763c7e Generate warning for EndpointSlice AddressType FQDN
Change-Id: Ibc213acdffa741e630821f371ea25e2b5187a011
2023-01-02 10:00:01 +00:00
Andrew Sy Kim
219300c26b k8s.io/api/discovery: remove API docs referencing EndpointSliceTerminatingCondition feature gate
Signed-off-by: Andrew Sy Kim <andrewsy@google.com>
2022-11-03 20:16:20 -04:00
Tim Hockin
c2ee067221 Remove obsolete refs to gate EndpointSliceNodeName 2022-07-07 13:19:59 -07:00
Jayesh Srivastava
c5fcc0ff44 Update IANA links 2022-01-17 18:48:08 +05:30
Kubernetes Prow Robot
eb729620c5 Merge pull request #99682 from chymy/fix-misspelling
Fix misspelling and misgrammar
2021-09-05 12:46:28 -07:00
Stephen Augustus
481cf6fbe7 generated: Run hack/update-gofmt.sh
Signed-off-by: Stephen Augustus <foo@auggie.dev>
2021-08-24 15:47:49 -04:00
Jordan Liggitt
87a4e082ac Change defaulter-gen input to package path 2021-08-14 11:00:18 -04:00
chymy
b250a985d2 Fix misspelling and misgrammar
Signed-off-by: chymy <chang.min1@zte.com.cn>
2021-06-05 05:02:17 -04:00
creydr
f38615fb9d Change the users of IsQualifiedName to ValidateQualifiedName 2021-05-18 10:49:15 +02:00
Rob Scott
764b501ac4 Updating EndpointSlice validation to match Endpoints validation 2021-04-13 15:26:19 -07:00
Rob Scott
11f0944dbc Adding Hints to EndpointSlice API 2021-03-08 15:37:34 -08:00
Swetha Repakula
a9891b4b9b Graduate EndpointSlice API to GA
* Removes discovery v1alpha1 API
  * Replaces per Endpoint Topology with a read only DeprecatedTopology
  in GA API
  * Adds per Endpoint Zone field in GA API
2021-03-05 12:02:41 -08:00
Rob Scott
8bd6b5d15c Increasing maximum number of ports allowed in EndpointSlice 2021-03-04 10:04:04 -08:00
Benjamin Elder
56e092e382 hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
he.qingguo
fe499b5960 Fix typo of invalide in claims.go]
Signed-off-by: he.qingguo <he.qingguo@zte.com.cn>
2021-01-09 16:41:45 +08:00
Rob Scott
84e4b30a3e Updates related to PR feedback
- Remove feature gate consideration from EndpointSlice validation
- Deprecate topology field, note that it will be removed in future
release
- Update kube-proxy to check for NodeName if feature gate is enabled
- Add comments indicating the feature gates that can be used to enable
alpha API fields
- Add comments explaining use of deprecated address type in tests
2020-11-12 12:30:50 -08:00
Rob Scott
ff46573692 Cleaning up EndpointSlice update validation tests 2020-11-11 16:50:50 -08:00
Rob Scott
9613f79add Adding NodeName to EndpointSlice API, deprecation updates
In addition to adding NodeName, this notes that the topology field will
be deprecated soon. It also removes the IP address type that was
deprecated in Kubernetes 1.17 and intended to be removed in 1.20.
2020-11-11 16:50:23 -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
6e6d417993 endpointslice API: add accepting and terminating conditions
Signed-off-by: Andrew Sy Kim <kim.andrewsy@gmail.com>
2020-11-05 19:18:45 -05:00
Jordan Liggitt
d879965808 Clean up list items listType 2020-03-31 23:08:08 -04:00
Rob Scott
6a33727632 Adding AppProtocol to Service and Endpoints Ports 2020-02-25 17:42:34 -08:00
Rob Scott
a7e589a8c6 Promoting EndpointSlices to beta 2019-11-13 14:20:19 -08:00
Rob Scott
0fa9981e01 Splitting IP address type into IPv4 and IPv6 for EndpointSlices 2019-11-12 09:03:53 -08:00
John Howard
d00794ca60 Add appProtocol to EndpointSlice.Port 2019-11-08 09:22:50 -08:00