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

     1  package install
     2  
     3  import (
     4  	"fmt"
     5  	"strings"
     6  	"testing"
     7  )
     8  
     9  func TestValidateKubeControllerManagerOptions(t *testing.T) {
    10  	tests := []struct {
    11  		opts            KubeControllerManagerOptions
    12  		valid           bool
    13  		protectedFields []string
    14  	}{
    15  		{
    16  			opts:  KubeControllerManagerOptions{},
    17  			valid: true,
    18  		},
    19  		{
    20  			opts: KubeControllerManagerOptions{
    21  				Overrides: map[string]string{
    22  					"foobar": "baz",
    23  				},
    24  			},
    25  			valid: true,
    26  		},
    27  		{
    28  			opts: KubeControllerManagerOptions{
    29  				Overrides: map[string]string{
    30  					"cluster-cidr": "1.2.3.4",
    31  				},
    32  			},
    33  			valid:           false,
    34  			protectedFields: []string{"cluster-cidr"},
    35  		},
    36  		{
    37  			opts: KubeControllerManagerOptions{
    38  				Overrides: map[string]string{
    39  					"cluster-cidr": "1.2.3.4",
    40  					"kubeconfig":   "/foo/.kube/config",
    41  				},
    42  			},
    43  			valid:           false,
    44  			protectedFields: []string{"cluster-cidr", "kubeconfig"},
    45  		},
    46  		{
    47  			opts: KubeControllerManagerOptions{
    48  				Overrides: map[string]string{
    49  					"cluster-cidr": "1.2.3.4",
    50  					"kubeconfig":   "/foo/.kube/config",
    51  					"v":            "3",
    52  				},
    53  			},
    54  			valid:           false,
    55  			protectedFields: []string{"cluster-cidr", "kubeconfig"},
    56  		},
    57  	}
    58  	for _, test := range tests {
    59  		ok, err := test.opts.validate()
    60  		assertEqual(t, ok, test.valid)
    61  		if !test.valid {
    62  			assertEqual(t, err, []error{fmt.Errorf("Kube Controller Manager Option(s) [%v] cannot be overridden", strings.Join(test.protectedFields, ", "))})
    63  		}
    64  	}
    65  }