Skip to content

Commit

Permalink
feat: added fix
Browse files Browse the repository at this point in the history
Signed-off-by: RealAnna <[email protected]>
  • Loading branch information
RealAnna committed Feb 16, 2023
1 parent 6de966b commit f066f13
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 26 deletions.
7 changes: 5 additions & 2 deletions pkg/processor/deployment/deployment.go
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,10 @@ func (d deployment) Process(appMeta helmify.AppMetadata, obj *unstructured.Unstr
}

if appMeta.Config().Probes {
probes.ProcessSpecMap(nameCamel, specMap, &values, depl.Spec.Template.Spec)
err = probes.ProcessSpecMap(nameCamel, specMap, &values, depl.Spec.Template.Spec)
if err != nil {
return true, nil, err
}
}

spec, err := yamlformat.Marshal(specMap, 6)
Expand Down Expand Up @@ -317,7 +320,7 @@ func processEnv(name string, appMeta helmify.AppMetadata, c corev1.Container, va
if err != nil {
return c, errors.Wrap(err, "unable to set deployment value field")
}
c.Env[i].Value = fmt.Sprintf(envValue, name, containerName, strcase.ToLowerCamel(strings.ToLower(c.Env[i].Name)))
c.Env[i].Value = fmt.Sprintf(envValue, name, containerName, "env", strcase.ToLowerCamel(strings.ToLower(c.Env[i].Name)))
}
}
return c, nil
Expand Down
60 changes: 36 additions & 24 deletions pkg/processor/probes/probes.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,47 +34,59 @@ func ProcessSpecMap(name string, specMap map[string]interface{}, values *helmify

for i := range cs {
containerName := strcase.ToLowerCamel(pspec.Containers[i].Name)
var ready, live string

content, err := yamlformat.Marshal(cs[i], 0)
if err != nil {
return err
}
strContainers[i] = content
if pspec.Containers[i].LivenessProbe != nil {

live, err = yamlformat.Marshal(pspec.Containers[i].LivenessProbe, 1)
if err != nil {
return err
}
strContainers[i] = strContainers[i].(string) +
fmt.Sprintf(livenessProbe, name, containerName, live)
err = setProbesTemplates(name, &(pspec.Containers[i]), &strContainers[i], containerName)
if err != nil {
return err
}
if pspec.Containers[i].ReadinessProbe != nil {

ready, err = yamlformat.Marshal(pspec.Containers[i].ReadinessProbe, 1)
if err != nil {
return err
}
strContainers[i] = strContainers[i].(string) +
fmt.Sprintf(readinessProbe, name, containerName, ready)
err = setProbeField(name, &(pspec.Containers[i]), values)
if err != nil {
return err
}
setProbeField(name, pspec.Containers[i], values)
}
unstructured.SetNestedSlice(specMap, strContainers, "containers")
return unstructured.SetNestedSlice(specMap, strContainers, "containers")

return err
}

func setProbeField(name string, c corev1.Container, values *helmify.Values) corev1.Container {
func setProbesTemplates(name string, container *corev1.Container, strContainers *interface{}, containerName string) error {

err := templateProbe(name, container.LivenessProbe, strContainers, containerName, livenessProbe)
if err != nil {
return err
}
return templateProbe(name, container.ReadinessProbe, strContainers, containerName, readinessProbe)

}

func templateProbe(name string, probe *corev1.Probe, strContainers *interface{}, containerName string, template string) error {
if probe != nil {
live, err := yamlformat.Marshal(probe, 1)
if err != nil {
return err
}
*strContainers = (*strContainers).(string) + fmt.Sprintf(template, name, containerName, live)
}
return nil
}

func setProbeField(name string, c *corev1.Container, values *helmify.Values) error {

containerName := strcase.ToLowerCamel(c.Name)
if c.LivenessProbe != nil {
ready, _ := runtime.DefaultUnstructuredConverter.ToUnstructured(c.LivenessProbe)
unstructured.SetNestedField(*values, ready, name, containerName, "livenessProbe")
err := unstructured.SetNestedField(*values, ready, name, containerName, "livenessProbe")
if err != nil {
return err
}
}
if c.ReadinessProbe != nil {
ready, _ := runtime.DefaultUnstructuredConverter.ToUnstructured(c.ReadinessProbe)
unstructured.SetNestedField(*values, ready, name, containerName, "readinessProbe")
return unstructured.SetNestedField(*values, ready, name, containerName, "readinessProbe")
}
return c
return nil
}

0 comments on commit f066f13

Please sign in to comment.