Some fixes on "same-pod" and volumes + add some tests #82
@@ -51,9 +51,9 @@ func NewIngress(service types.ServiceConfig, Chart *HelmChart) *Ingress {
|
|||||||
|
|
||||||
Chart.Values[service.Name].(*Value).Ingress = &IngressValue{
|
Chart.Values[service.Name].(*Value).Ingress = &IngressValue{
|
||||||
Enabled: mapping.Enabled,
|
Enabled: mapping.Enabled,
|
||||||
Path: mapping.Path,
|
Path: *mapping.Path,
|
||||||
Host: mapping.Hostname,
|
Host: mapping.Hostname,
|
||||||
Class: mapping.Class,
|
Class: *mapping.Class,
|
||||||
Annotations: mapping.Annotations,
|
Annotations: mapping.Annotations,
|
||||||
TLS: TLS{Enabled: mapping.TLS.Enabled},
|
TLS: TLS{Enabled: mapping.TLS.Enabled},
|
||||||
}
|
}
|
||||||
|
@@ -107,6 +107,19 @@ func getLabelContent(o any, service *types.ServiceConfig, labelName string) erro
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
val := strings.TrimSpace(string(c))
|
val := strings.TrimSpace(string(c))
|
||||||
|
if labelName == labels.LabelIngress {
|
||||||
|
// special case, values must be set from some defaults
|
||||||
|
ing, err := labelStructs.IngressFrom(val)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
c, err := yaml.Marshal(ing)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
val = strings.TrimSpace(string(c))
|
||||||
|
}
|
||||||
|
|
||||||
service.Labels[labelName] = val
|
service.Labels[labelName] = val
|
||||||
return nil
|
return nil
|
||||||
|
@@ -1,33 +1,43 @@
|
|||||||
package labelStructs
|
package labelStructs
|
||||||
|
|
||||||
import "gopkg.in/yaml.v3"
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"gopkg.in/yaml.v3"
|
||||||
|
)
|
||||||
|
|
||||||
type TLS struct {
|
type TLS struct {
|
||||||
Enabled bool `yaml:"enabled" json:"enabled,omitempty"`
|
Enabled bool `yaml:"enabled" json:"enabled,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Ingress struct {
|
type Ingress struct {
|
||||||
Port *int32 `yaml:"port,omitempty" jsonschema:"nullable" json:"port,omitempty"`
|
Port *int32 `yaml:"port,omitempty" json:"port,omitempty"`
|
||||||
Annotations map[string]string `yaml:"annotations,omitempty" jsonschema:"nullable" json:"annotations,omitempty"`
|
Annotations map[string]string `yaml:"annotations,omitempty" jsonschema:"nullable" json:"annotations,omitempty"`
|
||||||
Hostname string `yaml:"hostname" json:"hostname,omitempty"`
|
Hostname string `yaml:"hostname" json:"hostname,omitempty"`
|
||||||
Path string `yaml:"path" json:"path,omitempty"`
|
Path *string `yaml:"path,omitempty" json:"path,omitempty"`
|
||||||
Class string `yaml:"class" json:"class,omitempty" jsonschema:"default:-"`
|
Class *string `yaml:"class,omitempty" json:"class,omitempty" jsonschema:"default:-"`
|
||||||
Enabled bool `yaml:"enabled" json:"enabled,omitempty"`
|
Enabled bool `yaml:"enabled" json:"enabled,omitempty"`
|
||||||
TLS *TLS `yaml:"tls,omitempty" json:"tls,omitempty"`
|
TLS *TLS `yaml:"tls,omitempty" json:"tls,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// IngressFrom creates a new Ingress from a compose service.
|
// IngressFrom creates a new Ingress from a compose service.
|
||||||
func IngressFrom(data string) (*Ingress, error) {
|
func IngressFrom(data string) (*Ingress, error) {
|
||||||
|
strPtr := func(s string) *string {
|
||||||
|
return &s
|
||||||
|
}
|
||||||
mapping := Ingress{
|
mapping := Ingress{
|
||||||
Hostname: "",
|
Hostname: "",
|
||||||
Path: "/",
|
Path: strPtr("/"),
|
||||||
Enabled: false,
|
Enabled: false,
|
||||||
Class: "-",
|
Class: strPtr("-"),
|
||||||
Port: nil,
|
Port: nil,
|
||||||
TLS: &TLS{Enabled: true},
|
TLS: &TLS{Enabled: true},
|
||||||
}
|
}
|
||||||
if err := yaml.Unmarshal([]byte(data), &mapping); err != nil {
|
if err := yaml.Unmarshal([]byte(data), &mapping); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
if mapping.Port == nil {
|
||||||
|
return nil, fmt.Errorf("port is required in ingress definition")
|
||||||
|
}
|
||||||
return &mapping, nil
|
return &mapping, nil
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user