 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Overview ¶
Package client provides an implementation of a restricted subset of kubernetes API client
Index ¶
- Variables
- func CertPoolFromFile(filename string) (*x509.CertPool, error)
- func CertsFromPEM(pemCerts []byte) ([]*x509.Certificate, error)
- func Format(v string) string
- func NewClusterClient() *client
- func NewLocalClient(hosts ...string) *client
- func SerializeResourceName(ns string) string
- type Client
- type Condition
- type Container
- type ContainerPort
- type ContainerState
- type ContainerStatus
- type CreateOption
- type CreateOptions
- type DeleteOption
- type DeleteOptions
- type Deployment
- type DeploymentCondition
- type DeploymentList
- type DeploymentSpec
- type DeploymentStatus
- type EnvVar
- type Event
- type EventType
- type GetOption
- type GetOptions
- type ImagePullSecret
- type LabelSelector
- type ListOption
- type ListOptions
- type LoadBalancerIngress
- type LoadBalancerStatus
- type LogOption
- type LogOptions
- type Metadata
- type Namespace
- type NamespaceList
- type Pod
- type PodCondition
- type PodList
- type PodSpec
- type PodStatus
- type Resource
- type Secret
- type Service
- type ServiceAccount
- type ServiceList
- type ServicePort
- type ServiceSpec
- type ServiceStatus
- type Template
- type UpdateOption
- type UpdateOptions
- type WatchOption
- type WatchOptions
- type Watcher
Constants ¶
This section is empty.
Variables ¶
var ( // ErrReadNamespace is returned when the names could not be read from service account ErrReadNamespace = errors.New("Could not read namespace from service account secret") // DefaultImage is default micro image DefaultImage = "micro/go-micro" // DefaultNamespace is the default k8s namespace DefaultNamespace = "default" )
Functions ¶
func CertPoolFromFile ¶
CertPoolFromFile returns an x509.CertPool containing the certificates in the given PEM-encoded file. Returns an error if the file could not be read, a certificate could not be parsed, or if the file does not contain any certificates
func CertsFromPEM ¶
func CertsFromPEM(pemCerts []byte) ([]*x509.Certificate, error)
CertsFromPEM returns the x509.Certificates contained in the given PEM-encoded byte array Returns an error if a certificate could not be parsed, or if the data does not contain any certificates
func NewClusterClient ¶
func NewClusterClient() *client
NewClusterClient creates a Kubernetes client for use from within a k8s pod.
func NewLocalClient ¶
func NewLocalClient(hosts ...string) *client
NewLocalClient returns a client that can be used with `kubectl proxy`
func SerializeResourceName ¶
SerializeResourceName removes all spacial chars from a string so it can be used as a k8s resource name
Types ¶
type Client ¶
type Client interface {
	// Create creates new API resource
	Create(*Resource, ...CreateOption) error
	// Get queries API resrouces
	Get(*Resource, ...GetOption) error
	// Update patches existing API object
	Update(*Resource, ...UpdateOption) error
	// Delete deletes API resource
	Delete(*Resource, ...DeleteOption) error
	// List lists API resources
	List(*Resource, ...ListOption) error
	// Log gets log for a pod
	Log(*Resource, ...LogOption) (io.ReadCloser, error)
	// Watch for events
	Watch(*Resource, ...WatchOption) (Watcher, error)
}
    Kubernetes client
type Container ¶
type Container struct {
	Name    string          `json:"name"`
	Image   string          `json:"image"`
	Env     []EnvVar        `json:"env,omitempty"`
	Command []string        `json:"command,omitempty"`
	Args    []string        `json:"args,omitempty"`
	Ports   []ContainerPort `json:"ports,omitempty"`
}
    Container defined container runtime values
type ContainerPort ¶
type ContainerPort struct {
	Name          string `json:"name,omitempty"`
	HostPort      int    `json:"hostPort,omitempty"`
	ContainerPort int    `json:"containerPort"`
	Protocol      string `json:"protocol,omitempty"`
}
    ContainerPort
type ContainerState ¶
type ContainerStatus ¶
type ContainerStatus struct {
	State ContainerState `json:"state"`
}
    type CreateOption ¶
type CreateOption func(*CreateOptions)
func CreateNamespace ¶
func CreateNamespace(ns string) CreateOption
CreateNamespace sets the namespace for creating a resource
type CreateOptions ¶
type CreateOptions struct {
	Namespace string
}
    type DeleteOption ¶
type DeleteOption func(*DeleteOptions)
func DeleteNamespace ¶
func DeleteNamespace(ns string) DeleteOption
DeleteNamespace sets the namespace for deleting a resource
type DeleteOptions ¶
type DeleteOptions struct {
	Namespace string
}
    type Deployment ¶
type Deployment struct {
	Metadata *Metadata         `json:"metadata"`
	Spec     *DeploymentSpec   `json:"spec,omitempty"`
	Status   *DeploymentStatus `json:"status,omitempty"`
}
    Deployment is Kubernetes deployment
func NewDeployment ¶
func NewDeployment(name, version, typ, namespace string) *Deployment
NewService returns default micro kubernetes deployment definition
type DeploymentCondition ¶
type DeploymentCondition struct {
	LastUpdateTime string `json:"lastUpdateTime"`
	Type           string `json:"type"`
	Reason         string `json:"reason,omitempty"`
	Message        string `json:"message,omitempty"`
}
    DeploymentCondition describes the state of deployment
type DeploymentList ¶
type DeploymentList struct {
	Items []Deployment `json:"items"`
}
    DeploymentList
type DeploymentSpec ¶
type DeploymentSpec struct {
	Replicas int            `json:"replicas,omitempty"`
	Selector *LabelSelector `json:"selector"`
	Template *Template      `json:"template,omitempty"`
}
    DeploymentSpec defines micro deployment spec
type DeploymentStatus ¶
type DeploymentStatus struct {
	Replicas            int                   `json:"replicas,omitempty"`
	UpdatedReplicas     int                   `json:"updatedReplicas,omitempty"`
	ReadyReplicas       int                   `json:"readyReplicas,omitempty"`
	AvailableReplicas   int                   `json:"availableReplicas,omitempty"`
	Conditions          []DeploymentCondition `json:"conditions,omitempty"`
}
    DeploymentStatus is returned when querying deployment
type Event ¶
type Event struct {
	Type   EventType       `json:"type"`
	Object json.RawMessage `json:"object"`
}
    Event represents a single event to a watched resource.
type GetOption ¶
type GetOption func(*GetOptions)
func GetNamespace ¶
GetNamespace sets the namespace for getting a resource
type GetOptions ¶
type LabelSelector ¶
LabelSelector is a label query over a set of resources NOTE: we do not support MatchExpressions at the moment
type ListOption ¶
type ListOption func(*ListOptions)
func ListNamespace ¶
func ListNamespace(ns string) ListOption
ListNamespace sets the namespace for listing resources
type ListOptions ¶
type ListOptions struct {
	Namespace string
}
    type LoadBalancerIngress ¶
type LoadBalancerStatus ¶
type LoadBalancerStatus struct {
	Ingress []LoadBalancerIngress `json:"ingress,omitempty"`
}
    type LogOption ¶
type LogOption func(*LogOptions)
func LogNamespace ¶
LogNamespace sets the namespace for logging a resource
type LogOptions ¶
type Metadata ¶
type Metadata struct {
	Name        string            `json:"name,omitempty"`
	Namespace   string            `json:"namespace,omitempty"`
	Version     string            `json:"version,omitempty"`
	Labels      map[string]string `json:"labels,omitempty"`
	Annotations map[string]string `json:"annotations,omitempty"`
}
    Metadata defines api object metadata
type Namespace ¶
type Namespace struct {
	Metadata *Metadata `json:"metadata,omitempty"`
}
    Namespace is a Kubernetes Namespace
type Pod ¶
type Pod struct {
	Metadata *Metadata  `json:"metadata"`
	Spec     *PodSpec   `json:"spec,omitempty"`
	Status   *PodStatus `json:"status"`
}
    Pod is the top level item for a pod
type PodCondition ¶
type PodCondition struct {
	Type    string `json:"type"`
	Reason  string `json:"reason,omitempty"`
	Message string `json:"message,omitempty"`
}
    PodCondition describes the state of pod
type PodSpec ¶
type PodSpec struct {
	Containers         []Container `json:"containers"`
	ServiceAccountName string      `json:"serviceAccountName"`
}
    PodSpec is a pod
type PodStatus ¶
type PodStatus struct {
	Conditions []PodCondition    `json:"conditions,omitempty"`
	Containers []ContainerStatus `json:"containerStatuses"`
	PodIP      string            `json:"podIP"`
	Phase      string            `json:"phase"`
	Reason     string            `json:"reason"`
}
    PodStatus
type Secret ¶
type Secret struct {
	Type     string            `json:"type,omitempty"`
	Data     map[string]string `json:"data"`
	Metadata *Metadata         `json:"metadata"`
}
    Secret
type Service ¶
type Service struct {
	Metadata *Metadata      `json:"metadata"`
	Spec     *ServiceSpec   `json:"spec,omitempty"`
	Status   *ServiceStatus `json:"status,omitempty"`
}
    Service is kubernetes service
func NewService ¶
NewService returns default micro kubernetes service definition
type ServiceAccount ¶
type ServiceAccount struct {
	Metadata         *Metadata         `json:"metadata,omitempty"`
	ImagePullSecrets []ImagePullSecret `json:"imagePullSecrets,omitempty"`
}
    ServiceAccount
type ServicePort ¶
type ServicePort struct {
	Name     string `json:"name,omitempty"`
	Port     int    `json:"port"`
	Protocol string `json:"protocol,omitempty"`
}
    ServicePort configures service ports
type ServiceSpec ¶
type ServiceSpec struct {
	ClusterIP string            `json:"clusterIP"`
	Type      string            `json:"type,omitempty"`
	Selector  map[string]string `json:"selector,omitempty"`
	Ports     []ServicePort     `json:"ports,omitempty"`
}
    ServiceSpec provides service configuration
type ServiceStatus ¶
type ServiceStatus struct {
	LoadBalancer LoadBalancerStatus `json:"loadBalancer,omitempty"`
}
    ServiceStatus
type Template ¶
type Template struct {
	Metadata *Metadata `json:"metadata,omitempty"`
	PodSpec  *PodSpec  `json:"spec,omitempty"`
}
    Template is micro deployment template
type UpdateOption ¶
type UpdateOption func(*UpdateOptions)
func UpdateNamespace ¶
func UpdateNamespace(ns string) UpdateOption
UpdateNamespace sets the namespace for updating a resource
type UpdateOptions ¶
type UpdateOptions struct {
	Namespace string
}
    type WatchOption ¶
type WatchOption func(*WatchOptions)
func WatchNamespace ¶
func WatchNamespace(ns string) WatchOption
WatchNamespace sets the namespace for watching a resource
func WatchParams ¶
func WatchParams(p map[string]string) WatchOption
WatchParams used for watch params