Commit Graph

75 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
db63a581ca Merge pull request #134366 from tallclair/feature-gates-test
Set multiple feature gates simultaneously in test
2025-10-13 13:11:33 -07:00
Lalit Chauhan
8b5cf608fd Add k8s-label-key format for toleration key 2025-10-10 16:25:48 +00:00
Aaron Prindle
8e4cd1f3b6 address feedback 2025-10-08 20:45:07 +00:00
Aaron Prindle
d77cb206a0 feat: migrate k8s:format=k8s-long-name-caseless validation on OpaqueDeviceConfiguration.Driver to declarative validation 2025-10-08 20:45:01 +00:00
Aaron Prindle
2fa703bfb6 address feedback 2025-10-07 22:49:14 +00:00
Aaron Prindle
1c0f0add8a feat: add +k8s:immutable tag to ResourceClaim.spec and associated tests 2025-10-07 22:49:11 +00:00
Kubernetes Prow Robot
73bcd2b0e4 Merge pull request #134333 from lalitc375/reserved-for
Add listType=map and listMapekey=uid for ResourceClaimStatus.ReservedFor
2025-10-07 15:44:59 -07:00
Kubernetes Prow Robot
62e9524c85 Merge pull request #134412 from aaron-prindle/resourceclaim-strategy-cleanup
fix: remove unnecessary ValidateResourceClaim call from resourclaim ValidateUpdate
2025-10-07 14:24:59 -07:00
Lalit Chauhan
1fb8674387 Add listType=map and listMapekey=uid for ResourceClaimStatus.ReservedFor 2025-10-07 20:07:48 +00:00
Kubernetes Prow Robot
ad82c3d39f Merge pull request #134391 from lalitc375/k8s-uuid
Add DV for uids in resourceClaim Status
2025-10-06 15:42:59 -07:00
Aaron Prindle
fd12fc00c9 fix: remove unnecessary ValidateResourceClaim call from resourclaim ValidateUpdate 2025-10-06 22:10:30 +00:00
Lalit Chauhan
4ca286819a Add DV for uids in resourceClaim Status 2025-10-06 20:54:00 +00:00
yongruilin
763c01ef68 feat(validation): Add normalization rules for ResourceClaim validation 2025-10-06 17:54:01 +00:00
Lalit Chauhan
f79fb9e59e Fix rebase issues 2025-10-02 17:23:25 +00:00
Lalit Chauhan
c4c7efc4f9 apply feedback 2025-10-02 05:40:59 +00:00
Lalit Chauhan
515b579945 feat(resource): Add maxItems validation for DeviceClass configs 2025-10-02 05:40:58 +00:00
Lalit Chauhan
e693da7290 feat(resource): Add maxItems validation for DeviceClass selectors
This commit introduces a validation rule to limit the number of selectors
in a DeviceClass to 32. This is done by adding the `+k8s:maxItems=32`
marker to the DeviceClassSpec and running the code generator.

The following changes are included:
- Updated `staging/src/k8s.io/api/resource/v*/types.go` with the validation marker.
- Regenerated validation code in `pkg/apis/resource/v*/zz_generated.validations.go`.
- Improved error message in `pkg/apis/resource/validation/validation.go`.
- Added tests in `pkg/registry/resource/deviceclass/declarative_validation_test.go`
  to cover the new validation.
2025-10-02 05:40:58 +00:00
Tim Allclair
4986abe0b8 Automated refactoring to use SetFeatureGatesDuringTest 2025-10-01 21:10:53 -07:00
Kubernetes Prow Robot
0f8107c736 Merge pull request #134211 from aaron-prindle/resourceclaim_maxitems
Add declarative validation +k8s:maxItems tag to ResourceClaim
2025-10-01 15:22:56 -07:00
Aaron Prindle
ef2b68388e add +k8s:maxItems tag logic and tests 2025-09-29 18:53:27 +00:00
Kubernetes Prow Robot
da552ef1d7 Merge pull request #134240 from yongruilin/master_vg_strategy-call
Refactor: Centralize declarative validation logic
2025-09-29 11:30:17 -07:00
Joe Betz
03a1a22478 Add declarative validation tests, use tweak pattern, and additional test structure changes 2025-09-29 16:03:53 +00:00
Dan Bokete
b40b67b9cf Deprecate caseless driver name validation and enforce lowercase warnings
- Deprecate IsDNS1123SubdomainCaseless to avoid caseless validation issues.
- Warn when ResourceSlice driver names contain uppercase characters.
- Clarify driver names must be DNS subdomains and use only lowercase letters.
- Update tests, staging code, and OpenAPI spec to reflect the changes.
2025-09-27 13:23:59 +01:00
yongruilin
2d7dd9164f Refactor: Centralize declarative validation and migration logic
The boilerplate for running declarative validation was duplicated across multiple resource strategies. This included feature gate checks, metric identifier generation, error comparison, and conditional merging logic, which made the code verbose and difficult to maintain.

