1
1
package labelStructs
2
2
3
3
import (
4
+ "encoding/json"
5
+ "log"
6
+
4
7
"gopkg.in/yaml.v3"
5
8
corev1 "k8s.io/api/core/v1"
6
9
)
@@ -11,9 +14,43 @@ type Probe struct {
11
14
}
12
15
13
16
func ProbeFrom (data string ) (* Probe , error ) {
14
- var mapping Probe
15
- if err := yaml .Unmarshal ([]byte (data ), & mapping ); err != nil {
17
+ mapping := Probe {}
18
+ tmp := map [string ]any {}
19
+ err := yaml .Unmarshal ([]byte (data ), & tmp )
20
+ if err != nil {
16
21
return nil , err
17
22
}
18
- return & mapping , nil
23
+
24
+ if livenessProbe , ok := tmp ["livenessProbe" ]; ok {
25
+ livenessProbeBytes , err := json .Marshal (livenessProbe )
26
+ if err != nil {
27
+ log .Printf ("Error marshalling livenessProbe: %v" , err )
28
+ return nil , err
29
+ }
30
+ livenessProbe := & corev1.Probe {}
31
+ err = json .Unmarshal (livenessProbeBytes , livenessProbe )
32
+ if err != nil {
33
+ log .Printf ("Error unmarshalling livenessProbe: %v" , err )
34
+ return nil , err
35
+ }
36
+ mapping .LivenessProbe = livenessProbe
37
+ }
38
+
39
+ if readinessProbe , ok := tmp ["readinessProbe" ]; ok {
40
+ readinessProbeBytes , err := json .Marshal (readinessProbe )
41
+ if err != nil {
42
+ log .Printf ("Error marshalling readinessProbe: %v" , err )
43
+ return nil , err
44
+ }
45
+ readinessProbe := & corev1.Probe {}
46
+ err = json .Unmarshal (readinessProbeBytes , readinessProbe )
47
+ if err != nil {
48
+ log .Printf ("Error unmarshalling readinessProbe: %v" , err )
49
+ return nil , err
50
+ }
51
+ mapping .ReadinessProbe = readinessProbe
52
+
53
+ }
54
+
55
+ return & mapping , err
19
56
}
0 commit comments