kubelatte-ce
Форк от sbertech/kubelatte-ce
113 строк · 3.2 Кб
1package clientset2
3import (4"context"5"gitverse.ru/synapse/kubelatte/pkg/api/v1alpha1"6metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"7"k8s.io/apimachinery/pkg/watch"8"k8s.io/client-go/kubernetes/scheme"9"k8s.io/client-go/rest"10)
11
12type TemplateInterface interface {13List(ctx context.Context, opts metav1.ListOptions) (*v1alpha1.TemplateList, error)14Get(ctx context.Context, name string, options metav1.GetOptions) (*v1alpha1.Template, error)15Update(ctx context.Context, template *v1alpha1.Template, opts metav1.UpdateOptions) (result *v1alpha1.Template, err error)16UpdateStatus(ctx context.Context, hostEntry *v1alpha1.Template, opts metav1.UpdateOptions) (*v1alpha1.Template, error)17Create(ctx context.Context, template *v1alpha1.Template) (*v1alpha1.Template, error)18Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error19Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)20}
21
22type templateClient struct {23restClient rest.Interface24ns string25}
26
27func (c *templateClient) List(ctx context.Context, opts metav1.ListOptions) (*v1alpha1.TemplateList, error) {28result := v1alpha1.TemplateList{}29err := c.restClient.30Get().31Namespace(c.ns).32Resource("templates").33VersionedParams(&opts, scheme.ParameterCodec).34Do(ctx).35Into(&result)36
37return &result, err38}
39
40func (c *templateClient) Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1alpha1.Template, error) {41result := v1alpha1.Template{}42err := c.restClient.43Get().44Namespace(c.ns).45Resource("templates").46Name(name).47VersionedParams(&opts, scheme.ParameterCodec).48Do(ctx).49Into(&result)50
51return &result, err52}
53
54func (c *templateClient) Update(ctx context.Context, template *v1alpha1.Template, opts metav1.UpdateOptions) (result *v1alpha1.Template, err error) {55result = &v1alpha1.Template{}56err = c.restClient.Put().57Namespace(c.ns).58Resource("templates").59Name(template.Name).60VersionedParams(&opts, scheme.ParameterCodec).61Body(template).62Do(ctx).63Into(result)64return65}
66
67func (c *templateClient) UpdateStatus(ctx context.Context, hostEntry *v1alpha1.Template, opts metav1.UpdateOptions) (result *v1alpha1.Template, err error) {68result = &v1alpha1.Template{}69err = c.restClient.Put().70Namespace(c.ns).71Resource("templates").72Name(hostEntry.Name).73SubResource("status").74VersionedParams(&opts, scheme.ParameterCodec).75Body(hostEntry).76Do(ctx).77Into(result)78return79}
80
81func (c *templateClient) Create(ctx context.Context, template *v1alpha1.Template) (*v1alpha1.Template, error) {82result := v1alpha1.Template{}83err := c.restClient.84Post().85Namespace(c.ns).86Resource("templates").87Body(template).88Do(ctx).89Into(&result)90
91return &result, err92}
93
94func (c *templateClient) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {95return c.restClient.96Delete().97Namespace(c.ns).98Resource("templates").99Name(name).100Body(&opts).101Do(ctx).102Error()103}
104
105func (c *templateClient) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {106opts.Watch = true107return c.restClient.108Get().109Namespace(c.ns).110Resource("templates").111VersionedParams(&opts, scheme.ParameterCodec).112Watch(ctx)113}
114