func MakeTransport(config *KubeletClientConfig) (http.RoundTripper, error) { tlsConfig, err := transport.TLSConfigFor(config.transportConfig()) if err != nil { return nil, err } rt := http.DefaultTransport if config.Dial != nil || tlsConfig != nil { rt = utilnet.SetOldTransportDefaults(&http.Transport{ Dial: config.Dial, TLSClientConfig: tlsConfig, }) } return transport.HTTPWrappersForConfig(config.transportConfig(), rt) }
// NewKeystoneAuthenticator returns a password authenticator that validates credentials using openstack keystone func NewKeystoneAuthenticator(authURL string, caFile string) (*KeystoneAuthenticator, error) { if !strings.HasPrefix(authURL, "https") { return nil, errors.New("Auth URL should be secure and start with https") } if authURL == "" { return nil, errors.New("Auth URL is empty") } if caFile != "" { roots, err := certutil.NewPool(caFile) if err != nil { return nil, err } config := &tls.Config{} config.RootCAs = roots transport := netutil.SetOldTransportDefaults(&http.Transport{TLSClientConfig: config}) return &KeystoneAuthenticator{authURL, transport}, nil } return &KeystoneAuthenticator{authURL: authURL}, nil }