@@ -11,8 +11,6 @@ import (
11
11
"gopkg.in/yaml.v2"
12
12
v1 "k8s.io/api/core/v1"
13
13
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
14
- "k8s.io/client-go/kubernetes"
15
- "k8s.io/client-go/rest"
16
14
17
15
"github.com/keptn-contrib/prometheus-service/utils"
18
16
@@ -133,72 +131,41 @@ func (eh ConfigureMonitoringEventHandler) configurePrometheusAndStoreResources(e
133
131
if err != nil {
134
132
return err
135
133
}
136
-
137
- // (2.1) restart prometheus by deleting prometheus pod
138
- if err := eh .deletePod (env .PrometheusLabels , env .PrometheusNamespace ); err != nil {
139
- return err
140
- }
141
-
142
- // (2.1) restart prometheus alert manager by deleting prometheus alert manager pod
143
- if err := eh .deletePod (env .AlertManagerLabels , env .AlertManagerNamespace ); err != nil {
144
- return err
145
- }
146
134
}
147
135
148
136
return nil
149
137
}
150
138
151
- func (eh ConfigureMonitoringEventHandler ) deletePod (labels string , namespace string ) error {
152
- eh .logger .Info ("Deleting Pod with labels " + labels + "..." )
153
-
154
- prometheusHelper , err := utils .NewPrometheusHelper ()
155
- if err != nil {
156
- return err
157
- }
158
-
159
- labelArr := strings .Split (labels , "," )
160
-
161
- for _ , label := range labelArr {
162
- err = prometheusHelper .DeletePod (label , namespace )
163
- if err != nil {
164
- return err
165
- }
166
- }
167
-
168
- eh .logger .Info ("Deleting Pod successfully" )
169
-
170
- return nil
171
- }
172
-
173
139
func (eh ConfigureMonitoringEventHandler ) isPrometheusInstalled () bool {
174
140
eh .logger .Debug ("Check if prometheus service in " + env .PrometheusNamespace + " namespace is available" )
175
- config , err := rest . InClusterConfig ()
141
+ svcList , err := getPrometheusServiceFromK8s ()
176
142
if err != nil {
177
- eh .logger .Debug ( fmt . Sprintf ( "Could not initialize kubernetes client %s " , err . Error ()) )
143
+ eh .logger .Errorf ( "Error locating prometheus service in k8s: %v " , err )
178
144
return false
179
145
}
180
- api , err := kubernetes .NewForConfig (config )
181
146
182
- if err != nil {
183
- eh .logger .Debug (fmt . Sprintf ( "Could not initialize kubernetes client %s" , err . Error ()) )
184
- return false
147
+ if len ( svcList . Items ) > 0 {
148
+ eh .logger .Debug ("Prometheus service in " + env . PrometheusNamespace + " namespace is available" )
149
+ return true
185
150
}
186
151
187
- svc , err := api .CoreV1 ().Services (env .PrometheusNamespace ).List (metav1.ListOptions {
188
- LabelSelector : env .PrometheusLabels ,
189
- })
152
+ return false
153
+ }
190
154
155
+ func getPrometheusServiceFromK8s () (* v1.ServiceList , error ) {
156
+ svcList , err := utils .ListK8sServicesByLabel (env .PrometheusLabels , env .PrometheusNamespace )
191
157
if err != nil {
192
- eh .logger .Debug (fmt .Sprintf ("Prometheus service in %s namespace is not available. %s" , env .PrometheusNamespace , err .Error ()))
193
- return false
158
+ return nil , fmt .Errorf ("prometheus service not found: %w" , err )
194
159
}
160
+ return svcList , err
161
+ }
195
162
196
- if len (svc .Items ) > 0 {
197
- eh .logger .Debug ("Prometheus service in " + env .PrometheusNamespace + " namespace is available" )
198
- return true
163
+ func getPrometheusAlertManagerServiceFromK8s () (* v1.ServiceList , error ) {
164
+ svcList , err := utils .ListK8sServicesByLabel (env .AlertManagerLabels , env .AlertManagerNamespace )
165
+ if err != nil {
166
+ return nil , fmt .Errorf ("prometheus alert manager service not found: %w" , err )
199
167
}
200
-
201
- return false
168
+ return svcList , err
202
169
}
203
170
204
171
func (eh ConfigureMonitoringEventHandler ) configurePrometheusAlertManager () error {
@@ -223,7 +190,7 @@ func (eh ConfigureMonitoringEventHandler) updatePrometheusConfigMap(eventData ke
223
190
return err
224
191
}
225
192
226
- api , err := getKubeClient ()
193
+ api , err := utils . GetKubeClient ()
227
194
if err != nil {
228
195
return err
229
196
}
@@ -339,18 +306,6 @@ func (eh ConfigureMonitoringEventHandler) updatePrometheusConfigMap(eventData ke
339
306
return nil
340
307
}
341
308
342
- func getKubeClient () (* kubernetes.Clientset , error ) {
343
- k8sConfig , err := rest .InClusterConfig ()
344
- if err != nil {
345
- return nil , err
346
- }
347
- api , err := kubernetes .NewForConfig (k8sConfig )
348
- if err != nil {
349
- return nil , err
350
- }
351
- return api , nil
352
- }
353
-
354
309
func getDefaultFilterExpression (project string , stage string , service string , filters map [string ]string ) string {
355
310
filterExpression := "job='" + service + "-" + project + "-" + stage + "-primary'"
356
311
if filters != nil && len (filters ) > 0 {
0 commit comments