Commit Graph

75 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
a2a97119bb Merge pull request #135361 from Karthik-K-N/cel-test-imporvements
CEL test imporvements to use test context across test instead of generic context
2025-12-17 21:41:45 -08:00
Kubernetes Prow Robot
0f093c9f49 Merge pull request #134921 from Karthik-K-N/cel-test
Improve CEL Policy Admission test
2025-11-20 10:26:32 -08:00
Karthik Bhat
0ffcac7fc7 Use test context instead of generic context 2025-11-20 12:06:03 +05:30
Karthik Bhat
3e19cc5160 Address review comments 2025-11-19 21:07:28 +05:30
Jordan Liggitt
bd11e52bfc Drop locked StrictCostEnforcementForVAP and StrictCostEnforcementForWebhooks feature gates 2025-10-31 00:03:42 -04:00
Karthik Bhat
b72c9e4179 Improve CEL Policy admission test 2025-10-28 15:08:54 +05:30
Patrick Ohly
21d929f599 integration: use --runtime-config-emulation-forward-compatible
Some tests do version emulation and need the DRA feature. In that combination
the --runtime-config-emulation-forward-compatible option is needed to allow
enabling the V1 API although it's only available in 1.34.
2025-07-24 08:33:56 +02:00
Patrick Ohly
5c4f81743c DRA: use v1 API
As before when adding v1beta2, DRA drivers built using the
k8s.io/dynamic-resource-allocation helper packages remain compatible with all
Kubernetes release >= 1.32. The helper code picks whatever API version is
enabled from v1beta1/v1beta2/v1.

However, the control plane now depends on v1, so a cluster configuration where
only v1beta1 or v1beta2 are enabled without the v1 won't work.
2025-07-24 08:33:45 +02:00
Cici Huang
a3ecea296c manual change 2025-07-15 01:44:13 +00:00
Kubernetes Prow Robot
3430e34d88 Merge pull request #132656 from liggitt/selector-authz
KEP-4601: Graduate selector authorization to stable
2025-07-14 16:42:38 -07:00
Jordan Liggitt
a04e7cf5eb KEP-4601: Graduate selector authorization to stable 2025-07-14 16:19:52 -04:00
PatrickLaabs
1802c55652 chore: depr. pointer pkg replacement for test integration 2025-07-06 22:02:04 +02:00
Ben Luddy
190c8c7abc Use per-policy marker names for VAP integration tests.
Writes to policy resources don't instantaneously take effect in admission. ValidatingAdmissionPolicy
integration tests determine that the policies under test have taken effect by adding a sentinel
policy rule and polling until that rule is applied to a request.

If the marker resource names are the same for each test case in a series of test cases, then
observing a policy's effect on a marker request only indicates that _any_ test policy is in effect,
but it's not necessarily the policy the current test case is waiting for. For example:

1. Test 1 creates a policy and binding.

2. The policy and binding are observed by the admission plugin and take effect.

3. Test 1 observes that a policy is in effect via marker requests.

4. Test 1 exercises the behavior under test and successfully deletes the policy and binding it
created.

5. Test 2 creates a policy and binding.

6. Test 2 observes that a policy is in effect via marker requests, but the policy in effect is still
the one created by Test 1.

7. Test 2 exercises the behavior under test, which fails because it was evaluated against Test 1's
policy.

Generating a per-policy name for the marker resource in each test resolves the timing issue. In the
example, step (6) will not proceed until the admission plugin has observed the policy and binding
created in (5).
2025-06-25 11:17:20 -04:00
Jefftree
c21f26895c Fix VAP test for v1.34 2025-04-21 17:34:41 +00:00
Morten Torkildsen
39507d911f Add resource v1beta2 API 2025-03-26 14:41:09 +00:00
Patrick Ohly
56bd8d86a5 test/integration: use default API groups in test apiserver
The goal is to make the test apiserver behave as much as kube-apiserver as
possible. This ensures that tests are as realistic as possible out-of-the-box.
If a test needs a special setup, then that should be visible in the test
because it passes additional flags or options.

