node

package
v0.10.3 Latest Latest
Warning

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

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

Documentation

Index

Constants

View Source
const (
	// LabelNodeRolePrefix is a label prefix for node roles
	// It's copied over to here until it's merged in core: https://github.com/kubernetes/kubernetes/pull/39112
	LabelNodeRolePrefix = "node-role.kubernetes.io/"

	// LabelNodeRole specifies the role of a node
	LabelNodeRole = "kubernetes.io/role"

	NodeRoleMaster       = "master"
	NodeRoleControlPlane = "control-plane"
)

Variables

View Source
var (
	ErrInvalidToolsType  = fmt.Errorf("type must be string, *corev1.Node, or corev1.Node")
	ErrInvalidCreateType = fmt.Errorf("type must be string, []byte, *corev1.Node, corev1.Node, runtime.Object, *unstructured.Unstructured, unstructured.Unstructured or map[string]interface{}")
	ErrInvalidUpdateType = ErrInvalidCreateType
	ErrInvalidApplyType  = ErrInvalidCreateType
	ErrInvalidDeleteType = ErrInvalidCreateType
	ErrInvalidGetType    = ErrInvalidCreateType
)

Functions

func GVK added in v0.6.1

GVK returns the name of Group, Version, Kind of pod resource.

func GVR added in v0.5.0

GVR returns the name of Group, Version, Resource of node resource.

func Group added in v0.5.0

func Group() string

Group returns the Group name of node resource.

func Kind added in v0.6.1

func Kind() string

Kind returns the Kind name of pod resource.

func Resource added in v0.5.0

func Resource() string

Resource returns the Resource name of node resource.

func Version added in v0.5.0

func Version() string

Version returns the Version name of node resource.

Types

type Handler

type Handler struct {
	Options *types.HandlerOptions
	// contains filtered or unexported fields
}

func New

func New(ctx context.Context, kubeconfig string) (handler *Handler, err error)

New returns a node handler from kubeconfig or in-cluster config The kubeconfig precedence is: * kubeconfig variable passed. * KUBECONFIG environment variable pointing at a file * $HOME/.kube/config if exists. * In-cluster config if running in cluster

func NewOrDie added in v0.3.0

func NewOrDie(ctx context.Context, kubeconfig string) *Handler

NewOrDie simply call New() to get a node handler. panic if there is any error occurs.

func (*Handler) Apply added in v0.3.0

func (h *Handler) Apply(obj interface{}) (*corev1.Node, error)

Apply applies node from type string, []byte, *corev1.Node, corev1.Node, runtime.Object, *unstructured.Unstructured, unstructured.Unstructured or map[string]interface{}.

func (*Handler) ApplyFromBytes added in v0.3.0

func (h *Handler) ApplyFromBytes(data []byte) (node *corev1.Node, err error)

ApplyFromBytes pply node from bytes.

func (*Handler) ApplyFromFile added in v0.3.0

func (h *Handler) ApplyFromFile(filename string) (node *corev1.Node, err error)

ApplyFromFile applies node from yaml file.

func (*Handler) ApplyFromMap added in v0.5.0

func (h *Handler) ApplyFromMap(u map[string]interface{}) (*corev1.Node, error)

ApplyFromMap applies node from map[string]interface{}.

func (*Handler) ApplyFromObject added in v0.3.0

func (h *Handler) ApplyFromObject(obj runtime.Object) (*corev1.Node, error)

ApplyFromObject applies node from runtime.Object.

func (*Handler) ApplyFromUnstructured added in v0.3.0

func (h *Handler) ApplyFromUnstructured(u *unstructured.Unstructured) (*corev1.Node, error)

ApplyFromUnstructured applies node from *unstructured.Unstructured.

func (*Handler) Clientset added in v0.2.0

func (h *Handler) Clientset() *kubernetes.Clientset

Clientset returns underlying clientset.

func (*Handler) Create added in v0.3.0

func (h *Handler) Create(obj interface{}) (*corev1.Node, error)

Create creates node from type string, []byte, *corev1.Node, corev1.Node, runtime.Object, *unstructured.Unstructured, unstructured.Unstructured or map[string]interface{}.

func (*Handler) CreateFromBytes added in v0.3.0

func (h *Handler) CreateFromBytes(data []byte) (*corev1.Node, error)

CreateFromBytes creates node from bytes.

func (*Handler) CreateFromFile added in v0.3.0

func (h *Handler) CreateFromFile(filename string) (*corev1.Node, error)

CreateFromFile creates node from yaml file.

func (*Handler) CreateFromMap added in v0.5.0

func (h *Handler) CreateFromMap(u map[string]interface{}) (*corev1.Node, error)

CreateFromMap creates node from map[string]interface{}.

func (*Handler) CreateFromObject added in v0.3.0

func (h *Handler) CreateFromObject(obj runtime.Object) (*corev1.Node, error)

CreateFromObject creates node from runtime.Object.

func (*Handler) CreateFromUnstructured added in v0.3.0

func (h *Handler) CreateFromUnstructured(u *unstructured.Unstructured) (*corev1.Node, error)

CreateFromUnstructured creates node from *unstructured.Unstructured.

func (*Handler) DeepCopy

func (in *Handler) DeepCopy() *Handler

func (*Handler) Delete added in v0.3.0

func (h *Handler) Delete(obj interface{}) error

Delete deletes node from type string, []byte, *corev1.Node, corev1.Node, runtime.Object, *unstructured.Unstructured, unstructured.Unstructured or map[string]interface{}.

If passed parameter type is string, it will simply call DeleteByName instead of DeleteFromFile. You should always explicitly call DeleteFromFile to delete a node from file path.

func (*Handler) DeleteByName added in v0.3.0

func (h *Handler) DeleteByName(name string) error

DeleteByName deletes node by name.

func (*Handler) DeleteFromBytes added in v0.3.0

func (h *Handler) DeleteFromBytes(data []byte) error

DeleteFromBytes deletes node from bytes.

func (*Handler) DeleteFromFile added in v0.3.0

func (h *Handler) DeleteFromFile(filename string) error

DeleteFromFile deletes node from yaml file.

func (*Handler) DeleteFromMap added in v0.5.0

func (h *Handler) DeleteFromMap(u map[string]interface{}) error

DeleteFromMap deletes node from map[string]interface{}.

func (*Handler) DeleteFromObject added in v0.3.0

func (h *Handler) DeleteFromObject(obj runtime.Object) error

DeleteFromObject deletes node from runtime.Object.

func (*Handler) DeleteFromUnstructured added in v0.3.0

func (h *Handler) DeleteFromUnstructured(u *unstructured.Unstructured) error

DeleteFromUnstructured deletes node from *unstructured.Unstructured.

func (*Handler) DiscoveryClient added in v0.2.0

func (h *Handler) DiscoveryClient() *discovery.DiscoveryClient

DiscoveryClient returns underlying discovery client.

func (*Handler) DynamicClient added in v0.2.0

func (h *Handler) DynamicClient() dynamic.Interface

DynamicClient returns underlying dynamic client.

func (*Handler) Get

func (h *Handler) Get(obj interface{}) (*corev1.Node, error)

Get gets node from type string, []byte, *corev1.Node, corev1.Node, runtime.Object, *unstructured.Unstructured, unstructured.Unstructured or map[string]interface{}.

If passed parameter type is string, it will simply call GetByName instead of GetFromFile. You should always explicitly call GetFromFile to get a node from file path.

func (*Handler) GetAge added in v0.2.0

func (h *Handler) GetAge(object interface{}) (time.Duration, error)

GetAge

func (*Handler) GetByName

func (h *Handler) GetByName(name string) (*corev1.Node, error)

GetByName gets node by name.

func (*Handler) GetCIDR

func (h *Handler) GetCIDR(object interface{}) (string, error)

GetCIDR get the node podCIDR

func (*Handler) GetCIDRs

func (h *Handler) GetCIDRs(object interface{}) ([]string, error)

GetCIDRs get the node podCIDRs

func (*Handler) GetExternaDNS added in v0.2.0

func (h *Handler) GetExternaDNS(object interface{}) ([]string, error)

GetExternaDNS returns the node ip

func (*Handler) GetExternalIP added in v0.2.0

func (h *Handler) GetExternalIP(object interface{}) ([]string, error)

GetExternalIP returns the node ip

func (*Handler) GetFromBytes added in v0.3.0

func (h *Handler) GetFromBytes(data []byte) (*corev1.Node, error)

GetFromBytes gets node from bytes.

func (*Handler) GetFromFile added in v0.3.0

