service

package
v0.0.0-...-8a55389 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 10, 2022 License: Apache-2.0 Imports: 30 Imported by: 0

Documentation

Overview

Package service provides the Registry interface and its RESTStorage implementation for storing Service api objects.

Index

Constants

This section is empty.

Variables

View Source
var StatusStrategy = serviceStatusStrategy{Strategy}

StatusStrategy is the default logic invoked when updating service status.

View Source
var Strategy = svcStrategy{api.Scheme, names.SimpleNameGenerator}

Services is the default logic that applies when creating and updating Service objects.

Functions

func CollectServiceNodePorts

func CollectServiceNodePorts(service *api.Service) []int

Types

type ProxyREST

type ProxyREST struct {
	ServiceRest    *REST
	ProxyTransport http.RoundTripper
}

ProxyREST implements the proxy subresource for a Service

func (*ProxyREST) Connect

func (r *ProxyREST) Connect(ctx genericapirequest.Context, id string, opts runtime.Object, responder rest.Responder) (http.Handler, error)

Connect returns a handler for the service proxy

func (*ProxyREST) ConnectMethods

func (r *ProxyREST) ConnectMethods() []string

ConnectMethods returns the list of HTTP methods that can be proxied

func (*ProxyREST) New

func (r *ProxyREST) New() runtime.Object

New returns an empty service resource

func (*ProxyREST) NewConnectOptions

func (r *ProxyREST) NewConnectOptions() (runtime.Object, bool, string)

NewConnectOptions returns versioned resource that represents proxy parameters

type REST

type REST struct {
	// contains filtered or unexported fields
}

REST adapts a service registry into apiserver's RESTStorage model.

func (*REST) Categories

func (rs *REST) Categories() []string

Categories implements the CategoriesProvider interface. Returns a list of categories a resource is part of.

func (*REST) Create

func (rs *REST) Create(ctx genericapirequest.Context, obj runtime.Object, includeUninitialized bool) (runtime.Object, error)

TODO: implement includeUninitialized by refactoring this to move to store

func (*REST) Delete

func (rs *REST) Delete(ctx genericapirequest.Context, id string) (runtime.Object, error)

func (*REST) Export

func (rs *REST) Export(ctx genericapirequest.Context, name string, opts metav1.ExportOptions) (runtime.Object, error)

Export returns Service stripped of cluster-specific information. It implements rest.Exporter.

func (*REST) Get

func (rs *REST) Get(ctx genericapirequest.Context, id string, options *metav1.GetOptions) (runtime.Object, error)

func (*REST) List

func (*REST) New

func (*REST) New() runtime.Object

func (*REST) NewList

func (*REST) NewList() runtime.Object

func (*REST) ResourceLocation

func (rs *REST) ResourceLocation(ctx genericapirequest.Context, id string) (*url.URL, http.RoundTripper, error)

ResourceLocation returns a URL to which one can send traffic for the specified service.

func (*REST) ShortNames

func (rs *REST) ShortNames() []string

ShortNames implements the ShortNamesProvider interface. Returns a list of short names for a resource.

func (*REST) Update

func (rs *REST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error)

func (*REST) Watch

Watch returns Services events via a watch.Interface. It implements rest.Watcher.

type Registry

type Registry interface {
	ListServices(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (*api.ServiceList, error)
	CreateService(ctx genericapirequest.Context, svc *api.Service) (*api.Service, error)
	GetService(ctx genericapirequest.Context, name string, options *metav1.GetOptions) (*api.Service, error)
	DeleteService(ctx genericapirequest.Context, name string) error
	UpdateService(ctx genericapirequest.Context, svc *api.Service) (*api.Service, error)
	WatchServices(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (watch.Interface, error)
	ExportService(ctx genericapirequest.Context, name string, options metav1.ExportOptions) (*api.Service, error)
}

Registry is an interface for things that know how to store services.

func NewRegistry

func NewRegistry(s rest.StandardStorage) Registry

NewRegistry returns a new Registry interface for the given Storage. Any mismatched types will panic.

type ServiceRest

type ServiceRest struct {
	Service *REST
	Proxy   *ProxyREST
}

ServiceRest includes storage for services and all sub resources

func NewStorage

func NewStorage(registry Registry, endpoints endpoint.Registry, serviceIPs ipallocator.Interface,
	serviceNodePorts portallocator.Interface, proxyTransport http.RoundTripper) *ServiceRest

NewStorage returns a new REST.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL