mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-09-01 17:29:00 +00:00
clear init container status annotations when cleared in status
This commit is contained in:
@@ -103,6 +103,9 @@ func SetInitContainersStatusesAnnotations(pod *v1.Pod) error {
|
|||||||
}
|
}
|
||||||
pod.Annotations[v1.PodInitContainerStatusesAnnotationKey] = string(value)
|
pod.Annotations[v1.PodInitContainerStatusesAnnotationKey] = string(value)
|
||||||
pod.Annotations[v1.PodInitContainerStatusesBetaAnnotationKey] = string(value)
|
pod.Annotations[v1.PodInitContainerStatusesBetaAnnotationKey] = string(value)
|
||||||
|
} else {
|
||||||
|
delete(pod.Annotations, v1.PodInitContainerStatusesAnnotationKey)
|
||||||
|
delete(pod.Annotations, v1.PodInitContainerStatusesBetaAnnotationKey)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@@ -17,6 +17,7 @@ limitations under the License.
|
|||||||
package pod
|
package pod
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/json"
|
||||||
"reflect"
|
"reflect"
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
@@ -399,3 +400,52 @@ func TestIsPodAvailable(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSetInitContainersStatusesAnnotations(t *testing.T) {
|
||||||
|
testStatuses := []v1.ContainerStatus{
|
||||||
|
{
|
||||||
|
Name: "test",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
value, _ := json.Marshal(testStatuses)
|
||||||
|
testAnnotation := string(value)
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
pod *v1.Pod
|
||||||
|
annotations map[string]string
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "Populate annotations from status",
|
||||||
|
pod: &v1.Pod{
|
||||||
|
Status: v1.PodStatus{
|
||||||
|
InitContainerStatuses: testStatuses,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
annotations: map[string]string{
|
||||||
|
v1.PodInitContainerStatusesAnnotationKey: testAnnotation,
|
||||||
|
v1.PodInitContainerStatusesBetaAnnotationKey: testAnnotation,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Clear annotations if no status",
|
||||||
|
pod: &v1.Pod{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
Annotations: map[string]string{
|
||||||
|
v1.PodInitContainerStatusesAnnotationKey: testAnnotation,
|
||||||
|
v1.PodInitContainerStatusesBetaAnnotationKey: testAnnotation,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Status: v1.PodStatus{
|
||||||
|
InitContainerStatuses: []v1.ContainerStatus{},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
annotations: map[string]string{},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
for _, test := range tests {
|
||||||
|
SetInitContainersStatusesAnnotations(test.pod)
|
||||||
|
if !reflect.DeepEqual(test.pod.Annotations, test.annotations) {
|
||||||
|
t.Errorf("%v, actual = %v, expected = %v", test.name, test.pod.Annotations, test.annotations)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user