@@ -22,13 +22,13 @@ type ConfigControllerFatalError struct {
22
22
}
23
23
24
24
// Error returns the error string for this fatal error
25
- func (e ConfigControllerFatalError ) Error () string {
25
+ func (e * ConfigControllerFatalError ) Error () string {
26
26
return fmt .Sprintf ("fatal error processing BuildConfig: %s" , e .Reason )
27
27
}
28
28
29
29
// IsFatal returns true if err is a fatal error
30
30
func IsFatal (err error ) bool {
31
- _ , isFatal := err .(ConfigControllerFatalError )
31
+ _ , isFatal := err .(* ConfigControllerFatalError )
32
32
return isFatal
33
33
}
34
34
@@ -73,7 +73,10 @@ func (c *BuildConfigController) HandleBuildConfig(bc *buildapi.BuildConfig) erro
73
73
if kerrors .IsConflict (err ) {
74
74
instantiateErr = fmt .Errorf ("unable to instantiate Build for BuildConfig %s/%s due to a conflicting update: %v" , bc .Namespace , bc .Name , err )
75
75
utilruntime .HandleError (instantiateErr )
76
- } else if buildgenerator .IsFatal (err ) || kerrors .IsNotFound (err ) || kerrors .IsBadRequest (err ) {
76
+ } else if buildgenerator .IsFatal (err ) || kerrors .IsNotFound (err ) || kerrors .IsBadRequest (err ) || kerrors .IsForbidden (err ) {
77
+ instantiateErr = fmt .Errorf ("gave up on Build for BuildConfig %s/%s due to fatal error: %v" , bc .Namespace , bc .Name , err )
78
+ utilruntime .HandleError (instantiateErr )
79
+ c .Recorder .Event (bc , kapi .EventTypeWarning , "BuildConfigInstantiateFailed" , instantiateErr .Error ())
77
80
return & ConfigControllerFatalError {err .Error ()}
78
81
} else {
79
82
instantiateErr = fmt .Errorf ("error instantiating Build from BuildConfig %s/%s: %v" , bc .Namespace , bc .Name , err )
0 commit comments