mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-29 06:27:05 +00:00
ignore clusterName on create and update
This commit is contained in:
parent
7be20b0dac
commit
858e515f85
@ -71,6 +71,9 @@ func BeforeCreate(strategy RESTCreateStrategy, ctx api.Context, obj runtime.Obje
|
||||
api.FillObjectMetaSystemFields(ctx, objectMeta)
|
||||
api.GenerateName(strategy, objectMeta)
|
||||
|
||||
// ClusterName is ignored and should not be saved
|
||||
objectMeta.ClusterName = ""
|
||||
|
||||
if errs := strategy.Validate(ctx, obj); len(errs) > 0 {
|
||||
return errors.NewInvalid(kind.GroupKind(), objectMeta.Name, errs)
|
||||
}
|
||||
|
@ -159,6 +159,7 @@ func (t *Tester) TestCreate(valid runtime.Object, createFn CreateFunc, getFn Get
|
||||
}
|
||||
t.testCreateInvokesValidation(invalid...)
|
||||
t.testCreateValidatesNames(copyOrDie(valid))
|
||||
t.testCreateIgnoreClusterName(copyOrDie(valid))
|
||||
}
|
||||
|
||||
// Test updating an object.
|
||||
@ -174,6 +175,7 @@ func (t *Tester) TestUpdate(valid runtime.Object, createFn CreateFunc, getFn Get
|
||||
t.testUpdateRetrievesOldObject(copyOrDie(valid), createFn, getFn)
|
||||
t.testUpdatePropagatesUpdatedObjectError(copyOrDie(valid), createFn, getFn)
|
||||
t.testUpdateIgnoreGenerationUpdates(copyOrDie(valid), createFn, getFn)
|
||||
t.testUpdateIgnoreClusterName(copyOrDie(valid), createFn, getFn)
|
||||
}
|
||||
|
||||
// Test deleting an object.
|
||||
@ -430,6 +432,22 @@ func (t *Tester) testCreateResetsUserData(valid runtime.Object) {
|
||||
}
|
||||
}
|
||||
|
||||
func (t *Tester) testCreateIgnoreClusterName(valid runtime.Object) {
|
||||
objectMeta := t.getObjectMetaOrFail(valid)
|
||||
objectMeta.Name = t.namer(3)
|
||||
objectMeta.ClusterName = "clustername-to-ignore"
|
||||
|
||||
obj, err := t.storage.(rest.Creater).Create(t.TestContext(), copyOrDie(valid))
|
||||
if err != nil {
|
||||
t.Fatalf("Unexpected error: %v", err)
|
||||
}
|
||||
defer t.delete(t.TestContext(), obj)
|
||||
createdObjectMeta := t.getObjectMetaOrFail(obj)
|
||||
if len(createdObjectMeta.ClusterName) != 0 {
|
||||
t.Errorf("Expected empty clusterName on created object, got '%v'", createdObjectMeta.ClusterName)
|
||||
}
|
||||
}
|
||||
|
||||
// =============================================================================
|
||||
// Update tests.
|
||||
|
||||
@ -691,6 +709,41 @@ func (t *Tester) testUpdateRejectsMismatchedNamespace(obj runtime.Object, create
|
||||
}
|
||||
}
|
||||
|
||||
func (t *Tester) testUpdateIgnoreClusterName(obj runtime.Object, createFn CreateFunc, getFn GetFunc) {
|
||||
ctx := t.TestContext()
|
||||
|
||||
foo := copyOrDie(obj)
|
||||
name := t.namer(9)
|
||||
t.setObjectMeta(foo, name)
|
||||
|
||||
if err := createFn(ctx, foo); err != nil {
|
||||
t.Errorf("unexpected error: %v", err)
|
||||
}
|
||||
|
||||
storedFoo, err := getFn(ctx, foo)
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error: %v", err)
|
||||
}
|
||||
|
||||
older := copyOrDie(storedFoo)
|
||||
olderMeta := t.getObjectMetaOrFail(older)
|
||||
olderMeta.ClusterName = "clustername-to-ignore"
|
||||
|
||||
_, _, err = t.storage.(rest.Updater).Update(t.TestContext(), olderMeta.Name, rest.DefaultUpdatedObjectInfo(older, api.Scheme))
|
||||
if err != nil {
|
||||
t.Errorf("Unexpected error: %v", err)
|
||||
}
|
||||
|
||||
updatedFoo, err := getFn(ctx, older)
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error: %v", err)
|
||||
}
|
||||
if clusterName := t.getObjectMetaOrFail(updatedFoo).ClusterName; len(clusterName) != 0 {
|
||||
t.Errorf("Unexpected clusterName update: expected empty, got %v", clusterName)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// =============================================================================
|
||||
// Deletion tests.
|
||||
|
||||
|
@ -95,6 +95,9 @@ func BeforeUpdate(strategy RESTUpdateStrategy, ctx api.Context, obj, old runtime
|
||||
|
||||
strategy.PrepareForUpdate(ctx, obj, old)
|
||||
|
||||
// ClusterName is ignored and should not be saved
|
||||
objectMeta.ClusterName = ""
|
||||
|
||||
// Ensure some common fields, like UID, are validated for all resources.
|
||||
errs, err := validateCommonFields(obj, old)
|
||||
if err != nil {
|
||||
|
Loading…
Reference in New Issue
Block a user