@@ -15,8 +15,14 @@ package provider
15
15
16
16
import (
17
17
"bytes"
18
+ "context"
19
+ "flag"
18
20
"fmt"
19
21
"io/ioutil"
22
+ corev1 "k8s.io/api/core/v1"
23
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
24
+ "k8s.io/client-go/kubernetes"
25
+ "k8s.io/client-go/tools/clientcmd"
20
26
"log"
21
27
"os"
22
28
"path/filepath"
@@ -39,6 +45,8 @@ type DeploymentResource struct {
39
45
FlagDeploymentVars map [string ]string
40
46
// Default DeploymentVars.
41
47
DefaultDeploymentVars map [string ]string
48
+ // Dashboards
49
+ Dashboards map [string ]string
42
50
}
43
51
44
52
// NewDeploymentResource returns DeploymentResource with default values.
@@ -138,3 +146,75 @@ func MergeDeploymentVars(ms ...map[string]string) map[string]string {
138
146
}
139
147
return res
140
148
}
149
+
150
+ func getK8sClientSet () (* kubernetes.Clientset , error ) {
151
+ kubeconfig := flag .String ("kubeconfig" , "/home/raj/.kube/config" , "absolute path to the kubeconfig file" )
152
+
153
+ config , err := clientcmd .BuildConfigFromFlags ("" , * kubeconfig )
154
+ if err != nil {
155
+ return nil , err
156
+ }
157
+
158
+ clientset , err := kubernetes .NewForConfig (config )
159
+ if err != nil {
160
+ return nil , err
161
+ }
162
+ return clientset , nil
163
+ }
164
+
165
+ func CreateGrafanaDashboardsConfigMap () error {
166
+
167
+ clientset , err := getK8sClientSet ()
168
+ if err != nil {
169
+ return err
170
+ }
171
+
172
+ NodeMetrics , err := ioutil .ReadFile ("manifests/dashboards/node-metrics.json" )
173
+ if err != nil {
174
+ return nil
175
+ }
176
+ PromBench , err := ioutil .ReadFile ("manifests/dashboards/prombench.json" )
177
+ if err != nil {
178
+ return nil
179
+ }
180
+
181
+ ConfigMapData := map [string ]string {
182
+ "node-metrics.json" : string (NodeMetrics ),
183
+ "prombench.json" : string (PromBench ),
184
+ }
185
+
186
+ newConfigMap := corev1.ConfigMap {
187
+ TypeMeta : metav1.TypeMeta {
188
+ Kind : "ConfigMap" ,
189
+ APIVersion : "v1" ,
190
+ },
191
+ ObjectMeta : metav1.ObjectMeta {
192
+ Name : "grafana-dashboards" ,
193
+ },
194
+ Data : ConfigMapData ,
195
+ }
196
+
197
+ _ , err = clientset .CoreV1 ().ConfigMaps ("default" ).Create (context .TODO (), & newConfigMap , metav1.CreateOptions {})
198
+ if err != nil {
199
+ return nil
200
+ }
201
+
202
+ log .Printf ("resource created - kind: ConfigMap, name: grafana-dashboards" )
203
+ return nil
204
+ }
205
+
206
+ func DeleteGrafanaDashboardsConfigMap () error {
207
+
208
+ clientset , err := getK8sClientSet ()
209
+ if err != nil {
210
+ return err
211
+ }
212
+
213
+ err = clientset .CoreV1 ().ConfigMaps ("default" ).Delete (context .TODO (), "grafana-dashboards" , metav1.DeleteOptions {})
214
+ if err != nil {
215
+ return err
216
+ }
217
+
218
+ log .Printf ("resource created - kind: ConfigMap, name: grafana-dashboards" )
219
+ return nil
220
+ }
0 commit comments