github.com/caos/orbos@v1.5.14-0.20221103111702-e6cd0cea7ad4/internal/operator/boom/application/applications/apigateway/crds/mapping.go (about)

     1  package crds
     2  
     3  type MappingConfig struct {
     4  	Name      string
     5  	Namespace string
     6  	Prefix    string
     7  	Service   string
     8  	Host      string
     9  }
    10  type MappingSpec struct {
    11  	Prefix  string `yaml:"prefix"`
    12  	Service string `yaml:"service"`
    13  	Host    string `yaml:"host"`
    14  }
    15  type Mapping struct {
    16  	APIVersion string       `yaml:"apiVersion"`
    17  	Kind       string       `yaml:"kind"`
    18  	Metadata   *Metadata    `yaml:"metadata"`
    19  	Spec       *MappingSpec `yaml:"spec"`
    20  }
    21  
    22  func GetMappingFromConfig(conf *MappingConfig) *Mapping {
    23  
    24  	var metadata *Metadata
    25  	if conf.Namespace != "" {
    26  		metadata = &Metadata{
    27  			Name:      conf.Name,
    28  			Namespace: conf.Namespace,
    29  		}
    30  	} else {
    31  		metadata = &Metadata{
    32  			Name: conf.Name,
    33  		}
    34  	}
    35  
    36  	return &Mapping{
    37  		APIVersion: "getambassador.io/v2",
    38  		Kind:       "Mapping",
    39  		Metadata:   metadata,
    40  		Spec: &MappingSpec{
    41  			Prefix:  conf.Prefix,
    42  			Service: conf.Service,
    43  			Host:    conf.Host,
    44  		},
    45  	}
    46  }