func (h *Handler) GetFromFile(filename string) (*corev1.Node, error)

GetFromFile gets node from yaml file.

func (*Handler) GetFromMap added in v0.5.0

func (h *Handler) GetFromMap(u map[string]interface{}) (*corev1.Node, error)

GetFromMap gets node from map[string]interface{}.

func (*Handler) GetFromObject added in v0.3.0

func (h *Handler) GetFromObject(obj runtime.Object) (*corev1.Node, error)

GetFromObject gets node from runtime.Object.

func (*Handler) GetFromUnstructured added in v0.3.0

func (h *Handler) GetFromUnstructured(u *unstructured.Unstructured) (*corev1.Node, error)

GetFromUnstructured gets node from *unstructured.Unstructured.

func (*Handler) GetHostname

func (h *Handler) GetHostname(object interface{}) ([]string, error)

GetHostname returns the node ip

func (*Handler) GetInternalDNS added in v0.2.0

func (h *Handler) GetInternalDNS(object interface{}) ([]string, error)

GetInternalDNS returns the node ip

func (*Handler) GetInternalIP added in v0.2.0

func (h *Handler) GetInternalIP(object interface{}) ([]string, error)

GetInternalIP returns the node ip

func (*Handler) GetMasterInfo

func (h *Handler) GetMasterInfo() ([]NodeInfo, error)

GetMasterInfo

func (*Handler) GetNodeInfo added in v0.2.0

func (h *Handler) GetNodeInfo(object interface{}) (*NodeInfo, error)

GetNodeInfo get given node info.

func (*Handler) GetPhase added in v0.2.0

func (h *Handler) GetPhase(object interface{}) (string, error)

These are the valid phases of node. Running, Pending, Terminated

func (*Handler) GetPods

func (h *Handler) GetPods(object interface{}) ([]*corev1.Pod, error)

GetPods get all pods running in the node

func (*Handler) GetRoles

func (h *Handler) GetRoles(object interface{}) ([]string, error)

GetRoles returns the roles of a given node. The roles are determined by looking for:

node-role.kubernetes.io/<role>=""
kubernetes.io/role="<role>"

func (*Handler) GetWorkerInfo

func (h *Handler) GetWorkerInfo() ([]NodeInfo, error)

GetWorkerInfo

func (*Handler) Informer added in v0.5.0

func (h *Handler) Informer() cache.SharedIndexInformer

Informer returns underlying SharedIndexInformer which provides add and Indexers ability based on SharedInformer.

func (*Handler) InformerFactory added in v0.5.0

func (h *Handler) InformerFactory() informers.SharedInformerFactory

InformerFactory returns underlying SharedInformerFactory which provides shared informer for resources in all known API group version.

func (*Handler) IsControlPlane

func (h *Handler) IsControlPlane(object interface{}) bool

IsControlPlane check whether the node is control-plane.

func (*Handler) IsMaster

func (h *Handler) IsMaster(object interface{}) bool

IsMaster check whether the node is master.

func (*Handler) IsReady

func (h *Handler) IsReady(name string) bool

IsReady check whether the node is ready.

func (*Handler) List

func (h *Handler) List() ([]*corev1.Node, error)

List list all nodes in the k8s cluster, it simply call `ListAll`.

func (*Handler) ListAll

func (h *Handler) ListAll() ([]*corev1.Node, error)

ListAll list all nodes in the k8s cluster.

func (*Handler) ListByField added in v0.7.0

func (h *Handler) ListByField(field string) ([]*corev1.Node, error)

ListByField list nodes by field, work like `kubectl get xxx --field-selector=xxx`.

func (*Handler) ListByLabel

func (h *Handler) ListByLabel(labels string) ([]*corev1.Node, error)

ListByLabel list nodes by labels. Multiple labels separated by comma(",") eg: "name=myapp,role=devops", and there is an "And" relationship between multiple labels.

func (*Handler) Lister added in v0.5.0

func (h *Handler) Lister() listerscore.NodeLister

Lister returns underlying NodeLister which helps list nodes.

func (*Handler) NodeInformer added in v0.5.0

func (h *Handler) NodeInformer() informerscore.NodeInformer

NodeInformer returns underlying NodeInformer which provides access to a shared informer and lister for node.

func (*Handler) RESTClient added in v0.2.0

func (h *Handler) RESTClient() *rest.RESTClient

