Commit Graph

9 Commits

Author SHA1 Message Date
Monis Khan
6a6771b514
svm: set UID and RV on SSA patch to cause conflict on logical create
When a resource gets deleted during migration, the SVM SSA patch
calls are interpreted as a logical create request.  Since the object
from storage is nil, the merged result is just a type meta object,
which lacks a name in the body.  This fails when the API server
checks that the name from the request URL and the body are the same.
Note that a create request is something that SVM controller should
never do.

Once the UID is set on the patch, the API server will fail the
request at a slightly earlier point with an "uid mismatch" conflict
error, which the SVM controller can handle gracefully.

Setting UID by itself is not sufficient.  When a resource gets
deleted and recreated, if RV is not set but UID is set, we would get
an immutable field validation error for attempting to update the
UID.  To address this, we set the resource version on the SSA patch
as well.  This will cause that update request to also fail with a
conflict error.

Added the create verb on all resources for SVM controller RBAC as
otherwise the API server will reject the request before it fails
with a conflict error.

The change addresses a host of other issues with the SVM controller:

1. Include failure message in SVM resource
2. Do not block forever on unsynced GC monitor
3. Do not immediately fail on GC monitor being missing, allow for
   a grace period since discovery may be out of sync
4. Set higher QPS and burst to handle large migrations

Test changes:

1. Clean up CRD webhook convertor logs
2. Allow SVM tests to be run multiple times to make finding flakes easier
3. Create and delete CRs during CRD test to force out any flakes
4. Add a stress test with multiple parallel migrations
5. Enable RBAC on KAS
6. Run KCM directly to exercise wiring and RBAC
7. Better logs during CRD migration
8. Scan audit logs to confirm SVM controller never creates

Signed-off-by: Monis Khan <mok@microsoft.com>
2024-07-18 17:19:11 -04:00
Maciej Szulik
ce01dfc492
Cleanup unused test functions - cont-ed
Following up the work started in 0c0bd6d this is further cleaning up the
test/utils directory getting rid of unused functions.
2024-07-17 16:22:11 +02:00
Joe Betz
c2b3871502 Add integration tests 2023-03-06 21:51:33 -05:00
mattjmcnaughton
42f8596b13
Fix staticcheck failures in test/utils/...
The `err` return value was being overwritten in an unintended way, which
means the function may not return the proper error value. This diff
ensures it does.
2019-10-01 09:46:45 -04:00
Haowei Cai
d35757c653 tests 2019-08-23 11:08:54 -07:00
Patrick Barker
9e4f8d6fae Audit test utils fix (#74276)
* changes audit e2e event version scheme; adds internal audit to common audit scheme; removes unneeded comments

* add more detail to audit missing events in e2e/integration tests

* adds version priority to audit scheme; updates comment
2019-02-22 00:19:51 -08:00
Patrick Barker
d995047366 adds dynamic audit integration test 2019-01-16 16:24:02 -08:00
Dennis Czombera
f9df691c72 Add an impersonation test case to the audit E2E test 2018-12-18 11:13:39 +01:00
Cao Shufeng
858e4508c4 add an integration test for advanced audit feature 2018-07-31 11:10:51 +08:00