func (r *replication) shouldScheduleForNode(node types.NodeName, logger logging.Logger) bool { nodeReality, err := r.queryReality(node) if err != nil { logger.WithError(err).Errorln("Could not read Reality for this node. Will proceed to schedule onto it.") return true } if err == pods.NoCurrentManifest { logger.Infoln("Nothing installed on this node yet.") return true } if nodeReality != nil { nodeRealitySHA, err := nodeReality.SHA() if err != nil { logger.WithError(err).Errorln("Unable to compute manifest SHA for this node. Attempting to schedule anyway") return true } replicationRealitySHA, err := r.manifest.SHA() if err != nil { logger.WithError(err).Errorln("Unable to compute manifest SHA for this daemon set. Attempting to schedule anyway") return true } if nodeRealitySHA == replicationRealitySHA { logger.Info("Reality for this node matches this DS. No action required.") return false } } return true }