mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 03:41:45 +00:00
Merge pull request #50263 from liyinan926/branch1
Automatic merge from submit-queue (batch tested with PRs 50173, 50324, 50288, 50263, 50333) Copy annotations from StatefulSet to owned ControllerRevisions **What this PR does / why we need it**: This PR starts copying annotations from a `StatefulSet`'s metadata to the `ControllerRevision`s it owns. `DaemonSet` controller copies the annotations from a `DaemonSet`s metadata to the `ControllerRevision`s it owns. One of the annotation copied is `kubernetes.io/change-cause`, which is used in `DaemonSetHistoryViewer` to fill in the `CHANGE-CAUSE` column of revision history of a `DaemonSet`. For consistency, the `StatefulSet` controller should do the same, i.e., copy annotations in a `StatefulSet`'s metadata to the `ControllerRevision`s it owns for consistency. **Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #50158. **Special notes for your reviewer**: /assign @kow3ns **Release note**: ```release-note Copy annotations from a StatefulSet's metadata to the ControllerRevisions it owns ```
This commit is contained in:
commit
8f5f061c66
@ -311,11 +311,21 @@ func newRevision(set *apps.StatefulSet, revision int64) (*apps.ControllerRevisio
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return history.NewControllerRevision(set,
|
||||
cr, err := history.NewControllerRevision(set,
|
||||
controllerKind,
|
||||
selector,
|
||||
runtime.RawExtension{Raw: patch},
|
||||
revision)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if cr.ObjectMeta.Annotations == nil {
|
||||
cr.ObjectMeta.Annotations = make(map[string]string)
|
||||
}
|
||||
for key, value := range set.Annotations {
|
||||
cr.ObjectMeta.Annotations[key] = value
|
||||
}
|
||||
return cr, nil
|
||||
}
|
||||
|
||||
// applyRevision returns a new StatefulSet constructed by restoring the state in revision to set. If the returned error
|
||||
|
@ -280,6 +280,12 @@ func TestCreateApplyRevision(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
set.Spec.Template.Spec.Containers[0].Name = "foo"
|
||||
if set.Annotations == nil {
|
||||
set.Annotations = make(map[string]string)
|
||||
}
|
||||
key := "foo"
|
||||
expectedValue := "bar"
|
||||
set.Annotations[key] = expectedValue
|
||||
restoredSet, err := applyRevision(set, revision)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@ -291,6 +297,13 @@ func TestCreateApplyRevision(t *testing.T) {
|
||||
if !history.EqualRevision(revision, restoredRevision) {
|
||||
t.Errorf("wanted %v got %v", string(revision.Data.Raw), string(restoredRevision.Data.Raw))
|
||||
}
|
||||
value, ok := restoredRevision.Annotations[key]
|
||||
if !ok {
|
||||
t.Errorf("missing annotation %s", key)
|
||||
}
|
||||
if value != expectedValue {
|
||||
t.Errorf("for annotation %s wanted %s got %s", key, expectedValue, value)
|
||||
}
|
||||
}
|
||||
|
||||
func newPVC(name string) v1.PersistentVolumeClaim {
|
||||
|
Loading…
Reference in New Issue
Block a user