Merge pull request #5752 from vadasambar/fix/5704/fix-status-cm-nil-ptr-err

fix: empty status configmap leads to nil ptr error
This commit is contained in:
Kubernetes Prow Robot 2023-05-18 08:08:34 -07:00 committed by GitHub
commit 8d64f00d77
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 0 deletions

View File

@ -91,6 +91,9 @@ func WriteStatusConfigMap(kubeClient kube_client.Interface, namespace string, ms
maps := kubeClient.CoreV1().ConfigMaps(namespace)
configMap, getStatusError = maps.Get(context.TODO(), statusConfigMapName, metav1.GetOptions{})
if getStatusError == nil {
if configMap.Data == nil {
configMap.Data = make(map[string]string)
}
configMap.Data["status"] = statusMsg
if configMap.ObjectMeta.Annotations == nil {
configMap.ObjectMeta.Annotations = make(map[string]string)

View File

@ -95,6 +95,17 @@ func TestWriteStatusConfigMapExisting(t *testing.T) {
assert.True(t, ti.getCalled)
assert.True(t, ti.updateCalled)
assert.False(t, ti.createCalled)
// to test the case where configmap is empty
ti.configMap.Data = nil
result, err = WriteStatusConfigMap(ti.client, ti.namespace, "TEST_MSG", nil, "my-cool-configmap")
assert.Equal(t, ti.configMap, result)
assert.Contains(t, result.Data["status"], "TEST_MSG")
assert.Contains(t, result.ObjectMeta.Annotations, ConfigMapLastUpdatedKey)
assert.Nil(t, err)
assert.True(t, ti.getCalled)
assert.True(t, ti.updateCalled)
assert.False(t, ti.createCalled)
}
func TestWriteStatusConfigMapCreate(t *testing.T) {