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

     1  package install
     2  
     3  import (
     4  	"fmt"
     5  	"strings"
     6  )
     7  
     8  var kubeAPIServerProtectedOptions = []string{
     9  	"advertise-address",
    10  	"apiserver-count",
    11  	"client-ca-file",
    12  	"cloud-provider",
    13  	"cloud-config",
    14  	"etcd-cafile",
    15  	"etcd-certfile",
    16  	"etcd-keyfile",
    17  	"etcd-servers",
    18  	"secure-port",
    19  	"service-account-key-file",
    20  	"service-cluster-ip-range",
    21  	"tls-cert-file",
    22  	"tls-private-key-file",
    23  }
    24  
    25  func (options *APIServerOptions) validate() (bool, []error) {
    26  	v := newValidator()
    27  	overrides := make([]string, 0)
    28  	for _, protectedOption := range kubeAPIServerProtectedOptions {
    29  		_, found := options.Overrides[protectedOption]
    30  		if found {
    31  			overrides = append(overrides, protectedOption)
    32  		}
    33  	}
    34  
    35  	if len(overrides) > 0 {
    36  		v.addError(fmt.Errorf("Kube ApiServer Option(s) [%v] cannot be overridden", strings.Join(overrides, ", ")))
    37  	}
    38  
    39  	return v.valid()
    40  }