2014-09-30 00:15:00 +00:00
/ *
2016-06-03 00:25:58 +00:00
Copyright 2014 The Kubernetes Authors .
2014-09-30 00:15:00 +00:00
Licensed under the Apache License , Version 2.0 ( the "License" ) ;
you may not use this file except in compliance with the License .
You may obtain a copy of the License at
http : //www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing , software
distributed under the License is distributed on an "AS IS" BASIS ,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND , either express or implied .
See the License for the specific language governing permissions and
limitations under the License .
* /
2015-08-12 17:35:07 +00:00
package unversioned
2014-09-30 00:15:00 +00:00
import (
2017-01-19 18:27:59 +00:00
restclient "k8s.io/client-go/rest"
2015-08-05 22:03:47 +00:00
"k8s.io/kubernetes/pkg/api"
2016-03-06 02:00:36 +00:00
// Import solely to initialize client auth plugins.
2017-01-19 21:35:17 +00:00
_ "k8s.io/client-go/plugin/pkg/client/auth"
2014-09-30 00:15:00 +00:00
)
2016-01-06 23:59:54 +00:00
const (
legacyAPIPath = "/api"
defaultAPIPath = "/apis"
)
2015-01-06 17:36:08 +00:00
// SetKubernetesDefaults sets default values on the provided client config for accessing the
// Kubernetes API or returns an error if any of the defaults are impossible or invalid.
2015-09-24 01:17:09 +00:00
// TODO: this method needs to be split into one that sets defaults per group, expected to be fix in PR "Refactoring clientcache.go and helper.go #14592"
2016-02-12 18:58:43 +00:00
func SetKubernetesDefaults ( config * restclient . Config ) error {
2016-01-06 23:59:54 +00:00
if config . APIPath == "" {
config . APIPath = legacyAPIPath
2015-01-06 17:36:08 +00:00
}
2016-07-18 14:46:48 +00:00
if config . GroupVersion == nil || config . GroupVersion . Group != api . GroupName {
2017-01-12 18:17:43 +00:00
g , err := api . Registry . Group ( api . GroupName )
2016-07-18 14:46:48 +00:00
if err != nil {
return err
}
copyGroupVersion := g . GroupVersion
config . GroupVersion = & copyGroupVersion
2015-01-06 17:36:08 +00:00
}
2016-04-26 06:28:15 +00:00
if config . NegotiatedSerializer == nil {
config . NegotiatedSerializer = api . Codecs
}
2016-02-12 18:58:43 +00:00
return restclient . SetKubernetesDefaults ( config )
2016-01-15 05:00:58 +00:00
}
2016-07-18 14:46:48 +00:00
func setGroupDefaults ( groupName string , config * restclient . Config ) error {
config . APIPath = defaultAPIPath
if config . UserAgent == "" {
config . UserAgent = restclient . DefaultKubernetesUserAgent ( )
}
if config . GroupVersion == nil || config . GroupVersion . Group != groupName {
2017-01-12 18:17:43 +00:00
g , err := api . Registry . Group ( groupName )
2016-07-18 14:46:48 +00:00
if err != nil {
return err
}
copyGroupVersion := g . GroupVersion
config . GroupVersion = & copyGroupVersion
}
if config . NegotiatedSerializer == nil {
config . NegotiatedSerializer = api . Codecs
}
return nil
}