One historic deviation from that goal was enabling all API groups. That
change (from 7185624688) gets reverted and tests
which happened to rely on this get updated.
2025-02-24 10:20:06 +01:00
Siyuan Zhang
8fc3a33454 Refactor compatibility version code
Replace DefaultComponentGlobalsRegistry with new instance of componentGlobalsRegistry in test api server.

Signed-off-by: Siyuan Zhang <sizhang@google.com>

move kube effective version validation out of component base.

Signed-off-by: Siyuan Zhang <sizhang@google.com>

move DefaultComponentGlobalsRegistry out of component base.

Signed-off-by: Siyuan Zhang <sizhang@google.com>

move ComponentGlobalsRegistry out of featuregate pkg.

Signed-off-by: Siyuan Zhang <sizhang@google.com>

remove usage of DefaultComponentGlobalsRegistry in test files.

Signed-off-by: Siyuan Zhang <sizhang@google.com>

change non-test DefaultKubeEffectiveVersion to use DefaultBuildEffectiveVersion.

Signed-off-by: Siyuan Zhang <sizhang@google.com>

Restore useDefaultBuildBinaryVersion in effective version.

Signed-off-by: Siyuan Zhang <sizhang@google.com>

rename DefaultKubeEffectiveVersion to DefaultKubeEffectiveVersionForTest.

Signed-off-by: Siyuan Zhang <sizhang@google.com>

pass options.ComponentGlobalsRegistry into config for controller manager and scheduler.

Signed-off-by: Siyuan Zhang <sizhang@google.com>

Pass apiserver effective version to DefaultResourceEncodingConfig.

Signed-off-by: Siyuan Zhang <sizhang@google.com>

change statusz registry to take effective version from the components.

Signed-off-by: Siyuan Zhang <sizhang@google.com>

Address review comments

Signed-off-by: Siyuan Zhang <sizhang@google.com>

update vendor

Signed-off-by: Siyuan Zhang <sizhang@google.com>
2025-02-05 16:10:53 -08:00
Jefftree
3cd1c8dd2d Drop v1alpha1 VAP in CEL tests 2024-12-13 18:35:17 +00:00
Patrick Ohly
33ea278c51 DRA: use v1beta1 API
No code is left which depends on the v1alpha3, except of course the code
implementing that version.
2024-11-06 13:03:19 +01:00
Anish Shah
7e3ae1060f integration: RBAC tests for /resize request
The test confirms that the subject can successfully
resize the Pod resources but not the entire pod.
2024-11-06 01:33:14 +00:00
Joe Betz
a0f419fe56 Add integration tests
Co-authored-by: cici37 <cicih@google.com>
Co-authored-by: Alexander Zielensk <alexzielenski@gmail.com>
2024-11-04 21:40:54 -05:00
Joe Betz
3a1733f302 Add MutatingAdmissionPolicy API
This is closely aligned with ValidatingAdmissionPolicy
except that instead of validations that can fail with
messages, there are mutations, which can be defined
either with as an ApplyConfiguration or JSONPatch.

