mirror of
https://github.com/rancher/norman.git
synced 2025-06-26 15:32:07 +00:00
Update to k8s 1.18
This commit is contained in:
parent
03ea93742b
commit
f677c5bc3d
@ -1,6 +1,7 @@
|
|||||||
package objectclient
|
package objectclient
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"net/http"
|
"net/http"
|
||||||
"strings"
|
"strings"
|
||||||
@ -133,7 +134,7 @@ func (p *ObjectClient) Create(o runtime.Object) (runtime.Object, error) {
|
|||||||
NamespaceIfScoped(ns, p.resource.Namespaced).
|
NamespaceIfScoped(ns, p.resource.Namespaced).
|
||||||
Resource(p.resource.Name).
|
Resource(p.resource.Name).
|
||||||
Body(o).
|
Body(o).
|
||||||
Do().
|
Do(context.TODO()).
|
||||||
Into(result)
|
Into(result)
|
||||||
return result, err
|
return result, err
|
||||||
}
|
}
|
||||||
@ -149,7 +150,7 @@ func (p *ObjectClient) GetNamespaced(namespace, name string, opts metav1.GetOpti
|
|||||||
Resource(p.resource.Name).
|
Resource(p.resource.Name).
|
||||||
VersionedParams(&opts, metav1.ParameterCodec).
|
VersionedParams(&opts, metav1.ParameterCodec).
|
||||||
Name(name).
|
Name(name).
|
||||||
Do().
|
Do(context.TODO()).
|
||||||
Into(result)
|
Into(result)
|
||||||
logrus.Tracef("REST GET %s/%s/%s/%s/%s/%s", p.getAPIPrefix(), p.gvk.Group, p.gvk.Version, namespace, p.resource.Name, name)
|
logrus.Tracef("REST GET %s/%s/%s/%s/%s/%s", p.getAPIPrefix(), p.gvk.Group, p.gvk.Version, namespace, p.resource.Name, name)
|
||||||
return result, err
|
return result, err
|
||||||
@ -164,7 +165,7 @@ func (p *ObjectClient) Get(name string, opts metav1.GetOptions) (runtime.Object,
|
|||||||
Resource(p.resource.Name).
|
Resource(p.resource.Name).
|
||||||
VersionedParams(&opts, metav1.ParameterCodec).
|
VersionedParams(&opts, metav1.ParameterCodec).
|
||||||
Name(name).
|
Name(name).
|
||||||
Do().
|
Do(context.TODO()).
|
||||||
Into(result)
|
Into(result)
|
||||||
logrus.Tracef("REST GET %s/%s/%s/%s/%s/%s", p.getAPIPrefix(), p.gvk.Group, p.gvk.Version, p.ns, p.resource.Name, name)
|
logrus.Tracef("REST GET %s/%s/%s/%s/%s/%s", p.getAPIPrefix(), p.gvk.Group, p.gvk.Version, p.ns, p.resource.Name, name)
|
||||||
return result, err
|
return result, err
|
||||||
@ -186,7 +187,7 @@ func (p *ObjectClient) Update(name string, o runtime.Object) (runtime.Object, er
|
|||||||
Resource(p.resource.Name).
|
Resource(p.resource.Name).
|
||||||
Name(name).
|
Name(name).
|
||||||
Body(o).
|
Body(o).
|
||||||
Do().
|
Do(context.TODO()).
|
||||||
Into(result)
|
Into(result)
|
||||||
return result, err
|
return result, err
|
||||||
}
|
}
|
||||||
@ -201,7 +202,7 @@ func (p *ObjectClient) DeleteNamespaced(namespace, name string, opts *metav1.Del
|
|||||||
return req.Resource(p.resource.Name).
|
return req.Resource(p.resource.Name).
|
||||||
Name(name).
|
Name(name).
|
||||||
Body(opts).
|
Body(opts).
|
||||||
Do().
|
Do(context.TODO()).
|
||||||
Error()
|
Error()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -213,7 +214,7 @@ func (p *ObjectClient) Delete(name string, opts *metav1.DeleteOptions) error {
|
|||||||
Resource(p.resource.Name).
|
Resource(p.resource.Name).
|
||||||
Name(name).
|
Name(name).
|
||||||
Body(opts).
|
Body(opts).
|
||||||
Do().
|
Do(context.TODO()).
|
||||||
Error()
|
Error()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -225,7 +226,7 @@ func (p *ObjectClient) List(opts metav1.ListOptions) (runtime.Object, error) {
|
|||||||
NamespaceIfScoped(p.ns, p.resource.Namespaced).
|
NamespaceIfScoped(p.ns, p.resource.Namespaced).
|
||||||
Resource(p.resource.Name).
|
Resource(p.resource.Name).
|
||||||
VersionedParams(&opts, metav1.ParameterCodec).
|
VersionedParams(&opts, metav1.ParameterCodec).
|
||||||
Do().
|
Do(context.TODO()).
|
||||||
Into(result)
|
Into(result)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -237,7 +238,7 @@ func (p *ObjectClient) ListNamespaced(namespace string, opts metav1.ListOptions)
|
|||||||
NamespaceIfScoped(namespace, p.resource.Namespaced).
|
NamespaceIfScoped(namespace, p.resource.Namespaced).
|
||||||
Resource(p.resource.Name).
|
Resource(p.resource.Name).
|
||||||
VersionedParams(&opts, metav1.ParameterCodec).
|
VersionedParams(&opts, metav1.ParameterCodec).
|
||||||
Do().
|
Do(context.TODO()).
|
||||||
Into(result)
|
Into(result)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -253,7 +254,7 @@ func (p *ObjectClient) Watch(opts metav1.ListOptions) (watch.Interface, error) {
|
|||||||
NamespaceIfScoped(p.ns, p.resource.Namespaced).
|
NamespaceIfScoped(p.ns, p.resource.Namespaced).
|
||||||
Resource(p.resource.Name).
|
Resource(p.resource.Name).
|
||||||
VersionedParams(&opts, metav1.ParameterCodec).
|
VersionedParams(&opts, metav1.ParameterCodec).
|
||||||
Stream()
|
Stream(context.TODO())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -302,7 +303,7 @@ func (p *ObjectClient) DeleteCollection(deleteOptions *metav1.DeleteOptions, lis
|
|||||||
Resource(p.resource.Name).
|
Resource(p.resource.Name).
|
||||||
VersionedParams(&listOptions, metav1.ParameterCodec).
|
VersionedParams(&listOptions, metav1.ParameterCodec).
|
||||||
Body(deleteOptions).
|
Body(deleteOptions).
|
||||||
Do().
|
Do(context.TODO()).
|
||||||
Error()
|
Error()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -322,7 +323,7 @@ func (p *ObjectClient) Patch(name string, o runtime.Object, patchType types.Patc
|
|||||||
SubResource(subresources...).
|
SubResource(subresources...).
|
||||||
Name(name).
|
Name(name).
|
||||||
Body(data).
|
Body(data).
|
||||||
Do().
|
Do(context.TODO()).
|
||||||
Into(result)
|
Into(result)
|
||||||
return result, err
|
return result, err
|
||||||
}
|
}
|
||||||
|
@ -98,20 +98,20 @@ func (f *Factory) CreateCRDs(ctx context.Context, storageContext types.StorageCo
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
ready, err := f.getReadyCRDs(apiClient)
|
ready, err := f.getReadyCRDs(ctx, apiClient)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, schema := range schemas {
|
for _, schema := range schemas {
|
||||||
crd, err := f.createCRD(apiClient, schema, ready)
|
crd, err := f.createCRD(ctx, apiClient, schema, ready)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
schemaStatus[schema] = crd
|
schemaStatus[schema] = crd
|
||||||
}
|
}
|
||||||
|
|
||||||
ready, err = f.getReadyCRDs(apiClient)
|
ready, err = f.getReadyCRDs(ctx, apiClient)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -140,7 +140,7 @@ func (f *Factory) waitCRD(ctx context.Context, apiClient clientset.Interface, cr
|
|||||||
}
|
}
|
||||||
first = false
|
first = false
|
||||||
|
|
||||||
crd, err := apiClient.ApiextensionsV1beta1().CustomResourceDefinitions().Get(crdName, metav1.GetOptions{})
|
crd, err := apiClient.ApiextensionsV1beta1().CustomResourceDefinitions().Get(ctx, crdName, metav1.GetOptions{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
@ -163,7 +163,7 @@ func (f *Factory) waitCRD(ctx context.Context, apiClient clientset.Interface, cr
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *Factory) createCRD(apiClient clientset.Interface, schema *types.Schema, ready map[string]*apiext.CustomResourceDefinition) (*apiext.CustomResourceDefinition, error) {
|
func (f *Factory) createCRD(ctx context.Context, apiClient clientset.Interface, schema *types.Schema, ready map[string]*apiext.CustomResourceDefinition) (*apiext.CustomResourceDefinition, error) {
|
||||||
plural := strings.ToLower(schema.PluralName)
|
plural := strings.ToLower(schema.PluralName)
|
||||||
name := strings.ToLower(plural + "." + schema.Version.Group)
|
name := strings.ToLower(plural + "." + schema.Version.Group)
|
||||||
|
|
||||||
@ -193,15 +193,15 @@ func (f *Factory) createCRD(apiClient clientset.Interface, schema *types.Schema,
|
|||||||
}
|
}
|
||||||
|
|
||||||
logrus.Infof("Creating CRD %s", name)
|
logrus.Infof("Creating CRD %s", name)
|
||||||
crd2, err := apiClient.ApiextensionsV1beta1().CustomResourceDefinitions().Create(crd)
|
crd2, err := apiClient.ApiextensionsV1beta1().CustomResourceDefinitions().Create(ctx, crd, metav1.CreateOptions{})
|
||||||
if errors.IsAlreadyExists(err) {
|
if errors.IsAlreadyExists(err) {
|
||||||
return crd, nil
|
return crd, nil
|
||||||
}
|
}
|
||||||
return crd2, err
|
return crd2, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *Factory) getReadyCRDs(apiClient clientset.Interface) (map[string]*apiext.CustomResourceDefinition, error) {
|
func (f *Factory) getReadyCRDs(ctx context.Context, apiClient clientset.Interface) (map[string]*apiext.CustomResourceDefinition, error) {
|
||||||
list, err := apiClient.ApiextensionsV1beta1().CustomResourceDefinitions().List(metav1.ListOptions{})
|
list, err := apiClient.ApiextensionsV1beta1().CustomResourceDefinitions().List(ctx, metav1.ListOptions{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -134,7 +134,7 @@ func (s *Store) doAuthed(apiContext *types.APIContext, request *rest.Request) re
|
|||||||
for _, header := range authHeaders {
|
for _, header := range authHeaders {
|
||||||
request.SetHeader(header, apiContext.Request.Header[http.CanonicalHeaderKey(header)]...)
|
request.SetHeader(header, apiContext.Request.Header[http.CanonicalHeaderKey(header)]...)
|
||||||
}
|
}
|
||||||
return request.Do()
|
return request.Do(apiContext.Request.Context())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Store) k8sClient(apiContext *types.APIContext) (rest.Interface, error) {
|
func (s *Store) k8sClient(apiContext *types.APIContext) (rest.Interface, error) {
|
||||||
@ -250,7 +250,7 @@ func (s *Store) retryList(namespace string, apiContext *types.APIContext) (*unst
|
|||||||
req := s.common(namespace, k8sClient.Get())
|
req := s.common(namespace, k8sClient.Get())
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
resultList = &unstructured.UnstructuredList{}
|
resultList = &unstructured.UnstructuredList{}
|
||||||
err = req.Do().Into(resultList)
|
err = req.Do(apiContext.Request.Context()).Into(resultList)
|
||||||
logrus.Tracef("LIST: %v, %v", time.Now().Sub(start), s.resourcePlural)
|
logrus.Tracef("LIST: %v, %v", time.Now().Sub(start), s.resourcePlural)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if i < 2 && strings.Contains(err.Error(), "Client.Timeout exceeded") {
|
if i < 2 && strings.Contains(err.Error(), "Client.Timeout exceeded") {
|
||||||
@ -296,7 +296,7 @@ func (s *Store) realWatch(apiContext *types.APIContext, schema *types.Schema, op
|
|||||||
ResourceVersion: "0",
|
ResourceVersion: "0",
|
||||||
}, metav1.ParameterCodec)
|
}, metav1.ParameterCodec)
|
||||||
|
|
||||||
body, err := req.Stream()
|
body, err := req.Stream(apiContext.Request.Context())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user