Documentation
¶
Overview ¶
Package client contains the implementation of the client side communication with the Kubernetes master. The Client class provides methods for reading, creating, updating, and deleting pods, replication controllers, services, and minions.
Most consumers should use the Config object to create a Client:
config := &client.Config{
Host: "http://localhost:8080",
Username: "test",
Password: "password",
}
client, err := client.New(&config)
if err != nil {
// handle error
}
client.ListPods()
More advanced consumers may wish to provide their own transport via a http.RoundTripper:
config := &client.Config{
Host: "https://localhost:8080",
Transport: oauthclient.Transport(),
}
client, err := client.New(&config)
The RESTClient type implements the Kubernetes API conventions (see `docs/api-conventions.md`) for a given API path and is intended for use by consumers implementing their own Kubernetes compatible APIs.
Index ¶
- Variables
- func BindClientConfigFlags(flags FlagSet, config *Config)
- func BindKubeletClientConfigFlags(flags FlagSet, config *KubeletConfig)
- func DefaultServerURL(host, prefix, version string, defaultTLS bool) (*url.URL, error)
- func IsConfigTransportTLS(config *Config) bool
- func NewBasicAuthRoundTripper(username, password string, rt http.RoundTripper) http.RoundTripper
- func NewBearerAuthRoundTripper(bearer string, rt http.RoundTripper) http.RoundTripper
- func NewClientCertTLSTransport(certFile, keyFile, caFile string) (*http.Transport, error)
- func NewUnsafeTLSTransport() *http.Transport
- func TransportFor(config *Config) (http.RoundTripper, error)
- type APIStatus
- type Client
- func (c *Client) ControllerHasDesiredReplicas(controller api.ReplicationController) wait.ConditionFunc
- func (c *Client) Endpoints(namespace string) EndpointsInterface
- func (c *Client) Events(namespace string) EventInterface
- func (c *Client) Minions() MinionInterface
- func (c *Client) Pods(namespace string) PodInterface
- func (c *Client) ReplicationControllers(namespace string) ReplicationControllerInterface
- func (c *Client) ServerAPIVersions() (*api.APIVersions, error)
- func (c *Client) ServerVersion() (*version.Info, error)
- func (c *Client) Services(namespace string) ServiceInterface
- type Config
- type ContainerInfoGetter
- type EndpointsInterface
- type EndpointsNamespacer
- type EventInterface
- type EventNamespacer
- type Fake
- func (c *Fake) Endpoints(namespace string) EndpointsInterface
- func (c *Fake) Events(namespace string) EventInterface
- func (c *Fake) Minions() MinionInterface
- func (c *Fake) Pods(namespace string) PodInterface
- func (c *Fake) ReplicationControllers(namespace string) ReplicationControllerInterface
- func (c *Fake) ServerAPIVersions() (*api.APIVersions, error)
- func (c *Fake) ServerVersion() (*version.Info, error)
- func (c *Fake) Services(namespace string) ServiceInterface
- type FakeAction
- type FakeEndpoints
- func (c *FakeEndpoints) Create(endpoints *api.Endpoints) (*api.Endpoints, error)
- func (c *FakeEndpoints) Get(name string) (*api.Endpoints, error)
- func (c *FakeEndpoints) List(selector labels.Selector) (*api.EndpointsList, error)
- func (c *FakeEndpoints) Update(endpoints *api.Endpoints) (*api.Endpoints, error)
- func (c *FakeEndpoints) Watch(label, field labels.Selector, resourceVersion string) (watch.Interface, error)
- type FakeEvents
- func (c *FakeEvents) Create(event *api.Event) (*api.Event, error)
- func (c *FakeEvents) Get(id string) (*api.Event, error)
- func (c *FakeEvents) List(label, field labels.Selector) (*api.EventList, error)
- func (c *FakeEvents) Search(objOrRef runtime.Object) (*api.EventList, error)
- func (c *FakeEvents) Watch(label, field labels.Selector, resourceVersion string) (watch.Interface, error)
- type FakeKubeletClient
- type FakeMinions
- type FakePods
- type FakeReplicationControllers
- func (c *FakeReplicationControllers) Create(controller *api.ReplicationController) (*api.ReplicationController, error)
- func (c *FakeReplicationControllers) Delete(controller string) error
- func (c *FakeReplicationControllers) Get(name string) (*api.ReplicationController, error)
- func (c *FakeReplicationControllers) List(selector labels.Selector) (*api.ReplicationControllerList, error)
- func (c *FakeReplicationControllers) Update(controller *api.ReplicationController) (*api.ReplicationController, error)
- func (c *FakeReplicationControllers) Watch(label, field labels.Selector, resourceVersion string) (watch.Interface, error)
- type FakeServices
- func (c *FakeServices) Create(service *api.Service) (*api.Service, error)
- func (c *FakeServices) Delete(service string) error
- func (c *FakeServices) Get(name string) (*api.Service, error)
- func (c *FakeServices) List(selector labels.Selector) (*api.ServiceList, error)
- func (c *FakeServices) Update(service *api.Service) (*api.Service, error)
- func (c *FakeServices) Watch(label, field labels.Selector, resourceVersion string) (watch.Interface, error)
- type FlagSet
- type HTTPClient
- type HTTPContainerInfoGetter
- func (self *HTTPContainerInfoGetter) GetContainerInfo(host, podID, containerID string, req *info.ContainerInfoRequest) (*info.ContainerInfo, error)
- func (self *HTTPContainerInfoGetter) GetMachineInfo(host string) (*info.MachineInfo, error)
- func (self *HTTPContainerInfoGetter) GetRootInfo(host string, req *info.ContainerInfoRequest) (*info.ContainerInfo, error)
- type HTTPKubeletClient
- type Interface
- type KubeletClient
- type KubeletConfig
- type KubeletHealthChecker
- type MinionInterface
- type MinionsInterface
- type PodInfoGetter
- type PodInterface
- type PodsNamespacer
- type PollFunc
- type RESTClient
- func (c *RESTClient) DefaultPoll(name string) (*Request, bool)
- func (c *RESTClient) Delete() *Request
- func (c *RESTClient) Get() *Request
- func (c *RESTClient) Operation(name string) *Request
- func (c *RESTClient) Post() *Request
- func (c *RESTClient) Put() *Request
- func (c *RESTClient) Verb(verb string) *Request
- type ReplicationControllerInterface
- type ReplicationControllersNamespacer
- type Request
- func (r *Request) AbsPath(path string) *Request
- func (r *Request) Body(obj interface{}) *Request
- func (r *Request) Do() Result
- func (r *Request) Namespace(namespace string) *Request
- func (r *Request) NoPoll() *Request
- func (r *Request) Param(paramName, s string) *Request
- func (r *Request) ParseSelectorParam(paramName, item string) *Request
- func (r *Request) Path(item string) *Request
- func (r *Request) Poller(poller PollFunc) *Request
- func (r *Request) SelectorParam(paramName string, s labels.Selector) *Request
- func (r *Request) Stream() (io.ReadCloser, error)
- func (r *Request) Sync(sync bool) *Request
- func (r *Request) Timeout(d time.Duration) *Request
- func (r *Request) UintParam(paramName string, u uint64) *Request
- func (r *Request) Watch() (watch.Interface, error)
- type Result
- type ServiceInterface
- type ServicesNamespacer
- type VersionInterface
Constants ¶
This section is empty.
Variables ¶
var ErrPodInfoNotAvailable = errors.New("no pod info available")
ErrPodInfoNotAvailable may be returned when the requested pod info is not available.
Functions ¶
func BindClientConfigFlags ¶
func BindClientConfigFlags(flags FlagSet, config *Config)
BindClientConfigFlags registers a standard set of CLI flags for connecting to a Kubernetes API server.
func BindKubeletClientConfigFlags ¶ added in v0.5.1
func BindKubeletClientConfigFlags(flags FlagSet, config *KubeletConfig)
func DefaultServerURL ¶
func DefaultServerURL(host, prefix, version string, defaultTLS bool) (*url.URL, error)
DefaultServerURL converts a host, host:port, or URL string to the default base server API path to use with a Client at a given API version following the standard conventions for a Kubernetes API.
func IsConfigTransportTLS ¶ added in v0.5.1
func IsConfigTransportTLS(config *Config) bool
IsConfigTransportTLS returns true iff the provided config will result in a protected connection to the server when it is passed to client.New() or client.RESTClientFor(). Use to determine when to send credentials over the wire.
Note: the Insecure flag is ignored when testing for this value, so MITM attacks are still possible.
func NewBasicAuthRoundTripper ¶
func NewBasicAuthRoundTripper(username, password string, rt http.RoundTripper) http.RoundTripper
func NewBearerAuthRoundTripper ¶
func NewBearerAuthRoundTripper(bearer string, rt http.RoundTripper) http.RoundTripper
func NewClientCertTLSTransport ¶
func NewClientCertTLSTransport(certFile, keyFile, caFile string) (*http.Transport, error)
func NewUnsafeTLSTransport ¶
func NewUnsafeTLSTransport() *http.Transport
func TransportFor ¶
func TransportFor(config *Config) (http.RoundTripper, error)
TransportFor returns an http.RoundTripper that will provide the authentication or transport level security defined by the provided Config. Will return the default http.DefaultTransport if no special case behavior is needed.
Types ¶
type APIStatus ¶
type APIStatus interface {
Status() api.Status
}
APIStatus is exposed by errors that can be converted to an api.Status object for finer grained details.
type Client ¶
type Client struct {
*RESTClient
}
Client is the implementation of a Kubernetes client.
func New ¶
func New(c *Config) (*Client, error)
New creates a Kubernetes client for the given config. This client works with pods, replication controllers and services. It allows operations such as list, get, update and delete on these objects. An error is returned if the provided configuration is not valid.
func NewOrDie ¶
func NewOrDie(c *Config) *Client
NewOrDie creates a Kubernetes client and panics if the provided API version is not recognized.
func (*Client) ControllerHasDesiredReplicas ¶
func (c *Client) ControllerHasDesiredReplicas(controller api.ReplicationController) wait.ConditionFunc
ControllerHasDesiredReplicas returns a condition that will be true iff the desired replica count for a controller's ReplicaSelector equals the Replicas count.
func (*Client) Endpoints ¶ added in v0.5.1
func (c *Client) Endpoints(namespace string) EndpointsInterface
func (*Client) ReplicationControllers ¶ added in v0.5.1
func (c *Client) ReplicationControllers(namespace string) ReplicationControllerInterface
func (*Client) ServerAPIVersions ¶ added in v0.5.1
func (c *Client) ServerAPIVersions() (*api.APIVersions, error)
ServerAPIVersions retrieves and parses the list of API versions the server supports.
func (*Client) ServerVersion ¶
func (c *Client) ServerVersion() (*version.Info, error)
ServerVersion retrieves and parses the server's version.
type Config ¶
type Config struct {
// Host must be a host string, a host:port pair, or a URL to the base of the API.
Host string
// Prefix is the sub path of the server. If not specified, the client will set
// a default value. Use "/" to indicate the server root should be used
Prefix string
// Version is the API version to talk to. If not specified, the client will use
// the preferred version.
Version string
// Server requires Basic authentication
Username string
Password string
// Server requires Bearer authentication. This client will not attempt to use
// refresh tokens for an OAuth2 flow.
// TODO: demonstrate an OAuth2 compatible client.
BearerToken string
// Server requires TLS client certificate authentication
CertFile string
KeyFile string
CAFile string
// Server should be accessed without verifying the TLS
// certificate. For testing only.
Insecure bool
// Transport may be used for custom HTTP behavior. This attribute may not
// be specified with the TLS client certificate options.
Transport http.RoundTripper
}
Config holds the common attributes that can be passed to a Kubernetes client on initialization.
type ContainerInfoGetter ¶
type ContainerInfoGetter interface {
// GetContainerInfo returns information about a container.
GetContainerInfo(host, podID, containerID string, req *info.ContainerInfoRequest) (*info.ContainerInfo, error)
// GetRootInfo returns information about the root container on a machine.
GetRootInfo(host string, req *info.ContainerInfoRequest) (*info.ContainerInfo, error)
// GetMachineInfo returns the machine's information like number of cores, memory capacity.
GetMachineInfo(host string) (*info.MachineInfo, error)
}
type EndpointsInterface ¶
type EndpointsInterface interface {
Create(endpoints *api.Endpoints) (*api.Endpoints, error)
List(selector labels.Selector) (*api.EndpointsList, error)
Get(id string) (*api.Endpoints, error)
Update(endpoints *api.Endpoints) (*api.Endpoints, error)
Watch(label, field labels.Selector, resourceVersion string) (watch.Interface, error)
}
EndpointsInterface has methods to work with Endpoints resources
type EndpointsNamespacer ¶ added in v0.5.1
type EndpointsNamespacer interface {
Endpoints(namespace string) EndpointsInterface
}
EndpointsNamespacer has methods to work with Endpoints resources in a namespace
type EventInterface ¶ added in v0.5.1
type EventInterface interface {
Create(event *api.Event) (*api.Event, error)
List(label, field labels.Selector) (*api.EventList, error)
Get(id string) (*api.Event, error)
Watch(label, field labels.Selector, resourceVersion string) (watch.Interface, error)
// Search finds events about the specified object
Search(objOrRef runtime.Object) (*api.EventList, error)
}
EventInterface has methods to work with Event resources
type EventNamespacer ¶ added in v0.5.1
type EventNamespacer interface {
Events(namespace string) EventInterface
}
EventNamespacer can return an EventInterface for the given namespace.
type Fake ¶
type Fake struct {
Actions []FakeAction
PodsList api.PodList
Ctrl api.ReplicationController
ServiceList api.ServiceList
EndpointsList api.EndpointsList
MinionsList api.MinionList
EventsList api.EventList
Err error
Watch watch.Interface
}
Fake implements Interface. Meant to be embedded into a struct to get a default implementation. This makes faking out just the method you want to test easier.
func (*Fake) Endpoints ¶ added in v0.5.1
func (c *Fake) Endpoints(namespace string) EndpointsInterface
func (*Fake) ReplicationControllers ¶ added in v0.5.1
func (c *Fake) ReplicationControllers(namespace string) ReplicationControllerInterface
func (*Fake) ServerAPIVersions ¶ added in v0.5.1
func (c *Fake) ServerAPIVersions() (*api.APIVersions, error)
func (*Fake) ServerVersion ¶
func (c *Fake) ServerVersion() (*version.Info, error)
type FakeAction ¶
type FakeAction struct {
Action string
Value interface{}
}
type FakeEndpoints ¶ added in v0.5.1
type FakeEndpoints struct {
Fake *Fake
Namespace string
}
FakeEndpoints implements EndpointInterface. Meant to be embedded into a struct to get a default implementation. This makes faking out just the method you want to test easier.
func (*FakeEndpoints) Create ¶ added in v0.5.1
func (c *FakeEndpoints) Create(endpoints *api.Endpoints) (*api.Endpoints, error)
func (*FakeEndpoints) Get ¶ added in v0.5.1
func (c *FakeEndpoints) Get(name string) (*api.Endpoints, error)
func (*FakeEndpoints) List ¶ added in v0.5.1
func (c *FakeEndpoints) List(selector labels.Selector) (*api.EndpointsList, error)
type FakeEvents ¶ added in v0.5.1
type FakeEvents struct {
Fake *Fake
}
FakeEvents implements EventInterface. Meant to be embedded into a struct to get a default implementation. This makes faking out just the method you want to test easier.
func (*FakeEvents) Create ¶ added in v0.5.1
func (c *FakeEvents) Create(event *api.Event) (*api.Event, error)
Create makes a new event. Returns the copy of the event the server returns, or an error.
func (*FakeEvents) Get ¶ added in v0.5.1
func (c *FakeEvents) Get(id string) (*api.Event, error)
Get returns the given event, or an error.
func (*FakeEvents) List ¶ added in v0.5.1
func (c *FakeEvents) List(label, field labels.Selector) (*api.EventList, error)
List returns a list of events matching the selectors.
type FakeKubeletClient ¶ added in v0.5.1
type FakeKubeletClient struct{}
FakeKubeletClient is a fake implementation of KubeletClient which returns an error when called. It is useful to pass to the master in a test configuration with no kubelets.
func (FakeKubeletClient) GetPodInfo ¶ added in v0.5.1
func (c FakeKubeletClient) GetPodInfo(host, podNamespace string, podID string) (api.PodInfo, error)
GetPodInfo is a fake implementation of PodInfoGetter.GetPodInfo.
func (FakeKubeletClient) HealthCheck ¶ added in v0.5.1
func (c FakeKubeletClient) HealthCheck(host string) (health.Status, error)
type FakeMinions ¶ added in v0.5.1
type FakeMinions struct {
Fake *Fake
}
FakeMinions implements MinionInterface. Meant to be embedded into a struct to get a default implementation. This makes faking out just the method you want to test easier.
func (*FakeMinions) Create ¶ added in v0.5.1
func (c *FakeMinions) Create(minion *api.Minion) (*api.Minion, error)
type FakePods ¶ added in v0.5.1
type FakePods struct {
Fake *Fake
Namespace string
}
FakePods implements PodsInterface. Meant to be embedded into a struct to get a default implementation. This makes faking out just the methods you want to test easier.
type FakeReplicationControllers ¶ added in v0.5.1
type FakeReplicationControllers struct {
Fake *Fake
Namespace string
}
FakeReplicationControllers implements ReplicationControllerInterface. Meant to be embedded into a struct to get a default implementation. This makes faking out just the method you want to test easier.
func (*FakeReplicationControllers) Create ¶ added in v0.5.1
func (c *FakeReplicationControllers) Create(controller *api.ReplicationController) (*api.ReplicationController, error)
func (*FakeReplicationControllers) Delete ¶ added in v0.5.1
func (c *FakeReplicationControllers) Delete(controller string) error
func (*FakeReplicationControllers) Get ¶ added in v0.5.1
func (c *FakeReplicationControllers) Get(name string) (*api.ReplicationController, error)
func (*FakeReplicationControllers) List ¶ added in v0.5.1
func (c *FakeReplicationControllers) List(selector labels.Selector) (*api.ReplicationControllerList, error)
type FakeServices ¶ added in v0.5.1
type FakeServices struct {
Fake *Fake
Namespace string
}
Fake implements ServiceInterface. Meant to be embedded into a struct to get a default implementation. This makes faking out just the method you want to test easier.
func (*FakeServices) Create ¶ added in v0.5.1
func (c *FakeServices) Create(service *api.Service) (*api.Service, error)
func (*FakeServices) Get ¶ added in v0.5.1
func (c *FakeServices) Get(name string) (*api.Service, error)
func (*FakeServices) List ¶ added in v0.5.1
func (c *FakeServices) List(selector labels.Selector) (*api.ServiceList, error)
type FlagSet ¶
type FlagSet interface {
StringVar(p *string, name, value, usage string)
BoolVar(p *bool, name string, value bool, usage string)
UintVar(p *uint, name string, value uint, usage string)
}
FlagSet abstracts the flag interface for compatibility with both Golang "flag" and cobra pflags (Posix style).
type HTTPClient ¶ added in v0.5.1
type HTTPClient interface {
Do(req *http.Request) (*http.Response, error)
}
HTTPClient is an interface for testing a request object.
type HTTPContainerInfoGetter ¶
type HTTPContainerInfoGetter struct {
Client *http.Client
Port int
}
func (*HTTPContainerInfoGetter) GetContainerInfo ¶
func (self *HTTPContainerInfoGetter) GetContainerInfo(host, podID, containerID string, req *info.ContainerInfoRequest) (*info.ContainerInfo, error)
func (*HTTPContainerInfoGetter) GetMachineInfo ¶
func (self *HTTPContainerInfoGetter) GetMachineInfo(host string) (*info.MachineInfo, error)
func (*HTTPContainerInfoGetter) GetRootInfo ¶
func (self *HTTPContainerInfoGetter) GetRootInfo(host string, req *info.ContainerInfoRequest) (*info.ContainerInfo, error)
type HTTPKubeletClient ¶ added in v0.5.1
type HTTPKubeletClient struct {
Client *http.Client
Port uint
EnableHttps bool
}
HTTPKubeletClient is the default implementation of PodInfoGetter and KubeletHealthchecker, accesses the kubelet over HTTP.
func (*HTTPKubeletClient) GetPodInfo ¶ added in v0.5.1
func (c *HTTPKubeletClient) GetPodInfo(host, podNamespace, podID string) (api.PodInfo, error)
GetPodInfo gets information about the specified pod.
func (*HTTPKubeletClient) HealthCheck ¶ added in v0.5.1
func (c *HTTPKubeletClient) HealthCheck(host string) (health.Status, error)
type Interface ¶
type Interface interface {
PodsNamespacer
ReplicationControllersNamespacer
ServicesNamespacer
EndpointsNamespacer
VersionInterface
MinionsInterface
EventNamespacer
}
Interface holds the methods for clients of Kubernetes, an interface to allow mock testing.
type KubeletClient ¶ added in v0.5.1
type KubeletClient interface {
KubeletHealthChecker
PodInfoGetter
}
KubeletClient is an interface for all kubelet functionality
func NewKubeletClient ¶ added in v0.5.1
func NewKubeletClient(config *KubeletConfig) (KubeletClient, error)
type KubeletConfig ¶ added in v0.5.1
type KubeletConfig struct {
// ToDo: Add support for different kubelet instances exposing different ports
Port uint
EnableHttps bool
// TLS Configuration, only applies if EnableHttps is true.
CertFile string
// TLS Configuration, only applies if EnableHttps is true.
KeyFile string
// TLS Configuration, only applies if EnableHttps is true.
CAFile string
}
type KubeletHealthChecker ¶ added in v0.5.1
type KubeletHealthChecker interface {
HealthCheck(host string) (health.Status, error)
}
KubeletHealthchecker is an interface for healthchecking kubelets
type MinionInterface ¶
type MinionInterface interface {
Get(id string) (result *api.Minion, err error)
Create(minion *api.Minion) (*api.Minion, error)
List() (*api.MinionList, error)
Delete(id string) error
}
type MinionsInterface ¶ added in v0.5.1
type MinionsInterface interface {
Minions() MinionInterface
}
type PodInfoGetter ¶
type PodInfoGetter interface {
// GetPodInfo returns information about all containers which are part
// Returns an api.PodInfo, or an error if one occurs.
GetPodInfo(host, podNamespace, podID string) (api.PodInfo, error)
}
PodInfoGetter is an interface for things that can get information about a pod's containers. Injectable for easy testing.
type PodInterface ¶
type PodInterface interface {
List(selector labels.Selector) (*api.PodList, error)
Get(name string) (*api.Pod, error)
Delete(name string) error
Create(pod *api.Pod) (*api.Pod, error)
Update(pod *api.Pod) (*api.Pod, error)
}
PodInterface has methods to work with Pod resources.
type PodsNamespacer ¶ added in v0.5.1
type PodsNamespacer interface {
Pods(namespace string) PodInterface
}
PodsNamespacer has methods to work with Pod resources in a namespace
type PollFunc ¶ added in v0.5.1
type PollFunc func(name string) (*Request, bool)
PollFunc is called when a server operation returns 202 accepted. The name of the operation is extracted from the response and passed to this function. Return a request to retrieve the result of the operation, or false for the second argument if polling should end.
type RESTClient ¶
type RESTClient struct {
// Codec is the encoding and decoding scheme that applies to a particular set of
// REST resources.
Codec runtime.Codec
// Set specific behavior of the client. If not set http.DefaultClient will be
// used.
Client HTTPClient
// Set the poll behavior of this client. If not set the DefaultPoll method will
// be called.
Poller PollFunc
Sync bool
PollPeriod time.Duration
Timeout time.Duration
// contains filtered or unexported fields
}
RESTClient imposes common Kubernetes API conventions on a set of resource paths. The baseURL is expected to point to an HTTP or HTTPS path that is the parent of one or more resources. The server should return a decodable API resource object, or an api.Status object which contains information about the reason for any failure.
Most consumers should use client.New() to get a Kubernetes API client.
func NewRESTClient ¶
func NewRESTClient(baseURL *url.URL, c runtime.Codec) *RESTClient
NewRESTClient creates a new RESTClient. This client performs generic REST functions such as Get, Put, Post, and Delete on specified paths. Codec controls encoding and decoding of responses from the server.
func RESTClientFor ¶
func RESTClientFor(config *Config) (*RESTClient, error)
RESTClientFor returns a RESTClient that satisfies the requested attributes on a client Config object.
func (*RESTClient) DefaultPoll ¶ added in v0.5.1
func (c *RESTClient) DefaultPoll(name string) (*Request, bool)
func (*RESTClient) Delete ¶
func (c *RESTClient) Delete() *Request
Delete begins a DELETE request. Short for c.Verb("DELETE").
func (*RESTClient) Get ¶
func (c *RESTClient) Get() *Request
Get begins a GET request. Short for c.Verb("GET").
func (*RESTClient) Operation ¶ added in v0.5.1
func (c *RESTClient) Operation(name string) *Request
PollFor makes a request to do a single poll of the completion of the given operation.
func (*RESTClient) Post ¶
func (c *RESTClient) Post() *Request
Post begins a POST request. Short for c.Verb("POST").
func (*RESTClient) Put ¶
func (c *RESTClient) Put() *Request
Put begins a PUT request. Short for c.Verb("PUT").
func (*RESTClient) Verb ¶
func (c *RESTClient) Verb(verb string) *Request
Verb begins a request with a verb (GET, POST, PUT, DELETE).
Example usage of RESTClient's request building interface: c := NewRESTClient(url, codec) resp, err := c.Verb("GET").
Path("pods").
SelectorParam("labels", "area=staging").
Timeout(10*time.Second).
Do()
if err != nil { ... } list, ok := resp.(*api.PodList)
type ReplicationControllerInterface ¶
type ReplicationControllerInterface interface {
List(selector labels.Selector) (*api.ReplicationControllerList, error)
Get(name string) (*api.ReplicationController, error)
Create(ctrl *api.ReplicationController) (*api.ReplicationController, error)
Update(ctrl *api.ReplicationController) (*api.ReplicationController, error)
Delete(name string) error
Watch(label, field labels.Selector, resourceVersion string) (watch.Interface, error)
}
ReplicationControllerInterface has methods to work with ReplicationController resources.
type ReplicationControllersNamespacer ¶ added in v0.5.1
type ReplicationControllersNamespacer interface {
ReplicationControllers(namespace string) ReplicationControllerInterface
}
ReplicationControllersNamespacer has methods to work with ReplicationController resources in a namespace
type Request ¶
type Request struct {
// contains filtered or unexported fields
}
Request allows for building up a request to a server in a chained fashion. Any errors are stored until the end of your call, so you only have to check once.
func NewRequest ¶ added in v0.5.1
func NewRequest(client HTTPClient, verb string, baseURL *url.URL, codec runtime.Codec) *Request
NewRequest creates a new request with the core attributes.
func (*Request) AbsPath ¶
func (r *Request) AbsPath(path string) *Request
AbsPath overwrites an existing path with the path parameter.
func (*Request) Body ¶
func (r *Request) Body(obj interface{}) *Request
Body makes the request use obj as the body. Optional. If obj is a string, try to read a file of that name. If obj is a []byte, send it directly. If obj is an io.Reader, use it directly. If obj is a runtime.Object, marshal it correctly. Otherwise, set an error.
func (*Request) Do ¶
func (r *Request) Do() Result
Do formats and executes the request. Returns a Result object for easy response processing. Handles polling the server in the event a continuation was sent.
func (*Request) Namespace ¶ added in v0.5.1
func (r *Request) Namespace(namespace string) *Request
Namespace applies the namespace scope to a request
func (*Request) NoPoll ¶ added in v0.5.1
func (r *Request) NoPoll() *Request
NoPoll indicates a server "working" response should be returned as an error
func (*Request) Param ¶
func (r *Request) Param(paramName, s string) *Request
Param creates a query parameter with the given string value.
func (*Request) ParseSelectorParam ¶
func (r *Request) ParseSelectorParam(paramName, item string) *Request
ParseSelectorParam parses the given string as a resource label selector. This is a convenience function so you don't have to first check that it's a validly formatted selector.
func (*Request) Path ¶
func (r *Request) Path(item string) *Request
Path appends an item to the request path. You must call Path at least once.
func (*Request) Poller ¶ added in v0.5.1
func (r *Request) Poller(poller PollFunc) *Request
Poller indicates this request should use the specified poll function to determine whether a server "working" response should be retried. The poller is responsible for waiting or outputting messages to the client.
func (*Request) SelectorParam ¶
func (r *Request) SelectorParam(paramName string, s labels.Selector) *Request
SelectorParam adds the given selector as a query parameter with the name paramName.
func (*Request) Stream ¶
func (r *Request) Stream() (io.ReadCloser, error)
Stream formats and executes the request, and offers streaming of the response. Returns io.ReadCloser which could be used for streaming of the response, or an error
func (*Request) Sync ¶
func (r *Request) Sync(sync bool) *Request
Sync sets sync/async call status by setting the "sync" parameter to "true"/"false".
func (*Request) Timeout ¶
func (r *Request) Timeout(d time.Duration) *Request
Timeout makes the request use the given duration as a timeout. Sets the "timeout" parameter. Ignored if sync=false.
type Result ¶
type Result struct {
// contains filtered or unexported fields
}
Result contains the result of calling Request.Do().
func (Result) Error ¶
func (r Result) Error() error
Error returns the error executing the request, nil if no error occurred.
func (Result) Get ¶
func (r Result) Get() (runtime.Object, error)
Get returns the result as an object.
func (Result) Into ¶
func (r Result) Into(obj runtime.Object) error
Into stores the result into obj, if possible.
func (Result) WasCreated ¶ added in v0.5.1
func (r Result) WasCreated(wasCreated *bool) Result
WasCreated updates the provided bool pointer to whether the server returned 201 created or a different response.
type ServiceInterface ¶
type ServiceInterface interface {
List(selector labels.Selector) (*api.ServiceList, error)
Get(name string) (*api.Service, error)
Create(srv *api.Service) (*api.Service, error)
Update(srv *api.Service) (*api.Service, error)
Delete(name string) error
Watch(label, field labels.Selector, resourceVersion string) (watch.Interface, error)
}
ServiceInterface has methods to work with Service resources.
type ServicesNamespacer ¶ added in v0.5.1
type ServicesNamespacer interface {
Services(namespace string) ServiceInterface
}
ServicesNamespacer has methods to work with Service resources in a namespace
type VersionInterface ¶
type VersionInterface interface {
ServerVersion() (*version.Info, error)
ServerAPIVersions() (*api.APIVersions, error)
}
VersionInterface has a method to retrieve the server version.
Source Files
¶
- client.go
- conditions.go
- containerinfo.go
- doc.go
- endpoints.go
- events.go
- fake.go
- fake_endpoints.go
- fake_events.go
- fake_minions.go
- fake_pods.go
- fake_replication_controllers.go
- fake_services.go
- flags.go
- helper.go
- kubelet.go
- minions.go
- pods.go
- replication_controllers.go
- request.go
- restclient.go
- services.go
- transport.go