Documentation ¶
Index ¶
- Constants
- Variables
- type ClusterCapacityDetail
- type LabelAnnotationTaintObject
- type NodeCapacityDetail
- type NodeConditionObject
- type NodeCordonHelper
- type NodeDetails
- type NodeDrainHelper
- type NodeUpdateRequestDto
- type PodCapacityDetail
- type PodDelete
- type PodDeleteList
- type PodDeleteStatus
- type PodFilter
- type ResourceDetailObject
Constants ¶
const ( LabelNodeRolePrefix = "node-role.kubernetes.io/" NodeLabelRole = "kubernetes.io/role" Kibibyte = 1024 Mebibyte = 1024 * 1024 Gibibyte = 1024 * 1024 * 1024 Megabyte = 1000 * 1000 Gigabyte = 1000 * 1000 * 1000 )
const ( AWSNodeGroupLabel = "alpha.eksctl.io/nodegroup-name" AzureNodeGroupLabel = "kubernetes.azure.com/agentpool" GcpNodeGroupLabel = "cloud.google.com/gke-nodepool" KopsNodeGroupLabel = "kops.k8s.io/instancegroup" AWSEKSNodeGroupLabel = "eks.amazonaws.com/nodegroup" )
below const set is used for pod filters
const ( // PodDeleteStatusTypeOkay is "Okay" PodDeleteStatusTypeOkay = "Okay" // PodDeleteStatusTypeSkip is "Skip" PodDeleteStatusTypeSkip = "Skip" // PodDeleteStatusTypeWarning is "Warning" PodDeleteStatusTypeWarning = "Warning" // PodDeleteStatusTypeError is "Error" PodDeleteStatusTypeError = "Error" )
below const set is used for pod delete status
const NamespaceAll string = ""
Variables ¶
var NodeGroupLabels = [5]string{AWSNodeGroupLabel, AzureNodeGroupLabel, GcpNodeGroupLabel, KopsNodeGroupLabel, AWSEKSNodeGroupLabel}
TODO: add any new nodeGrouplabel in this array
Functions ¶
This section is empty.
Types ¶
type ClusterCapacityDetail ¶
type ClusterCapacityDetail struct { Id int `json:"id,omitempty"` Name string `json:"name,omitempty"` ErrorInConnection string `json:"errorInNodeListing,omitempty"` NodeCount int `json:"nodeCount,omitempty"` NodeDetails []NodeDetails `json:"nodeDetails"` NodeErrors map[corev1.NodeConditionType][]string `json:"nodeErrors"` NodeK8sVersions []string `json:"nodeK8sVersions"` ServerVersion string `json:"serverVersion,omitempty"` Cpu *ResourceDetailObject `json:"cpu"` Memory *ResourceDetailObject `json:"memory"` IsVirtualCluster bool `json:"isVirtualCluster"` IsProd bool `json:"isProd"` }
type NodeCapacityDetail ¶
type NodeCapacityDetail struct { Name string `json:"name"` Version string `json:"version,omitempty"` Kind string `json:"kind,omitempty"` Roles []string `json:"roles"` K8sVersion string `json:"k8sVersion"` Cpu *ResourceDetailObject `json:"cpu,omitempty"` Memory *ResourceDetailObject `json:"memory,omitempty"` Age string `json:"age,omitempty"` Status string `json:"status,omitempty"` PodCount int `json:"podCount,omitempty"` Errors map[corev1.NodeConditionType]string `json:"errors"` InternalIp string `json:"internalIp"` ExternalIp string `json:"externalIp"` Unschedulable bool `json:"unschedulable"` CreatedAt string `json:"createdAt"` Labels []*LabelAnnotationTaintObject `json:"labels,omitempty"` Annotations []*LabelAnnotationTaintObject `json:"annotations,omitempty"` Taints []*LabelAnnotationTaintObject `json:"taints,omitempty"` Conditions []*NodeConditionObject `json:"conditions,omitempty"` Resources []*ResourceDetailObject `json:"resources,omitempty"` Pods []*PodCapacityDetail `json:"pods,omitempty"` Manifest unstructured.Unstructured `json:"manifest,omitempty"` ClusterName string `json:"clusterName,omitempty"` NodeGroup string `json:"nodeGroup"` }
type NodeConditionObject ¶
type NodeCordonHelper ¶
type NodeCordonHelper struct {
UnschedulableDesired bool `json:"unschedulableDesired"`
}
type NodeDetails ¶
type NodeDetails struct { NodeName string `json:"nodeName"` NodeGroup string `json:"nodeGroup"` Taints []*LabelAnnotationTaintObject `json:"taints"` }
type NodeDrainHelper ¶
type NodeDrainHelper struct { Force bool `json:"force"` DeleteEmptyDirData bool `json:"deleteEmptyDirData"` // GracePeriodSeconds is how long to wait for a pod to terminate. // IMPORTANT: 0 means "delete immediately"; set to a negative value // to use the pod's terminationGracePeriodSeconds. GracePeriodSeconds int `json:"gracePeriodSeconds"` IgnoreAllDaemonSets bool `json:"ignoreAllDaemonSets"` // DisableEviction forces drain to use delete rather than evict DisableEviction bool `json:"disableEviction"` K8sClientSet *kubernetes.Clientset }
func (*NodeDrainHelper) MakeFilters ¶
func (f *NodeDrainHelper) MakeFilters() []PodFilter
type NodeUpdateRequestDto ¶
type NodeUpdateRequestDto struct { ClusterId int `json:"clusterId"` Name string `json:"name"` ManifestPatch string `json:"manifestPatch"` Version string `json:"version"` Kind string `json:"kind"` Taints []corev1.Taint `json:"taints"` NodeCordonHelper *NodeCordonHelper `json:"nodeCordonOptions"` NodeDrainHelper *NodeDrainHelper `json:"nodeDrainOptions"` }
type PodCapacityDetail ¶
type PodCapacityDetail struct { Name string `json:"name"` Namespace string `json:"namespace"` Cpu *ResourceDetailObject `json:"cpu"` Memory *ResourceDetailObject `json:"memory"` Age string `json:"age"` CreatedAt string `json:"createdAt"` }
type PodDelete ¶
type PodDelete struct { Pod corev1.Pod Status PodDeleteStatus }
PodDelete informs filtering logic whether a pod should be deleted or not
type PodDeleteList ¶
type PodDeleteList struct {
// contains filtered or unexported fields
}
PodDeleteList is a wrapper around []PodDelete
func FilterPods ¶
func FilterPods(podList *corev1.PodList, filters []PodFilter) *PodDeleteList
func (*PodDeleteList) Errors ¶
func (l *PodDeleteList) Errors() []error
func (*PodDeleteList) Pods ¶
func (l *PodDeleteList) Pods() []corev1.Pod
Pods returns a list of all pods marked for deletion after filtering.
type PodDeleteStatus ¶
PodDeleteStatus informs filters if a pod should be deleted
func MakePodDeleteStatusOkay ¶
func MakePodDeleteStatusOkay() PodDeleteStatus
MakePodDeleteStatusOkay is a helper method to return the corresponding PodDeleteStatus
func MakePodDeleteStatusSkip ¶
func MakePodDeleteStatusSkip() PodDeleteStatus
MakePodDeleteStatusSkip is a helper method to return the corresponding PodDeleteStatus
func MakePodDeleteStatusWithError ¶
func MakePodDeleteStatusWithError(message string) PodDeleteStatus
MakePodDeleteStatusWithError is a helper method to return the corresponding PodDeleteStatus
func MakePodDeleteStatusWithWarning ¶
func MakePodDeleteStatusWithWarning(delete bool, message string) PodDeleteStatus
MakePodDeleteStatusWithWarning is a helper method to return the corresponding PodDeleteStatus
type PodFilter ¶
type PodFilter func(corev1.Pod) PodDeleteStatus
PodFilter takes a pod and returns a PodDeleteStatus
type ResourceDetailObject ¶
type ResourceDetailObject struct { ResourceName string `json:"name,omitempty"` Capacity string `json:"capacity,omitempty"` Allocatable string `json:"allocatable,omitempty"` Usage string `json:"usage,omitempty"` Request string `json:"request,omitempty"` Limit string `json:"limit,omitempty"` UsagePercentage string `json:"usagePercentage,omitempty"` RequestPercentage string `json:"requestPercentage,omitempty"` LimitPercentage string `json:"limitPercentage,omitempty"` //below fields to be used at FE for sorting CapacityInBytes int64 `json:"capacityInBytes,omitempty"` AllocatableInBytes int64 `json:"allocatableInBytes,omitempty"` UsageInBytes int64 `json:"usageInBytes,omitempty"` RequestInBytes int64 `json:"requestInBytes,omitempty"` LimitInBytes int64 `json:"limitInBytes,omitempty"` }