github.com/jlmeeker/kismatic@v1.10.1-0.20180612190640-57f9005a1f1a/pkg/install/kubelet_options.go (about)

     1  package install
     2  
     3  import (
     4  	"fmt"
     5  	"strings"
     6  )
     7  
     8  var kubeletProtectedOptions = []string{
     9  	"cloud-provider",
    10  	"cloud-config",
    11  	"cluster-dns",
    12  	"container-runtime",
    13  	"cni-bin-dir",
    14  	"cni-conf-dir",
    15  	"network-plugin",
    16  	"docker",
    17  	"hostname-override",
    18  	"kubeconfig",
    19  	"node-labels",
    20  	"node-ip",
    21  	"pod-manifest-path",
    22  	"tls-cert-file",
    23  	"tls-private-key-file",
    24  }
    25  
    26  func (options *KubeletOptions) validate() (bool, []error) {
    27  	v := newValidator()
    28  	overrides := make([]string, 0)
    29  	for _, protectedOption := range kubeletProtectedOptions {
    30  		_, found := options.Overrides[protectedOption]
    31  		if found {
    32  			overrides = append(overrides, protectedOption)
    33  		}
    34  	}
    35  
    36  	if len(overrides) > 0 {
    37  		v.addError(fmt.Errorf("Kubelet Option(s) [%v] cannot be overridden", strings.Join(overrides, ", ")))
    38  	}
    39  
    40  	return v.valid()
    41  }