This commit introduces a new helper function, `rest.ValidateDeclarativelyWithMigrationChecks`, to encapsulate this common logic. All relevant strategies have been refactored to use this new function, resulting in cleaner and more concise code.
2025-09-26 17:22:46 +00:00
Joe Betz
7efc77f493 Apply feedback 2025-09-25 14:51:52 -04:00
Joe Betz
7019a088c3 Add declarative validation tests for ResourceClaim status 2025-09-24 10:00:17 -04:00
Joe Betz
8606fa03dc Add declarative validation of ResourceClaim status pool field 2025-09-24 10:00:17 -04:00
Kubernetes Prow Robot
725c9153df Merge pull request #134078 from aaron-prindle/vg-enable-deviceclass
feat(validation-gen) enable declarative validation for resource.k8s.io DeviceClass
2025-09-18 15:24:12 -07:00
Aaron Prindle
17665a39cf feat(validation-gen) enable declarative validation for resource.k8s.io DeviceClass 2025-09-17 17:21:19 +00:00
yongruilin
eca1cfb259 chore(validation): add validation identifier for declarative validation in ResourceClaim 2025-09-16 21:36:18 +00:00
yongruilin
c0fcb10acf fix(tests): update fake client initialization and add resource version handling in validation tests 2025-09-16 21:36:18 +00:00
yongruilin
7c45b1aa3b refactor: simplify declarative validation tests for ResourceClaim 2025-09-16 21:36:18 +00:00
yongruilin
380c4c222e feat(validation-gen): Add declarative validation support for ResourceClaim/(v1,v1beta1,v1beta2) 2025-09-16 21:36:18 +00:00
Sunyanan Choochotkaew
5ad969588d KEP-5075: API updates
Signed-off-by: Sunyanan Choochotkaew <sunyanan.choochotkaew1@ibm.com>
2025-07-30 09:26:40 +09:00
yliao
34a64db2c7 extended resource backed by DRA: implementation 2025-07-29 18:55:21 +00:00
Kobayashi,Daisuke
987ad39516 KEP-5007 DRA Device Binding Conditions: API Related code Update 2025-07-29 11:32:47 +00:00
Patrick Ohly
cff91579e8 DRA API: v1 registration + tests 2025-07-24 08:30:25 +02:00
Davanum Srinivas
ebc1ccc491 Bump k8s.io/kube-openapi to latest SHA (f3f2b991d03b)
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2025-07-14 07:24:48 -04:00
Patrick Ohly
10de6780cf DRA API: remove obsolete types from v1alpha3
The v1alpha3 version is still needed for DeviceTaintRule, but the rest of the
types and most structs became obsolete in v1.32 when we introduced v1beta1 and
bumped the storage version to v1beta1.