Co-authored-by: cici37 <cicih@google.com>
2024-11-04 21:40:38 -05:00
Jordan Liggitt
9caca73126 KEP-4601: AuthorizeNodeWithSelectors / AuthorizeWithSelectors to beta 2024-10-17 21:02:55 -04:00
Cici Huang
baeeb66613 Update tests 2024-10-08 17:02:07 +00:00
Kubernetes Prow Robot
80941e3e87 Merge pull request #127643 from Jefftree/set-emulation-integration-test
Allow emulation version to be set in integration test
2024-09-27 21:56:01 +01:00
Jefftree
dacc2e1f5d Allow emulation version to be set in integration test 2024-09-25 22:01:15 -04:00
Aaron Prindle
701e6c7ab1 chore: bump DefaultKubeBinaryVersion to 1.32, make 1.32 CEL changes, fix int tests to handle 1 version off API deprecation, and fix prerelease-lifecycle-gen for # of APIs 2024-09-17 19:32:14 +00:00
Cici Huang
0f19faf9be Remove feature gate ValiatingAdmissionPolicy after stable. 2024-08-22 17:39:18 +00:00
Richa Banker
4acedb5132 init a common apiserver for TestAuthorizationDecisionCaching testcases 2024-08-16 10:52:30 -07:00
Richa Banker
342ecab56a init a common apiserver for Test_ValidateSecondaryAuthorization testcases 2024-08-16 10:52:30 -07:00
Richa Banker
99eaa71f0e init a common apiserver for TestCRDParams testcases 2024-08-16 10:52:30 -07:00
Richa Banker
de2730a9a6 split Test_CostLimitForValidation into feature-enabled and feature-disabled tests, init a common apiserver for all testcases 2024-08-16 10:52:30 -07:00
Richa Banker
1e03472fe8 init a common apiserver for Test_ValidateNamespace_WithConfigMapParams testcases 2024-08-16 10:52:29 -07:00
Richa Banker
9df04b7c78 split Test_ValidateNamespace_NoParams into successes and failures tests, init a common apiserver for all testcases 2024-08-16 10:52:29 -07:00
Cici Huang
a48a92c72e Allowing direct CEL reserved keyword usage in CRD (#126188)
* automatically escape reserved keywords for direct usage

* Add reserved keyword support in a ratcheting way, add tests.

---------

Co-authored-by: Wenxue Zhao <ballista01@outlook.com>
2024-07-23 15:45:20 -07:00
Patrick Ohly
91d7882e86 DRA: new API for 1.31
This is a complete revamp of the original API. Some of the key
differences:
- refocused on structured parameters and allocating devices
- support for constraints across devices
- support for allocating "all" or a fixed amount
  of similar devices in a single request
- no class for ResourceClaims, instead individual
  device requests are associated with a mandatory
  DeviceClass

For the sake of simplicity, optional basic types (ints, strings) where the null
value is the default are represented as values in the API types. This makes Go
code simpler because it doesn't have to check for nil (consumers) and values
can be set directly (producers). The effect is that in protobuf, these fields
always get encoded because `opt` only has an effect for pointers.

The roundtrip test data for v1.29.0 and v1.30.0 changes because of the new
"request" field. This is considered acceptable because the entire `claims`
field in the pod spec is still alpha.

The implementation is complete enough to bring up the apiserver.
Adapting other components follows.
2024-07-22 18:09:34 +02:00
Jordan Liggitt
83bd512861 Adjust CEL cost calculation and versioning for authorization library 2024-07-19 15:06:49 -04:00
Cici Huang
d6e4115ead Adding the feature gates to fix cost for VAP and webhook matchConditions. 2024-05-10 22:07:40 +00:00
Marek Siarkowicz
3ee8178768 Cleanup defer from SetFeatureGateDuringTest function call 2024-04-24 20:25:29 +02:00
cici37
de506ce7ac Promote ValidatingAdmissionPolicy to GA. 2024-03-05 16:00:21 -08:00
Jiahui Feng
e257522889 add transient types to admission test. 2024-02-29 12:08:43 -08:00
Jiahui Feng
64ee859aa8 make ValidatingAdmissionPolicy ignore excluded resources. 2024-02-28 15:31:44 -08:00
Jiahui Feng
5b1fffa3e4 add resource filter to admission initializer. 2024-02-28 15:31:18 -08:00
Alexander Zielenski
b636984004 test: remove unnecessary skip healthz check from test
snuck in there while I was working on the test, but is ultimately not necessary to test the functionality.

skipping healthz check resulted in leaking goroutines from poststarthooks.
2024-02-01 14:50:54 -08:00
Alexander Zielenski
71559bd026 bugfix: dont skip reconcile for unchanged policy if last sync failed 2024-01-29 11:16:59 -08:00
carlory
57a5db8da3 remove feature-gate APISelfSubjectReview 2023-11-24 16:59:21 +08:00
Jiahui Feng
e4776e0f85 avoid infinite recursion for type resolvers. 2023-10-31 10:23:50 -07:00
Jiahui Feng
3f73cdcf2a extend SchemaResolver for more types of schemas. 2023-10-26 10:25:41 -07:00
Alexander Zielenski
3b9af47118 add admission policy integration test all resources
duplicates a lot of existing webhook integration test code
2023-07-24 10:54:54 -07:00
Alexander Zielenski
d647958744 update codegen 2023-07-21 13:56:23 -07:00