diff --git a/generator/labelStructs/probes.go b/generator/labelStructs/probes.go index 2860c23..91aae6f 100644 --- a/generator/labelStructs/probes.go +++ b/generator/labelStructs/probes.go @@ -1,6 +1,9 @@ package labelStructs import ( + "encoding/json" + "log" + "gopkg.in/yaml.v3" corev1 "k8s.io/api/core/v1" ) @@ -11,9 +14,43 @@ type Probe struct { } func ProbeFrom(data string) (*Probe, error) { - var mapping Probe - if err := yaml.Unmarshal([]byte(data), &mapping); err != nil { + mapping := Probe{} + tmp := map[string]any{} + err := yaml.Unmarshal([]byte(data), &tmp) + if err != nil { return nil, err } - return &mapping, nil + + if livenessProbe, ok := tmp["livenessProbe"]; ok { + livenessProbeBytes, err := json.Marshal(livenessProbe) + if err != nil { + log.Printf("Error marshalling livenessProbe: %v", err) + return nil, err + } + livenessProbe := &corev1.Probe{} + err = json.Unmarshal(livenessProbeBytes, livenessProbe) + if err != nil { + log.Printf("Error unmarshalling livenessProbe: %v", err) + return nil, err + } + mapping.LivenessProbe = livenessProbe + } + + if readinessProbe, ok := tmp["readinessProbe"]; ok { + readinessProbeBytes, err := json.Marshal(readinessProbe) + if err != nil { + log.Printf("Error marshalling readinessProbe: %v", err) + return nil, err + } + readinessProbe := &corev1.Probe{} + err = json.Unmarshal(readinessProbeBytes, readinessProbe) + if err != nil { + log.Printf("Error unmarshalling readinessProbe: %v", err) + return nil, err + } + mapping.ReadinessProbe = readinessProbe + + } + + return &mapping, err }