@@ -26,6 +26,7 @@ import (
2626 "k8s.io/node-problem-detector/pkg/custompluginmonitor/plugin"
2727 cpmtypes "k8s.io/node-problem-detector/pkg/custompluginmonitor/types"
2828 "k8s.io/node-problem-detector/pkg/types"
29+ "k8s.io/node-problem-detector/pkg/util"
2930 "k8s.io/node-problem-detector/pkg/util/tomb"
3031)
3132
@@ -124,10 +125,16 @@ func (c *customPluginMonitor) generateStatus(result cpmtypes.Result) *types.Stat
124125 for i := range c .conditions {
125126 condition := & c .conditions [i ]
126127 if condition .Type == result .Rule .Condition {
127- status := result .ExitStatus >= cpmtypes . NonOK
128+ status := toConditionStatus ( result .ExitStatus )
128129 if condition .Status != status || condition .Reason != result .Rule .Reason {
129130 condition .Transition = timestamp
130131 condition .Message = result .Message
132+ events = append (events , util .GenerateConditionChangeEvent (
133+ condition .Type ,
134+ status ,
135+ result .Rule .Reason ,
136+ timestamp ,
137+ ))
131138 }
132139 condition .Status = status
133140 condition .Reason = result .Rule .Reason
@@ -143,6 +150,17 @@ func (c *customPluginMonitor) generateStatus(result cpmtypes.Result) *types.Stat
143150 }
144151}
145152
153+ func toConditionStatus (s cpmtypes.Status ) types.ConditionStatus {
154+ switch s {
155+ case cpmtypes .OK :
156+ return types .False
157+ case cpmtypes .NonOK :
158+ return types .True
159+ default :
160+ return types .Unknown
161+ }
162+ }
163+
146164// initializeStatus initializes the internal condition and also reports it to the node problem detector.
147165func (c * customPluginMonitor ) initializeStatus () {
148166 // Initialize the default node conditions
@@ -159,8 +177,7 @@ func initialConditions(defaults []types.Condition) []types.Condition {
159177 conditions := make ([]types.Condition , len (defaults ))
160178 copy (conditions , defaults )
161179 for i := range conditions {
162- // TODO(random-liu): Validate default conditions
163- conditions [i ].Status = false
180+ conditions [i ].Status = types .False
164181 conditions [i ].Transition = time .Now ()
165182 }
166183 return conditions
0 commit comments