mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-26 21:17:23 +00:00
Add a better test for service environment variables
Fix bugs.
This commit is contained in:
parent
e472752ff9
commit
3eb044b495
@ -134,7 +134,7 @@ func GetServiceEnvironmentVariables(registry Registry, machine string) ([]api.En
|
|||||||
return result, err
|
return result, err
|
||||||
}
|
}
|
||||||
for _, service := range services.Items {
|
for _, service := range services.Items {
|
||||||
name := strings.ToUpper(service.ID) + "_SERVICE_PORT"
|
name := makeEnvVariableName(service.ID) + "_SERVICE_PORT"
|
||||||
value := strconv.Itoa(service.Port)
|
value := strconv.Itoa(service.Port)
|
||||||
result = append(result, api.EnvVar{Name: name, Value: value})
|
result = append(result, api.EnvVar{Name: name, Value: value})
|
||||||
result = append(result, makeLinkVariables(service, machine)...)
|
result = append(result, makeLinkVariables(service, machine)...)
|
||||||
@ -187,15 +187,19 @@ func (rs *RegistryStorage) deleteExternalLoadBalancer(service *api.Service) erro
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func makeEnvVariableName(str string) string {
|
||||||
|
return strings.ToUpper(strings.Replace(str, "-", "_", -1))
|
||||||
|
}
|
||||||
|
|
||||||
func makeLinkVariables(service api.Service, machine string) []api.EnvVar {
|
func makeLinkVariables(service api.Service, machine string) []api.EnvVar {
|
||||||
prefix := strings.ToUpper(service.ID)
|
prefix := makeEnvVariableName(service.ID)
|
||||||
var port string
|
var port string
|
||||||
if service.ContainerPort.Kind == util.IntstrString {
|
if service.ContainerPort.Kind == util.IntstrString {
|
||||||
port = service.ContainerPort.StrVal
|
port = service.ContainerPort.StrVal
|
||||||
} else {
|
} else {
|
||||||
port = strconv.Itoa(service.ContainerPort.IntVal)
|
port = strconv.Itoa(service.ContainerPort.IntVal)
|
||||||
}
|
}
|
||||||
portPrefix := prefix + "_PORT_" + strings.ToUpper(strings.Replace(port, "-", "_", -1)) + "_TCP"
|
portPrefix := prefix + "_PORT_" + makeEnvVariableName(port) + "_TCP"
|
||||||
return []api.EnvVar{
|
return []api.EnvVar{
|
||||||
{
|
{
|
||||||
Name: prefix + "_PORT",
|
Name: prefix + "_PORT",
|
||||||
|
@ -191,11 +191,19 @@ func TestServiceRegistryDeleteExternal(t *testing.T) {
|
|||||||
|
|
||||||
func TestServiceRegistryMakeLinkVariables(t *testing.T) {
|
func TestServiceRegistryMakeLinkVariables(t *testing.T) {
|
||||||
service := api.Service{
|
service := api.Service{
|
||||||
JSONBase: api.JSONBase{ID: "foo"},
|
JSONBase: api.JSONBase{ID: "foo-bar"},
|
||||||
Selector: map[string]string{"bar": "baz"},
|
Selector: map[string]string{"bar": "baz"},
|
||||||
ContainerPort: util.IntOrString{Kind: util.IntstrString, StrVal: "a-b-c"},
|
ContainerPort: util.IntOrString{Kind: util.IntstrString, StrVal: "a-b-c"},
|
||||||
}
|
}
|
||||||
vars := makeLinkVariables(service, "mars")
|
registry := registrytest.NewServiceRegistry()
|
||||||
|
registry.List = api.ServiceList{
|
||||||
|
Items: []api.Service{service},
|
||||||
|
}
|
||||||
|
machine := "machine"
|
||||||
|
vars, err := GetServiceEnvironmentVariables(registry, machine)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("unexpected err: %v", err)
|
||||||
|
}
|
||||||
for _, v := range vars {
|
for _, v := range vars {
|
||||||
if !util.IsCIdentifier(v.Name) {
|
if !util.IsCIdentifier(v.Name) {
|
||||||
t.Errorf("Environment variable name is not valid: %v", v.Name)
|
t.Errorf("Environment variable name is not valid: %v", v.Name)
|
||||||
|
Loading…
Reference in New Issue
Block a user