...
1
16
17 package resource
18
19 import (
20 "k8s.io/apimachinery/pkg/runtime"
21 "k8s.io/apimachinery/pkg/runtime/schema"
22 "k8s.io/client-go/rest"
23 )
24
25
26 func (clientConfigFn ClientConfigFunc) clientForGroupVersion(gv schema.GroupVersion, negotiatedSerializer runtime.NegotiatedSerializer) (RESTClient, error) {
27 cfg, err := clientConfigFn()
28 if err != nil {
29 return nil, err
30 }
31 if negotiatedSerializer != nil {
32 cfg.ContentConfig.NegotiatedSerializer = negotiatedSerializer
33 }
34 cfg.GroupVersion = &gv
35 if len(gv.Group) == 0 {
36 cfg.APIPath = "/api"
37 } else {
38 cfg.APIPath = "/apis"
39 }
40
41 return rest.RESTClientFor(cfg)
42 }
43
44 func (clientConfigFn ClientConfigFunc) unstructuredClientForGroupVersion(gv schema.GroupVersion) (RESTClient, error) {
45 cfg, err := clientConfigFn()
46 if err != nil {
47 return nil, err
48 }
49 cfg.ContentConfig = UnstructuredPlusDefaultContentConfig()
50 cfg.GroupVersion = &gv
51 if len(gv.Group) == 0 {
52 cfg.APIPath = "/api"
53 } else {
54 cfg.APIPath = "/apis"
55 }
56
57 return rest.RESTClientFor(cfg)
58 }
59
60 func (clientConfigFn ClientConfigFunc) withStdinUnavailable(stdinUnavailable bool) ClientConfigFunc {
61 return func() (*rest.Config, error) {
62 cfg, err := clientConfigFn()
63 if stdinUnavailable && cfg != nil && cfg.ExecProvider != nil {
64 cfg.ExecProvider.StdinUnavailable = stdinUnavailable
65 cfg.ExecProvider.StdinUnavailableMessage = "used by stdin resource manifest reader"
66 }
67 return cfg, err
68 }
69 }
70
View as plain text