RESTClient returns underlying rest client.

func (*Handler) RESTConfig added in v0.3.0

func (h *Handler) RESTConfig() *rest.Config

RESTConfig returns underlying rest config.

func (*Handler) RunInformer

func (h *Handler) RunInformer(
	stopCh <-chan struct{},
	addFunc func(obj interface{}),
	updateFunc func(oldObj, newObj interface{}),
	deleteFunc func(obj interface{}))

RunInformer start and run the shared informer, returning after it stops. The informer will be stopped when stopCh is closed.

AddFunc, updateFunc, and deleteFunc are used to handle add, update, and delete event of k8s node resource, respectively.

func (*Handler) SetForceDelete added in v0.6.1

func (h *Handler) SetForceDelete(force bool)

func (*Handler) SetInformerResyncPeriod added in v0.5.0

func (h *Handler) SetInformerResyncPeriod(resyncPeriod time.Duration)

SetInformerResyncPeriod will set informer resync period.

func (*Handler) SetLimit

func (h *Handler) SetLimit(limit int64)

func (*Handler) SetTimeout

func (h *Handler) SetTimeout(timeout int64)

func (*Handler) StartInformer added in v0.10.1

func (h *Handler) StartInformer(
	stopCh <-chan struct{},
	addFunc func(obj interface{}),
	updateFunc func(oldObj, newObj interface{}),
	deleteFunc func(obj interface{}))

StartInformer simply call RunInformer.

func (*Handler) Update added in v0.3.0

func (h *Handler) Update(obj interface{}) (*corev1.Node, error)

Update updates node from type string, []byte, *corev1.Node, corev1.Node, runtime.Object, *unstructured.Unstructured, unstructured.Unstructured or map[string]interface{}.

func (*Handler) UpdateFromBytes added in v0.3.0

func (h *Handler) UpdateFromBytes(data []byte) (*corev1.Node, error)

UpdateFromBytes updates node from bytes.

func (*Handler) UpdateFromFile added in v0.3.0

func (h *Handler) UpdateFromFile(filename string) (*corev1.Node, error)

UpdateFromFile updates node from yaml file.

func (*Handler) UpdateFromMap added in v0.5.0

func (h *Handler) UpdateFromMap(u map[string]interface{}) (*corev1.Node, error)

UpdateFromMap updates node from map[string]interface{}.

func (*Handler) UpdateFromObject added in v0.3.0

func (h *Handler) UpdateFromObject(obj runtime.Object) (*corev1.Node, error)

UpdateFromObject updates node from runtime.Object.

func (*Handler) UpdateFromUnstructured added in v0.3.0

func (h *Handler) UpdateFromUnstructured(u *unstructured.Unstructured) (*corev1.Node, error)

UpdateFromUnstructured updates node from *unstructured.Unstructured.

func (*Handler) Watch added in v0.7.0

func (h *Handler) Watch(name string,
	addFunc, modifyFunc, deleteFunc func(x interface{}), x interface{}) (err error)

WatchByName watch node by name, alias to "WatchByName".

func (*Handler) WatchByLabel added in v0.7.0

func (h *Handler) WatchByLabel(labels string,
	addFunc, modifyFunc, deleteFunc func(x interface{}), x interface{}) (err error)

WatchByLabel watch node by labels.

func (*Handler) WatchByName added in v0.7.0

func (h *Handler) WatchByName(name string,
	addFunc, modifyFunc, deleteFunc func(x interface{}), x interface{}) (err error)

WatchByName watch node by name.

func (*Handler) WithDryRun

func (h *Handler) WithDryRun() *Handler

WithDryRun deep copies a new handler and prints the create/update/apply/delete operations, without sending it to apiserver.

type NodeInfo

type NodeInfo struct {
	Hostname           string
	IPAddress          []string
	AllocatableCpu     string
	AllocatableMemory  string
	AllocatableStorage string
	TotalCpu           string
	TotalMemory        string
	TotalStorage       string

	Architecture            string
	BootID                  string
	ContainerRuntimeVersion string
	KernelVersion           string
	KubeProxyVersion        string
	KubeletVersion          string
	MachineID               string
	OperatingSystem         string
	OSImage                 string
	SystemUUID              string
}

type NodeStatus

type NodeStatus struct {
	Status  string
	Message string
	Reason  string
}

Jump to

Keyboard shortcuts

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