client

package
v1.18.3-focal Latest Latest
Warning

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

Go to latest
Published: Jul 9, 2022 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Overview

Package client provides an implementation of a restricted subset of kubernetes API client

Index

Constants

This section is empty.

Variables

View Source
var (
	// DefaultImage is default micro image
	DefaultImage = "micro/go-micro"
)
View Source
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")
)

Functions

func CertPoolFromFile

func CertPoolFromFile(filename string) (*x509.CertPool, error)

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 Format

func Format(v string) string

Format is used to format a string value into a k8s valid name

func NewClientInCluster

func NewClientInCluster() *client

NewClientInCluster creates a Kubernetes client for use from within a k8s pod.

Types

type Container

type Container struct {
	Name    string          `json:"name"`
	Image   string          `json:"image"`
	Env     []EnvVar        `json:"env,omitempty"`
	Command []string        `json:"command,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 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 string) *Deployment

NewService returns default micro kubernetes deployment definition

type DeploymentCondition

type DeploymentCondition struct {
	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"`
	UnavailableReplicas int                   `json:"unavailableReplicas,omitempty"`
	Conditions          []DeploymentCondition `json:"conditions,omitempty"`
}

DeploymentStatus is returned when querying deployment

type EnvVar

type EnvVar struct {
	Name  string `json:"name"`
	Value string `json:"value,omitempty"`
}

EnvVar is environment variable

type Kubernetes

type Kubernetes interface {
	// Create creates new API resource
	Create(*Resource) error
	// Get queries API resrouces
	Get(*Resource, map[string]string) error
	// Update patches existing API object
	Update(*Resource) error
	// Delete deletes API resource
	Delete(*Resource) error
	// List lists API resources
	List(*Resource) error
}

Kubernetes client

type LabelSelector

type LabelSelector struct {
	MatchLabels map[string]string `json:"matchLabels,omitempty"`
}

LabelSelector is a label query over a set of resources NOTE: we do not support MatchExpressions at the moment

type LoadBalancerIngress

type LoadBalancerIngress struct {
	IP       string `json:"ip,omitempty"`
	Hostname string `json:"hostname,omitempty"`
}

type LoadBalancerStatus

type LoadBalancerStatus struct {
	Ingress []LoadBalancerIngress `json:"ingress,omitempty"`
}

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 PodSpec

type PodSpec struct {
	Containers []Container `json:"containers"`
}

PodSpec

type Resource

type Resource struct {
	Name  string
	Kind  string
	Value interface{}
}

Resource is API resource

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

func NewService(name, version, typ string) *Service

NewService returns default micro kubernetes service definition

type ServiceList

type ServiceList struct {
	Items []Service `json:"items"`
}

ServiceList

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 {
	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

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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