VictoriaMetrics/lib/promscrape/discovery/kubernetes/api_test.go

69 lines
1.4 KiB
Go
Raw Normal View History

package kubernetes
import (
"github.com/VictoriaMetrics/VictoriaMetrics/lib/promauth"
"reflect"
"testing"
)
func TestParseKubeConfig(t *testing.T) {
type testCase struct {
name string
sdc *SDConfig
expectedConfig *ApiConfig
}
var cases = []testCase{
{
name: "token",
sdc: &SDConfig{
KubeConfig: "testdata/kubeconfig_token.yaml",
},
expectedConfig: &ApiConfig{
token: "abc",
tlsConfig: &promauth.TLSConfig{},
},
},
{
name: "cert",
sdc: &SDConfig{
KubeConfig: "testdata/kubeconfig_cert.yaml",
},
expectedConfig: &ApiConfig{
server: "localhost:8000",
tlsConfig: &promauth.TLSConfig{
CA: []byte("authority"),
Cert: []byte("certificate"),
Key: []byte("key"),
},
},
},
{
name: "basic",
sdc: &SDConfig{
KubeConfig: "testdata/kubeconfig_basic.yaml",
},
expectedConfig: &ApiConfig{
basicAuth: &promauth.BasicAuthConfig{
Password: promauth.NewSecret("secret"),
Username: "user1",
},
tlsConfig: &promauth.TLSConfig{},
},
},
}
for _, tc := range cases {
t.Run(tc.name, func(t *testing.T) {
ac, err := buildConfig(tc.sdc)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if !reflect.DeepEqual(ac, tc.expectedConfig) {
t.Fatalf("unexpected result, got: %v, want: %v", ac, tc.expectedConfig)
}
})
}
}