Removing them now simplifies adding new features because new fields don't need
to be added to these obsolete types. This could have been done already in 1.33,
but wasn't to minimize disrupting on-going work.
2025-06-06 12:06:28 +02:00
Rita Zhang
5058e385b0 DRAAdminAccess: update label key
Signed-off-by: Rita Zhang <rita.z.zhang@gmail.com>
2025-05-27 21:19:25 -07:00
Kubernetes Prow Robot
070f0ad3bd Merge pull request #129970 from mortent/AddResourceV1beta2API
Add resource v1beta2 API
2025-03-26 09:10:47 -07:00
Morten Torkildsen
39507d911f Add resource v1beta2 API 2025-03-26 14:41:09 +00:00
Patrick Ohly
a18354c60d DRA API: fix DeviceTaintRule REST storage test
The defaulting of TimeAdded randomly broke some of the tests:

   TestList:
       resttest.go:1393: expected:
       []runtime.Object{(*resource.DeviceTaintRule)(0xc000b83080), (*resource.DeviceTaintRule)(0xc000b831e0)},
       got:
       []runtime.Object{(*resource.DeviceTaintRule)(0xc0003db608), (*resource.DeviceTaintRule)(0xc0003db750)}
       ...

   TestCreate:
    resttest.go:346: unexpected obj: &resource.DeviceTaintRule{TypeMeta:v1.TypeMeta{Kind:"", APIVersion:""}, ObjectMeta:v1.ObjectMeta{Name:"foo2", GenerateName:"", Namespace:"", SelfLink:"", UID:"18d3084d-7d11-4575-8730-4650b81cf1a7", ResourceVersion:"8", Generation:1, CreationTimestamp:time.Date(2025, time.March, 21, 8, 27, 23, 0, time.Local), DeletionTimestamp:<nil>, DeletionGracePeriodSeconds:(*int64)(nil), Labels:map[string]string(nil), Annotations:map[string]string(nil), OwnerReferences:[]v1.OwnerReference(nil), Finalizers:[]string(nil), ManagedFields:[]v1.ManagedFieldsEntry(nil)}, Spec:resource.DeviceTaintRuleSpec{DeviceSelector:(*resource.DeviceTaintSelector)(nil), Taint:resource.DeviceTaint{Key:"example.com/taint", Value:"", Effect:"NoExecute", TimeAdded:time.Date(2025, time.March, 21, 8, 27, 23, 0, time.Local)}}}, expected &resource.DeviceTaintRule{TypeMeta:v1.TypeMeta{Kind:"", APIVersion:""}, ObjectMeta:v1.ObjectMeta{Name:"foo2", GenerateName:"", Namespace:"", SelfLink:"", UID:"18d3084d-7d11-4575-8730-4650b81cf1a7", ResourceVersion:"8", Generation:1, CreationTimestamp:time.Date(2025, time.March, 21, 8, 27, 23, 0, time.Local), DeletionTimestamp:<nil>, DeletionGracePeriodSeconds:(*int64)(nil), Labels:map[string]string(nil), Annotations:map[string]string(nil), OwnerReferences:[]v1.OwnerReference(nil), Finalizers:[]string(nil), ManagedFields:[]v1.ManagedFieldsEntry(nil)}, Spec:resource.DeviceTaintRuleSpec{DeviceSelector:(*resource.DeviceTaintSelector)(nil), Taint:resource.DeviceTaint{Key:"example.com/taint", Value:"", Effect:"NoExecute", TimeAdded:time.Date(2025, time.March, 21, 8, 27, 24, 0, time.Local)}}}

Failure rate before: 3m40s: 1332 runs so far, 7 failures (0.53%)

It's not obvious from the test failure, but the difference is the
TimeAdded. Setting it beforehand to a value that can be encoded (i.e. truncated
to seconds) fixes the flake.

Failure rate after: 5m0s: 1825 runs so far, 0 failures
2025-03-21 08:33:39 +01:00
Cici Huang
ece1d76e80 API manual changes
Co-authored-by: Morten Torkildsen <mortent@google.com>
2025-03-19 22:10:48 +00:00
Kubernetes Prow Robot
ab3cec0701 Merge pull request #130447 from pohly/dra-device-taints
device taints and tolerations (KEP 5055)
2025-03-19 13:00:32 -07:00
Rita Zhang
0301e5a9f8 DRA: AdminAccess validate based on namespace label
Signed-off-by: Rita Zhang <rita.z.zhang@gmail.com>
2025-03-18 22:56:54 -07:00
Patrick Ohly
797475e113 DRA: add device taints API
This adds the "DeviceTaint" top-level type to v1alpha3 and related fields to
ResourceSlice and ResourceClaim. It's complete enough bring up an API server
and generate files.
2025-03-18 20:52:54 +01:00
Morten Torkildsen
a716095a8a DRA: Update validation for Prioritized Alternatives in Device Requests 2025-02-28 19:28:50 +00:00
Lionel Jouin
43d23b8994 [KEP-4817] Use structured.MakeDeviceID
Signed-off-by: Lionel Jouin <lionel.jouin@est.tech>
2024-11-07 09:59:56 +01:00
Lionel Jouin
a062f91106 [KEP-4817] Fixes based on review
* Rename HWAddress to HardwareAddress
* Fix condition validation
* Remove feature gate validation
* Fix drop field on disabled feature gate

Signed-off-by: Lionel Jouin <lionel.jouin@est.tech>
2024-11-07 09:59:56 +01:00