Allow client and kubelet configs to hold cert/key/ca data directly

This commit is contained in:
Jordan Liggitt
2015-01-16 11:51:53 -05:00
parent 39c917b068
commit 1ebe885827
5 changed files with 239 additions and 35 deletions

View File

@@ -61,17 +61,33 @@ type HTTPKubeletClient struct {
func NewKubeletClient(config *KubeletConfig) (KubeletClient, error) {
transport := http.DefaultTransport
if config.CertFile != "" {
t, err := NewClientCertTLSTransport(config.CertFile, config.KeyFile, config.CAFile)
if err != nil {
var (
certData, keyData, caData []byte
err error
)
if certData, err = dataFromSliceOrFile(config.CertData, config.CertFile); err != nil {
return nil, err
}
if keyData, err = dataFromSliceOrFile(config.KeyData, config.KeyFile); err != nil {
return nil, err
}
if caData, err = dataFromSliceOrFile(config.CAData, config.CAFile); err != nil {
return nil, err
}
if transport, err = NewClientCertTLSTransport(certData, keyData, caData); err != nil {
return nil, err
}
transport = t
} else if config.CAFile != "" {
t, err := NewTLSTransport(config.CAFile)
if err != nil {
var (
caData []byte
err error
)
if caData, err = dataFromSliceOrFile(config.CAData, config.CAFile); err != nil {
return nil, err
}
if transport, err = NewTLSTransport(caData); err != nil {
return nil, err
}
transport = t
}
c := &http.Client{Transport: transport}