Remove use of events from NodeController, to temporarily fix #6199

This commit is contained in:
David Oppenheimer 2015-04-04 11:56:43 -07:00
parent b0b6418ca3
commit c4a595aa7f

View File

@ -27,11 +27,9 @@ import (
"github.com/GoogleCloudPlatform/kubernetes/pkg/api" "github.com/GoogleCloudPlatform/kubernetes/pkg/api"
apierrors "github.com/GoogleCloudPlatform/kubernetes/pkg/api/errors" apierrors "github.com/GoogleCloudPlatform/kubernetes/pkg/api/errors"
"github.com/GoogleCloudPlatform/kubernetes/pkg/client" "github.com/GoogleCloudPlatform/kubernetes/pkg/client"
"github.com/GoogleCloudPlatform/kubernetes/pkg/client/record"
"github.com/GoogleCloudPlatform/kubernetes/pkg/cloudprovider" "github.com/GoogleCloudPlatform/kubernetes/pkg/cloudprovider"
"github.com/GoogleCloudPlatform/kubernetes/pkg/labels" "github.com/GoogleCloudPlatform/kubernetes/pkg/labels"
"github.com/GoogleCloudPlatform/kubernetes/pkg/probe" "github.com/GoogleCloudPlatform/kubernetes/pkg/probe"
"github.com/GoogleCloudPlatform/kubernetes/pkg/types"
"github.com/GoogleCloudPlatform/kubernetes/pkg/util" "github.com/GoogleCloudPlatform/kubernetes/pkg/util"
"github.com/golang/glog" "github.com/golang/glog"
) )
@ -77,7 +75,6 @@ type NodeController struct {
nodes []string nodes []string
kubeClient client.Interface kubeClient client.Interface
kubeletClient client.KubeletClient kubeletClient client.KubeletClient
recorder record.EventRecorder
registerRetryCount int registerRetryCount int
podEvictionTimeout time.Duration podEvictionTimeout time.Duration
deletingPodsRateLimiter util.RateLimiter deletingPodsRateLimiter util.RateLimiter
@ -98,14 +95,6 @@ func NewNodeController(
registerRetryCount int, registerRetryCount int,
podEvictionTimeout time.Duration, podEvictionTimeout time.Duration,
deletingPodsRateLimiter util.RateLimiter) *NodeController { deletingPodsRateLimiter util.RateLimiter) *NodeController {
eventBroadcaster := record.NewBroadcaster()
recorder := eventBroadcaster.NewRecorder(api.EventSource{Component: "controllermanager"})
if kubeClient != nil {
glog.Infof("Sending events to api server.")
eventBroadcaster.StartRecordingToSink(kubeClient.Events(""))
} else {
glog.Infof("No api server defined - no events will be sent to API server.")
}
return &NodeController{ return &NodeController{
cloud: cloud, cloud: cloud,
matchRE: matchRE, matchRE: matchRE,
@ -113,7 +102,6 @@ func NewNodeController(
staticResources: staticResources, staticResources: staticResources,
kubeClient: kubeClient, kubeClient: kubeClient,
kubeletClient: kubeletClient, kubeletClient: kubeletClient,
recorder: recorder,
registerRetryCount: registerRetryCount, registerRetryCount: registerRetryCount,
podEvictionTimeout: podEvictionTimeout, podEvictionTimeout: podEvictionTimeout,
deletingPodsRateLimiter: deletingPodsRateLimiter, deletingPodsRateLimiter: deletingPodsRateLimiter,
@ -338,9 +326,6 @@ func (nc *NodeController) DoCheck(node *api.Node) []api.NodeCondition {
// status. Keep listing pods to sanity check if pods are all deleted makes more sense. // status. Keep listing pods to sanity check if pods are all deleted makes more sense.
nc.deletePods(node.Name) nc.deletePods(node.Name)
} }
if oldReadyCondition != nil && oldReadyCondition.Status == api.ConditionTrue {
nc.recordNodeOfflineEvent(node)
}
} }
conditions = append(conditions, *newReadyCondition) conditions = append(conditions, *newReadyCondition)
@ -451,19 +436,6 @@ func (nc *NodeController) PopulateAddresses(nodes *api.NodeList) (*api.NodeList,
return nodes, nil return nodes, nil
} }
func (nc *NodeController) recordNodeOfflineEvent(node *api.Node) {
ref := &api.ObjectReference{
Kind: "Node",
Name: node.Name,
UID: types.UID(node.Name),
Namespace: "",
}
glog.V(2).Infof("Recording offline event message for node %s", node.Name)
// TODO: This requires a transaction, either both node status is updated
// and event is recorded or neither should happen, see issue #6055.
nc.recorder.Eventf(ref, "offline", "Node %s is now offline", node.Name)
}
func (nc NodeController) tryUpdateNodeStatus(node *api.Node) (error, time.Duration, api.NodeCondition) { func (nc NodeController) tryUpdateNodeStatus(node *api.Node) (error, time.Duration, api.NodeCondition) {
var err error var err error
var gracePeriod time.Duration var gracePeriod time.Duration
@ -509,10 +481,6 @@ func (nc NodeController) tryUpdateNodeStatus(node *api.Node) (error, time.Durati
readyCondition.LastProbeTime = lastReadyCondition.LastProbeTime readyCondition.LastProbeTime = lastReadyCondition.LastProbeTime
readyCondition.LastTransitionTime = nc.now() readyCondition.LastTransitionTime = nc.now()
} }
if readyCondition.Status != api.ConditionTrue &&
lastReadyCondition.Status == api.ConditionTrue {
nc.recordNodeOfflineEvent(node)
}
} }
_, err = nc.kubeClient.Nodes().Update(node) _, err = nc.kubeClient.Nodes().Update(node)
if err != nil { if err != nil {