package daemons // type manifestValues struct{ // ARGO_FILE string // LOKI_URL string // CONTAINER_NAME string // } // manifest, err := em.CreateManifest(booking, argo_file_path) // if err != nil { // logger.Logger.Error().Msg("Could not create manifest " + err.Error()) // } // // launch a pod that contains oc-monitor, give it the name of the workflow // cmd := exec.Command("kubectl","apply","-f", "manifests/"+manifest) // output , err := cmd.CombinedOutput() // if err != nil { // logger.Logger.Error().Msg("failed to create new pod for " + booking.Workflow + " :" + err.Error()) // return // } // func (*ExecutionManager) CreateManifest(booking models.Booking, argo_file string) (manifest_filepath string, err error) { // var filled_template bytes.Buffer // manifest_file, err := os.ReadFile("conf/monitor_pod_template.yml") // if err != nil { // logger.Logger.Error().Msg("Could not open the k8s template file for " + booking.Workflow) // return "", err // } // container_name := getContainerName(argo_file) // tmpl, err := template.New("manifest_template").Parse(string(manifest_file)) // if err != nil { // logger.Logger.Error().Msg(err.Error()) // return "", err // } // manifest_data := manifestValues{ // ARGO_FILE: argo_file, // LOKI_URL: conf.GetConfig().Logs, // CONTAINER_NAME: container_name, // } // err = tmpl.Execute(&filled_template, manifest_data) // if err != nil { // logger.Logger.Error().Msg("Could not complete manifest template for " + booking.Workflow) // return "", err } // manifest_filepath = booking.Workflow + "_manifest.yaml" // err = os.WriteFile("manifests/" + manifest_filepath, filled_template.Bytes(),0644) // if err != nil { // logger.Logger.Error().Msg("Could not write the YAML file for " + booking.Workflow + "'s manifest") // return "", err // } // return manifest_filepath, nil // } // func getContainerName(argo_file string) string { // regex := "([a-zA-Z]+-[a-zA-Z]+)" // re := regexp.MustCompile(regex) // container_name := re.FindString(argo_file) // return container_name // }