github.com/cbroglie/terraform@v0.7.0-rc3.0.20170410193827-735dfc416d46/builtin/providers/kubernetes/validators.go (about)

     1  package kubernetes
     2  
     3  import (
     4  	"fmt"
     5  	"strings"
     6  
     7  	apiValidation "k8s.io/kubernetes/pkg/api/validation"
     8  	utilValidation "k8s.io/kubernetes/pkg/util/validation"
     9  )
    10  
    11  func validateAnnotations(value interface{}, key string) (ws []string, es []error) {
    12  	m := value.(map[string]interface{})
    13  	for k, _ := range m {
    14  		errors := utilValidation.IsQualifiedName(strings.ToLower(k))
    15  		if len(errors) > 0 {
    16  			for _, e := range errors {
    17  				es = append(es, fmt.Errorf("%s (%q) %s", key, k, e))
    18  			}
    19  		}
    20  	}
    21  	return
    22  }
    23  
    24  func validateName(value interface{}, key string) (ws []string, es []error) {
    25  	v := value.(string)
    26  
    27  	errors := apiValidation.NameIsDNSLabel(v, false)
    28  	if len(errors) > 0 {
    29  		for _, err := range errors {
    30  			es = append(es, fmt.Errorf("%s %s", key, err))
    31  		}
    32  	}
    33  	return
    34  }
    35  
    36  func validateGenerateName(value interface{}, key string) (ws []string, es []error) {
    37  	v := value.(string)
    38  
    39  	errors := apiValidation.NameIsDNSLabel(v, true)
    40  	if len(errors) > 0 {
    41  		for _, err := range errors {
    42  			es = append(es, fmt.Errorf("%s %s", key, err))
    43  		}
    44  	}
    45  	return
    46  }
    47  
    48  func validateLabels(value interface{}, key string) (ws []string, es []error) {
    49  	m := value.(map[string]interface{})
    50  	for k, v := range m {
    51  		for _, msg := range utilValidation.IsQualifiedName(k) {
    52  			es = append(es, fmt.Errorf("%s (%q) %s", key, k, msg))
    53  		}
    54  		val := v.(string)
    55  		for _, msg := range utilValidation.IsValidLabelValue(val) {
    56  			es = append(es, fmt.Errorf("%s (%q) %s", key, val, msg))
    57  		}
    58  	}
    59  	return
    60  }