Use compose-go https://github.com/compose-spec/compose-go to make Katenary parsing compose file the official way. Add labels: - `volume-from` (with `same-pod`) to avoid volume repetition - `ignore` to ignore a service - `mapenv` (replaces the `env-to-service`) to map environment to helm variable (as a template string) - `secret-vars` declares variables as secret values More: - Now, environment (as secret vars) are set in values.yaml - Ingress has got annotations in values.yaml - Probes (liveness probe) are improved - fixed code to optimize - many others fixes about path, bad volume check, refactorisation, tests...
25 lines
496 B
Go
25 lines
496 B
Go
package writers
|
|
|
|
import (
|
|
"katenary/helm"
|
|
"os"
|
|
"path/filepath"
|
|
|
|
"gopkg.in/yaml.v3"
|
|
)
|
|
|
|
// BuildService writes the service (external or not).
|
|
func BuildService(service *helm.Service, name, templatesDir string) {
|
|
kind := "service"
|
|
suffix := ""
|
|
if service.Spec.Type == "NodePort" {
|
|
suffix = "-external"
|
|
}
|
|
fname := filepath.Join(templatesDir, name+suffix+"."+kind+".yaml")
|
|
fp, _ := os.Create(fname)
|
|
enc := yaml.NewEncoder(fp)
|
|
enc.SetIndent(IndentSize)
|
|
enc.Encode(service)
|
|
fp.Close()
|
|
}
|