mirror of https://github.com/k3s-io/k3s.git
Fix crash on early snapshot
Don't attempt to retrieve snapshot metadata configmap if the apiserver isn't available. This could be triggered if the cron expression caused a snapshot to be triggered before the apiserver is up. Signed-off-by: Brad Davidson <brad.davidson@rancher.com>pull/5391/head
parent
9350016de8
commit
2a429aac65
|
@ -1251,19 +1251,22 @@ func (e *ETCD) Snapshot(ctx context.Context, config *config.Control) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
logrus.Debugf("Attempting to retrieve extra metadata from %s ConfigMap", snapshotExtraMetadataConfigMapName)
|
// make sure the core.Factory is initialized before attempting to add snapshot metadata
|
||||||
var extraMetadata string
|
var extraMetadata string
|
||||||
if snapshotExtraMetadataConfigMap, err := e.config.Runtime.Core.Core().V1().ConfigMap().Get(metav1.NamespaceSystem, snapshotExtraMetadataConfigMapName, metav1.GetOptions{}); err != nil {
|
if e.config.Runtime.Core == nil {
|
||||||
logrus.Debugf("Error encountered attempting to retrieve extra metadata from %s ConfigMap, error: %v", snapshotExtraMetadataConfigMapName, err)
|
logrus.Debugf("Cannot retrieve extra metadata from %s ConfigMap: runtime core not ready", snapshotExtraMetadataConfigMapName)
|
||||||
extraMetadata = ""
|
|
||||||
} else {
|
} else {
|
||||||
if m, err := json.Marshal(snapshotExtraMetadataConfigMap.Data); err != nil {
|
logrus.Debugf("Attempting to retrieve extra metadata from %s ConfigMap", snapshotExtraMetadataConfigMapName)
|
||||||
logrus.Debugf("Error attempting to marshal extra metadata contained in %s ConfigMap, error: %v", snapshotExtraMetadataConfigMapName, err)
|
if snapshotExtraMetadataConfigMap, err := e.config.Runtime.Core.Core().V1().ConfigMap().Get(metav1.NamespaceSystem, snapshotExtraMetadataConfigMapName, metav1.GetOptions{}); err != nil {
|
||||||
extraMetadata = ""
|
logrus.Debugf("Error encountered attempting to retrieve extra metadata from %s ConfigMap, error: %v", snapshotExtraMetadataConfigMapName, err)
|
||||||
} else {
|
} else {
|
||||||
logrus.Debugf("Setting extra metadata from %s ConfigMap", snapshotExtraMetadataConfigMapName)
|
if m, err := json.Marshal(snapshotExtraMetadataConfigMap.Data); err != nil {
|
||||||
logrus.Tracef("Marshalled extra metadata in %s ConfigMap was: %s", snapshotExtraMetadataConfigMapName, string(m))
|
logrus.Debugf("Error attempting to marshal extra metadata contained in %s ConfigMap, error: %v", snapshotExtraMetadataConfigMapName, err)
|
||||||
extraMetadata = base64.StdEncoding.EncodeToString(m)
|
} else {
|
||||||
|
logrus.Debugf("Setting extra metadata from %s ConfigMap", snapshotExtraMetadataConfigMapName)
|
||||||
|
logrus.Tracef("Marshalled extra metadata in %s ConfigMap was: %s", snapshotExtraMetadataConfigMapName, string(m))
|
||||||
|
extraMetadata = base64.StdEncoding.EncodeToString(m)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue