@@ -102,7 +102,11 @@ func NewModuleCacheServiceImpl(logger *zap.SugaredLogger, K8sUtil *k8s.K8sServic
102
102
if serverEnvConfig .DevtronInstallationType == serverBean .DevtronInstallationTypeOssHelm {
103
103
// listen in installer object to save status in-memory
104
104
// build informer to listen on installer object
105
- go impl .buildInformerToListenOnInstallerObject ()
105
+ err := impl .buildInformerToListenOnInstallerObject ()
106
+ if err != nil {
107
+ log .Println ("Error building informer:" , err )
108
+ return nil , err
109
+ }
106
110
}
107
111
108
112
return impl , nil
@@ -123,42 +127,43 @@ func (impl *ModuleCacheServiceImpl) updateModuleToInstalled(moduleName string) e
123
127
return nil
124
128
}
125
129
126
- func (impl * ModuleCacheServiceImpl ) buildInformerToListenOnInstallerObject () {
130
+ func (impl * ModuleCacheServiceImpl ) buildInformerToListenOnInstallerObject () error {
127
131
impl .logger .Debug ("building informer cache to listen on installer object" )
128
132
_ , _ , clusterDynamicClient , err := impl .K8sUtil .GetK8sInClusterConfigAndDynamicClients ()
129
133
if err != nil {
130
134
log .Println ("not able to get k8s cluster rest config." , "error" , err )
131
- os .Exit (2 )
132
- return
133
- }
134
-
135
- installerResource := schema.GroupVersionResource {
136
- Group : impl .serverEnvConfig .InstallerCrdObjectGroupName ,
137
- Version : impl .serverEnvConfig .InstallerCrdObjectVersion ,
138
- Resource : impl .serverEnvConfig .InstallerCrdObjectResource ,
135
+ return err
139
136
}
140
- factory := dynamicinformer .NewFilteredDynamicSharedInformerFactory (
141
- clusterDynamicClient , time .Minute , impl .serverEnvConfig .InstallerCrdNamespace , nil )
142
- informer := factory .ForResource (installerResource ).Informer ()
143
-
144
- informer .AddEventHandler (cache.ResourceEventHandlerFuncs {
145
- AddFunc : func (obj interface {}) {
146
- impl .handleInstallerObjectChange (obj )
147
- },
148
- UpdateFunc : func (oldObj , newObj interface {}) {
149
- impl .handleInstallerObjectChange (newObj )
150
- },
151
- DeleteFunc : func (obj interface {}) {
152
- impl .serverDataStore .InstallerCrdObjectStatus = ""
153
- impl .serverDataStore .InstallerCrdObjectExists = false
154
- },
155
- })
156
-
157
- ctx , cancel := signal .NotifyContext (context .Background (), os .Interrupt )
158
- defer cancel ()
159
-
160
- go informer .Run (ctx .Done ())
161
- <- ctx .Done ()
137
+ go func () {
138
+ installerResource := schema.GroupVersionResource {
139
+ Group : impl .serverEnvConfig .InstallerCrdObjectGroupName ,
140
+ Version : impl .serverEnvConfig .InstallerCrdObjectVersion ,
141
+ Resource : impl .serverEnvConfig .InstallerCrdObjectResource ,
142
+ }
143
+ factory := dynamicinformer .NewFilteredDynamicSharedInformerFactory (
144
+ clusterDynamicClient , time .Minute , impl .serverEnvConfig .InstallerCrdNamespace , nil )
145
+ informer := factory .ForResource (installerResource ).Informer ()
146
+
147
+ informer .AddEventHandler (cache.ResourceEventHandlerFuncs {
148
+ AddFunc : func (obj interface {}) {
149
+ impl .handleInstallerObjectChange (obj )
150
+ },
151
+ UpdateFunc : func (oldObj , newObj interface {}) {
152
+ impl .handleInstallerObjectChange (newObj )
153
+ },
154
+ DeleteFunc : func (obj interface {}) {
155
+ impl .serverDataStore .InstallerCrdObjectStatus = ""
156
+ impl .serverDataStore .InstallerCrdObjectExists = false
157
+ },
158
+ })
159
+
160
+ ctx , cancel := signal .NotifyContext (context .Background (), os .Interrupt )
161
+ defer cancel ()
162
+
163
+ go informer .Run (ctx .Done ())
164
+ <- ctx .Done ()
165
+ }()
166
+ return nil
162
167
}
163
168
164
169
func (impl * ModuleCacheServiceImpl ) handleInstallerObjectChange (obj interface {}) {
0 commit comments