dao

package
v0.50.4 Latest Latest
Warning

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

Go to latest
Published: Apr 19, 2025 License: Apache-2.0, Apache-2.0 Imports: 68 Imported by: 0

Documentation

Overview

SPDX-License-Identifier: Apache-2.0 Copyright Authors of K9s

Index

Constants

View Source
const (
	StatusOK       = "OK"
	DegradedStatus = "DEGRADED"
)
View Source
const (

	// DefaultContainerAnnotation represents the annotation key for the default container.
	DefaultContainerAnnotation = "kubectl.kubernetes.io/default-container"
)

Variables

View Source
var (
	BenchRx = regexp.MustCompile(`[:|]+`)
)
View Source
var ItemEOF = new(LogItem)
View Source
var MetaAccess = NewMeta()

MetaAccess tracks resources metadata.

View Source
var RestMapping = &RestMapper{}

RestMapping holds k8s resource mapping.

Functions

func BenchConfigFor added in v0.15.2

func BenchConfigFor(benchFile, path string) config.BenchConfig

BenchConfigFor returns a custom bench spec if defined otherwise returns the default one.

func ContinuousRanges added in v0.30.0

func ContinuousRanges(indexes []int) [][]int

ContinuousRanges takes a sorted slice of integers and returns a slice of sub-slices representing continuous ranges of integers.

func Describe

func Describe(c client.Connection, gvr *client.GVR, path string) (string, error)

Describe describes a resource.

func ExtractSecrets added in v0.31.8

func ExtractSecrets(o runtime.Object) (map[string]string, error)

ExtractSecrets takes an unstructured object and attempts to convert it into a Kubernetes Secret. It returns a map where the keys are the secret data keys and the values are the corresponding secret data values. If the conversion fails, it returns an error.

func FQN

func FQN(ns, n string) string

FQN returns a fully qualified resource name.

func FetchNode added in v0.17.6

func FetchNode(_ context.Context, f Factory, path string) (*v1.Node, error)

FetchNode retrieves a node.

func FetchNodes

func FetchNodes(_ context.Context, f Factory, _ string) (*v1.NodeList, error)

FetchNodes retrieves all nodes.

func GetDefaultContainer added in v0.28.0

func GetDefaultContainer(m *metav1.ObjectMeta, spec *v1.PodSpec) (string, bool)

GetDefaultContainer returns a container name if specified in an annotation.

func GetJsonPatch added in v0.23.0

func GetJsonPatch(imageSpecs ImageSpecs) ([]byte, error)

GetJsonPatch returns container image patch.

func GetTemplateJsonPatch added in v0.23.0

func GetTemplateJsonPatch(imageSpecs ImageSpecs) ([]byte, error)

GetTemplateJsonPatch builds a json patch string to update PodSpec images.

func IsCRD added in v0.24.15

func IsCRD(r *metav1.APIResource) bool

IsCRD checks if resource represents a CRD

func IsK8sMeta

func IsK8sMeta(m *metav1.APIResource) bool

IsK8sMeta checks for non resource meta.

func IsK9sMeta

func IsK9sMeta(m *metav1.APIResource) bool

IsK9sMeta checks for non resource meta.

func IsScalable added in v0.40.1

func IsScalable(m *metav1.APIResource) bool

IsScalable check if the resource can be scaled

func MetaFQN

func MetaFQN(m *metav1.ObjectMeta) string

MetaFQN returns a fully qualified resource name.

func PodToKey added in v0.15.2

func PodToKey(path string) string

PodToKey converts a pod path to a generic bench config key.

func PortForwardID added in v0.15.2

func PortForwardID(path, co, portMap string) string

PortForwardID computes port-forward identifier.

func ToYAML

func ToYAML(o runtime.Object, showManaged bool) (string, error)

ToYAML converts a resource to its YAML representation.

Types

type Accessor

type Accessor interface {
	Lister
	Getter

	// Init the resource with a factory object.
	Init(Factory, *client.GVR)

	// GVR returns a gvr a string.
	GVR() string

	// SetIncludeObject toggles object inclusion.
	SetIncludeObject(bool)
}

Accessor represents an accessible k8s resource.

func AccessorFor

func AccessorFor(f Factory, gvr *client.GVR) (Accessor, error)

AccessorFor returns a client accessor for a resource if registered. Otherwise it returns a generic accessor. Customize here for non resource types or types with metrics or logs.

type Accessors

type Accessors map[*client.GVR]Accessor

Accessors represents a collection of dao accessors.

type Alias

type Alias struct {
	NonResource

	*config.Aliases
}

Alias tracks standard and custom command aliases.

func NewAlias

func NewAlias(f Factory) *Alias

NewAlias returns a new set of aliases.

func (*Alias) AliasesFor added in v0.31.9

func (a *Alias) AliasesFor(gvr *client.GVR) sets.Set[string]

AliasesFor returns a set of aliases for a given gvr.

func (*Alias) AsGVR

func (a *Alias) AsGVR(alias string) (*client.GVR, string, bool)

AsGVR returns a matching gvr if it exists.

func (*Alias) Ensure

func (a *Alias) Ensure(path string) (config.Alias, error)

Ensure makes sure alias are loaded.

func (*Alias) Get

func (*Alias) Get(_ context.Context, _ string) (runtime.Object, error)

Get fetch a resource.

func (*Alias) List

func (*Alias) List(ctx context.Context, _ string) ([]runtime.Object, error)

List returns a collection of aliases.

type Benchmark

type Benchmark struct {
	NonResource
}

Benchmark represents a benchmark resource.

func (*Benchmark) Delete

Delete nukes a resource.

func (*Benchmark) Get

Get returns a resource.

func (*Benchmark) List

func (*Benchmark) List(ctx context.Context, _ string) ([]runtime.Object, error)

List returns a collection of resources.

type ConfigMap added in v0.32.0

type ConfigMap struct {
	Resource
}

ConfigMap represents a configmap resource.

type Container

type Container struct {
	NonResource
}

Container represents a pod's container dao.

func (*Container) List

func (c *Container) List(ctx context.Context, _ string) ([]runtime.Object, error)

List returns a collection of containers.

func (*Container) TailLogs

func (c *Container) TailLogs(ctx context.Context, opts *LogOptions) ([]LogChan, error)

TailLogs tails a given container logs.

type ContainsPodSpec added in v0.23.0

type ContainsPodSpec interface {
	// GetPodSpec returns a podspec for the resource.
	GetPodSpec(path string) (*v1.PodSpec, error)

	// SetImages sets container image.
	SetImages(ctx context.Context, path string, imageSpecs ImageSpecs) error
}

ContainsPodSpec represents a resource with a pod template.

type Context

type Context struct {
	NonResource
}

Context represents a kubernetes context.

func (*Context) Get

func (c *Context) Get(_ context.Context, path string) (runtime.Object, error)

Get a Context.

func (*Context) List

func (c *Context) List(context.Context, string) ([]runtime.Object, error)

List all Contexts on the current cluster.

func (*Context) MustCurrentContextName

func (c *Context) MustCurrentContextName() string

MustCurrentContextName return the active context name.

func (*Context) Switch

func (c *Context) Switch(ctx string) error

Switch to another context.

type Controller added in v0.15.2

type Controller interface {
	// Pod returns a pod instance matching the selector.
	Pod(path string) (string, error)
}

Controller represents a pod controller.

type CronJob

type CronJob struct {
	Generic
}

CronJob represents a cronjob K8s resource.

func (*CronJob) GetInstance added in v0.29.0

func (c *CronJob) GetInstance(fqn string) (*batchv1.CronJob, error)

GetInstance fetch a matching cronjob.

func (*CronJob) ListImages added in v0.29.0

func (c *CronJob) ListImages(_ context.Context, fqn string) ([]string, error)

ListImages lists container images.

func (*CronJob) Run

func (c *CronJob) Run(path string) error

Run a CronJob.

func (*CronJob) Scan added in v0.20.0

func (c *CronJob) Scan(_ context.Context, gvr *client.GVR, fqn string, wait bool) (Refs, error)

Scan scans for cluster resource refs.

func (*CronJob) ScanSA added in v0.20.0

func (c *CronJob) ScanSA(_ context.Context, fqn string, wait bool) (Refs, error)

ScanSA scans for serviceaccount refs.

func (*CronJob) ToggleSuspend added in v0.24.3

func (c *CronJob) ToggleSuspend(ctx context.Context, path string) error

ToggleSuspend toggles suspend/resume on a CronJob.

type CustomResourceDefinition

type CustomResourceDefinition struct {
	Resource
}

CustomResourceDefinition represents a CRD resource model.

type DaemonSet

type DaemonSet struct {
	Resource
}

DaemonSet represents a K8s daemonset.

func (*DaemonSet) GetInstance added in v0.15.2

func (d *DaemonSet) GetInstance(fqn string) (*appsv1.DaemonSet, error)

GetInstance returns a daemonset instance.

func (*DaemonSet) GetPodSpec added in v0.23.0

func (d *DaemonSet) GetPodSpec(path string) (*v1.PodSpec, error)

GetPodSpec returns a pod spec given a resource.

func (*DaemonSet) ListImages added in v0.29.0

func (d *DaemonSet) ListImages(_ context.Context, fqn string) ([]string, error)

ListImages lists container images.

func (*DaemonSet) Pod added in v0.15.2

func (d *DaemonSet) Pod(fqn string) (string, error)

Pod returns a pod victim by name.

func (*DaemonSet) Restart

func (d *DaemonSet) Restart(ctx context.Context, path string, opts *metav1.PatchOptions) error

Restart a DaemonSet rollout.

func (*DaemonSet) Scan added in v0.20.0

func (d *DaemonSet) Scan(_ context.Context, gvr *client.GVR, fqn string, wait bool) (Refs, error)

Scan scans for cluster refs.

func (*DaemonSet) ScanSA added in v0.20.0

func (d *DaemonSet) ScanSA(_ context.Context, fqn string, wait bool) (Refs, error)

ScanSA scans for serviceaccount refs.

func (*DaemonSet) SetImages added in v0.23.0

func (d *DaemonSet) SetImages(ctx context.Context, path string, imageSpecs ImageSpecs) error

SetImages sets container images.

func (*DaemonSet) TailLogs

func (d *DaemonSet) TailLogs(ctx context.Context, opts *LogOptions) ([]LogChan, error)

TailLogs tail logs for all pods represented by this DaemonSet.

type Deployment

type Deployment struct {
	Resource
}

Deployment represents a deployment K8s resource.

func (*Deployment) GetInstance added in v0.15.2

func (d *Deployment) GetInstance(fqn string) (*appsv1.Deployment, error)

GetInstance fetch a matching deployment.

func (*Deployment) GetPodSpec added in v0.23.0

func (d *Deployment) GetPodSpec(path string) (*v1.PodSpec, error)

GetPodSpec returns a pod spec given a resource.

func (*Deployment) ListImages added in v0.29.0

func (d *Deployment) ListImages(_ context.Context, fqn string) ([]string, error)

ListImages lists container images.

func (*Deployment) Pod added in v0.15.2

func (d *Deployment) Pod(fqn string) (string, error)

Pod returns a pod victim by name.

func (*Deployment) Restart

func (d *Deployment) Restart(ctx context.Context, path string, opts *metav1.PatchOptions) error

Restart a Deployment rollout.

func (*Deployment) Scale

func (d *Deployment) Scale(ctx context.Context, path string, replicas int32) error

Scale a Deployment.

func (*Deployment) Scan added in v0.20.0

func (d *Deployment) Scan(_ context.Context, gvr *client.GVR, fqn string, wait bool) (Refs, error)

Scan scans for resource references.

func (*Deployment) ScanSA added in v0.20.0

func (d *Deployment) ScanSA(_ context.Context, fqn string, wait bool) (Refs, error)

ScanSA scans for serviceaccount refs.

func (*Deployment) SetImages added in v0.23.0

func (d *Deployment) SetImages(ctx context.Context, path string, imageSpecs ImageSpecs) error

SetImages sets container images.

func (*Deployment) TailLogs

func (d *Deployment) TailLogs(ctx context.Context, opts *LogOptions) ([]LogChan, error)

TailLogs tail logs for all pods represented by this Deployment.

type Describer

type Describer interface {
	// Describe describes a resource.
	Describe(path string) (string, error)

	// ToYAML dumps a resource to YAML.
	ToYAML(path string, showManaged bool) (string, error)
}

Describer describes a resource.

type Dir added in v0.21.0

type Dir struct {
	NonResource
}

Dir tracks standard and custom command aliases.

func NewDir added in v0.21.0

func NewDir(f Factory) *Dir

NewDir returns a new set of aliases.

func (*Dir) Get added in v0.21.0

func (*Dir) Get(_ context.Context, _ string) (runtime.Object, error)

Get fetch a resource.

func (*Dir) List added in v0.21.0

func (*Dir) List(ctx context.Context, _ string) ([]runtime.Object, error)

List returns a collection of aliases.

type DrainOptions added in v0.17.6

type DrainOptions struct {
	GracePeriodSeconds  int
	Timeout             time.Duration
	IgnoreAllDaemonSets bool
	DeleteEmptyDirData  bool
	Force               bool
	DisableEviction     bool
}

DrainOptions tracks drain attributes.

type Dynamic added in v0.40.0

type Dynamic struct {
	Generic
}

func (*Dynamic) Get added in v0.40.0

func (d *Dynamic) Get(ctx context.Context, path string) (runtime.Object, error)

Get returns a given resource as a table object.

func (*Dynamic) List added in v0.40.0

func (d *Dynamic) List(ctx context.Context, ns string) ([]runtime.Object, error)

List returns a collection of resources as one or more table objects.

type Element added in v0.23.0

type Element struct {
	Image string `json:"image,omitempty"`
	Name  string `json:"name"`
}

Element tracks a given container image.

type Factory

type Factory interface {
	// Client retrieves an api client.
	Client() client.Connection

	// Get fetch a given resource.
	Get(gvr *client.GVR, path string, wait bool, sel labels.Selector) (runtime.Object, error)

	// List fetch a collection of resources.
	List(gvr *client.GVR, ns string, wait bool, sel labels.Selector) ([]runtime.Object, error)

	// ForResource fetch an informer for a given resource.
	ForResource(ns string, gvr *client.GVR) (informers.GenericInformer, error)

	// CanForResource fetch an informer for a given resource if authorized
	CanForResource(ns string, gvr *client.GVR, verbs []string) (informers.GenericInformer, error)

	// WaitForCacheSync synchronize the cache.
	WaitForCacheSync()

	// DeleteForwarder deletes a pod forwarder.
	DeleteForwarder(path string)

	// Forwarders returns all portforwards.
	Forwarders() watch.Forwarders
}

Factory represents a resource factory.

type Generic

type Generic struct {
	NonResource
}

Generic represents a generic resource.

func (*Generic) Delete

func (g *Generic) Delete(ctx context.Context, path string, propagation *metav1.DeletionPropagation, grace Grace) error

Delete deletes a resource.

func (*Generic) Describe

func (g *Generic) Describe(path string) (string, error)

Describe describes a resource.

func (*Generic) Get

func (g *Generic) Get(ctx context.Context, path string) (runtime.Object, error)

Get returns a given resource.

func (*Generic) List

func (g *Generic) List(ctx context.Context, ns string) ([]runtime.Object, error)

List returns a collection of resources. BOZO!! no auth check??

func (*Generic) ToYAML

func (g *Generic) ToYAML(path string, showManaged bool) (string, error)

ToYAML returns a resource yaml.

type Getter

type Getter interface {
	// Get return a given resource.
	Get(ctx context.Context, path string) (runtime.Object, error)
}

Getter represents a resource getter.

type Grace added in v0.27.3

type Grace int64
const (
	// DefaultGrace uses delete default termination policy.
	DefaultGrace Grace = -1

	// ForceGrace sets delete grace-period to 0.
	ForceGrace Grace = 0

	// NowGrace set delete grace-period to 1,
	NowGrace Grace = 1
)

type HelmChart added in v0.29.0

type HelmChart struct {
	NonResource
}

HelmChart represents a helm chart.

func (*HelmChart) Delete added in v0.29.0

Delete uninstall a HelmChart.

func (*HelmChart) Describe added in v0.29.0

func (h *HelmChart) Describe(path string) (string, error)

Describe returns the chart notes.

func (*HelmChart) Get added in v0.29.0

func (h *HelmChart) Get(_ context.Context, path string) (runtime.Object, error)

Get returns a resource.

func (*HelmChart) GetValues added in v0.29.0

func (h *HelmChart) GetValues(path string, allValues bool) ([]byte, error)

GetValues returns values for a release

func (*HelmChart) List added in v0.29.0

func (h *HelmChart) List(_ context.Context, ns string) ([]runtime.Object, error)

List returns a collection of resources.

func (*HelmChart) ToYAML added in v0.29.0

func (h *HelmChart) ToYAML(path string, _ bool) (string, error)

ToYAML returns the chart manifest.

func (*HelmChart) Uninstall added in v0.29.0

func (h *HelmChart) Uninstall(path string, keepHist bool) error

Uninstall uninstalls a HelmChart.

type HelmHistory added in v0.29.0

type HelmHistory struct {
	NonResource
}

HelmHistory represents a helm chart.

func (*HelmHistory) Delete added in v0.29.0

Delete uninstall a Helm.

func (*HelmHistory) Describe added in v0.29.0

func (h *HelmHistory) Describe(path string) (string, error)

Describe returns the chart notes.

func (*HelmHistory) Get added in v0.29.0

func (h *HelmHistory) Get(_ context.Context, path string) (runtime.Object, error)

Get returns a resource.

func (*HelmHistory) GetValues added in v0.30.0

func (h *HelmHistory) GetValues(path string, allValues bool) ([]byte, error)

GetValues return the config for this chart.

func (*HelmHistory) List added in v0.29.0

func (h *HelmHistory) List(ctx context.Context, _ string) ([]runtime.Object, error)

List returns a collection of resources.

func (*HelmHistory) Rollback added in v0.29.0

func (h *HelmHistory) Rollback(_ context.Context, path, rev string) error

func (*HelmHistory) ToYAML added in v0.29.0

func (h *HelmHistory) ToYAML(path string, _ bool) (string, error)

ToYAML returns the chart manifest.

type ImageLister added in v0.29.0

type ImageLister interface {
	// ListImages lists container images.
	ListImages(ctx context.Context, path string) ([]string, error)
}

ImageLister tracks resources with container images.

type ImageScan added in v0.29.0

type ImageScan struct {
	NonResource
}

ImageScan represents vulnerability scans.

func (*ImageScan) List added in v0.29.0

func (is *ImageScan) List(ctx context.Context, _ string) ([]runtime.Object, error)

List returns a collection of scans.

type ImageSpec added in v0.23.0

type ImageSpec struct {
	Index             int
	Name, DockerImage string
	Init              bool
}

ImageSpec represents a container image.

type ImageSpecs added in v0.23.0

type ImageSpecs []ImageSpec

ImageSpecs represents a collection of container images.

type ImagesSpec added in v0.23.0

type ImagesSpec struct {
	SetElementOrderContainers     []Element `json:"$setElementOrder/containers,omitempty"`
	SetElementOrderInitContainers []Element `json:"$setElementOrder/initContainers,omitempty"`
	Containers                    []Element `json:"containers,omitempty"`
	InitContainers                []Element `json:"initContainers,omitempty"`
}

ImagesSpec tracks container image updates.

type Job

type Job struct {
	Resource
}

Job represents a K8s job resource.

func (*Job) GetInstance added in v0.29.0

func (j *Job) GetInstance(fqn string) (*batchv1.Job, error)

func (*Job) List added in v0.21.3

func (j *Job) List(ctx context.Context, ns string) ([]runtime.Object, error)

List returns a collection of resources.

func (*Job) ListImages added in v0.29.0

func (j *Job) ListImages(_ context.Context, fqn string) ([]string, error)

ListImages lists container images.

func (*Job) Scan added in v0.20.0

func (j *Job) Scan(_ context.Context, gvr *client.GVR, fqn string, wait bool) (Refs, error)

Scan scans for resource references.

func (*Job) ScanSA added in v0.20.0

func (j *Job) ScanSA(_ context.Context, fqn string, wait bool) (Refs, error)

ScanSA scans for serviceaccount refs.

func (*Job) TailLogs

func (j *Job) TailLogs(ctx context.Context, opts *LogOptions) ([]LogChan, error)

TailLogs tail logs for all pods represented by this Job.

type JsonPatch added in v0.23.0

type JsonPatch struct {
	Spec Spec `json:"spec"`
}

JsonPatch track pod spec updates.

type Lister

type Lister interface {
	// List returns a resource collection.
	List(ctx context.Context, ns string) ([]runtime.Object, error)
}

Lister represents a resource lister.

type LogChan added in v0.18.0

type LogChan chan *LogItem

LogChan represents a channel for logs.

type LogItem added in v0.18.0

type LogItem struct {
	Pod, Container  string
	SingleContainer bool
	Bytes           []byte
	IsError         bool
}

LogItem represents a container log line.

func NewLogItem added in v0.18.0

func NewLogItem(bb []byte) *LogItem

NewLogItem returns a new item.

func NewLogItemFromString added in v0.18.0

func NewLogItemFromString(s string) *LogItem

NewLogItemFromString returns a new item.

func (*LogItem) GetTimestamp added in v0.25.0

func (l *LogItem) GetTimestamp() string

GetTimestamp fetch log lime timestamp

func (*LogItem) ID added in v0.18.1

func (l *LogItem) ID() string

ID returns pod and or container based id.

func (*LogItem) Info added in v0.18.1

func (l *LogItem) Info() string

Info returns pod and container information.

func (*LogItem) IsEmpty added in v0.18.0

func (l *LogItem) IsEmpty() bool

IsEmpty checks if the entry is empty.

func (*LogItem) Render added in v0.18.0

func (l *LogItem) Render(paint string, showTime bool, bb *bytes.Buffer)

Render returns a log line as string.

func (*LogItem) Size added in v0.25.0

func (l *LogItem) Size() int

Size returns the size of the item.

type LogItems added in v0.18.0

type LogItems struct {
	// contains filtered or unexported fields
}

LogItems represents a collection of log items.

func NewLogItems added in v0.24.11

func NewLogItems() *LogItems

NewLogItems returns a new instance.

func (*LogItems) Add added in v0.24.11

func (l *LogItems) Add(ii ...*LogItem)

Add augments the items.

func (*LogItems) Clear added in v0.24.11

func (l *LogItems) Clear()

Clear removes all items.

func (*LogItems) DumpDebug added in v0.18.0

func (l *LogItems) DumpDebug(m string)

DumpDebug for debugging.

func (*LogItems) Filter added in v0.18.0

func (l *LogItems) Filter(index int, q string, showTime bool) (matches []int, indices [][]int, err error)

Filter filters out log items based on given filter.

func (*LogItems) Items added in v0.24.11

func (l *LogItems) Items() []*LogItem

Items returns the log items.

func (*LogItems) Len added in v0.24.11

func (l *LogItems) Len() int

Len returns the items length.

func (*LogItems) Lines added in v0.18.0

func (l *LogItems) Lines(index int, showTime bool, ll [][]byte)

Lines returns a collection of log lines.

func (*LogItems) Merge added in v0.24.11

func (l *LogItems) Merge(n *LogItems)

Merge merges two logitems list.

func (*LogItems) Render added in v0.18.0

func (l *LogItems) Render(index int, showTime bool, ll [][]byte)

Render returns logs as a collection of strings.

func (*LogItems) Shift added in v0.24.11

func (l *LogItems) Shift(i *LogItem)

Shift scrolls the lines by one.

func (*LogItems) StrLines added in v0.23.0

func (l *LogItems) StrLines(index int, showTime bool) []string

StrLines returns a collection of log lines.

func (*LogItems) Subset added in v0.24.11

func (l *LogItems) Subset(index int) *LogItems

Subset return a subset of logitems.

type LogOptions

type LogOptions struct {
	CreateDuration   time.Duration
	Path             string
	Container        string
	DefaultContainer string
	SinceTime        string
	Lines            int64
	SinceSeconds     int64
	Head             bool
	Previous         bool
	SingleContainer  bool
	MultiPods        bool
	ShowTimestamp    bool
	AllContainers    bool
}

LogOptions represents logger options.

func (*LogOptions) Clone added in v0.24.11

func (o *LogOptions) Clone() *LogOptions

Clone clones options.

func (*LogOptions) HasContainer

func (o *LogOptions) HasContainer() bool

HasContainer checks if a container is present.

func (*LogOptions) Info added in v0.18.1

func (o *LogOptions) Info() string

Info returns the option pod and container info.

func (*LogOptions) ToErrLogItem added in v0.25.13

func (*LogOptions) ToErrLogItem(err error) *LogItem

func (*LogOptions) ToLogItem added in v0.25.13

func (o *LogOptions) ToLogItem(bytes []byte) *LogItem

ToLogItem add a log header to display po/co information along with the log message.

func (*LogOptions) ToPodLogOptions added in v0.18.0

func (o *LogOptions) ToPodLogOptions() *v1.PodLogOptions

ToPodLogOptions returns pod log options.

func (*LogOptions) ToggleAllContainers added in v0.24.11

func (o *LogOptions) ToggleAllContainers()

ToggleAllContainers toggles single or all-containers if possible.

type Loggable

type Loggable interface {
	// TailLogs streams resource logs.
	TailLogs(ctx context.Context, opts *LogOptions) ([]LogChan, error)
}

Loggable represents resources with logs.

type Logger

type Logger interface {
	// Logs tails a resource logs.
	Logs(path string, opts *v1.PodLogOptions) (*restclient.Request, error)
}

Logger represents a resource that exposes logs.

type Meta added in v0.13.8

type Meta struct {
	// contains filtered or unexported fields
}

Meta represents available resource metas.

func NewMeta added in v0.13.8

func NewMeta() *Meta

NewMeta returns a resource meta.

func (*Meta) AllGVRs added in v0.13.8

func (m *Meta) AllGVRs() client.GVRs

AllGVRs returns all sorted cluster resources.

func (*Meta) GVK2GVR added in v0.32.5

func (m *Meta) GVK2GVR(gv schema.GroupVersion, kind string) (*client.GVR, bool, bool)

GVK2GVR convert gvk to gvr

func (*Meta) LoadResources added in v0.13.8

func (m *Meta) LoadResources(f Factory) error

LoadResources hydrates server preferred+CRDs resource metadata.

func (*Meta) Lookup added in v0.50.0

func (m *Meta) Lookup(cmd string) *client.GVR

func (*Meta) MetaFor added in v0.13.8

func (m *Meta) MetaFor(gvr *client.GVR) (*metav1.APIResource, error)

MetaFor returns a resource metadata for a given gvr.

func (*Meta) RegisterMeta added in v0.13.8

func (m *Meta) RegisterMeta(gvr string, res *metav1.APIResource)

RegisterMeta registers a new resource meta object.

type Namespace added in v0.25.19

type Namespace struct {
	Resource
}

Namespace represents a namespace resource.

type Node

type Node struct {
	Resource
}

Node represents a node model.

func (*Node) CountPods added in v0.21.4

func (*Node) CountPods(oo []runtime.Object, nodeName string) (int, error)

CountPods counts the pods scheduled on a given node.

func (*Node) Drain added in v0.17.6

func (n *Node) Drain(path string, opts DrainOptions, w io.Writer) error

Drain drains a node.

func (*Node) Get added in v0.17.6

func (n *Node) Get(ctx context.Context, path string) (runtime.Object, error)

Get returns a node resource.

func (*Node) GetPods added in v0.23.0

func (n *Node) GetPods(nodeName string) ([]*v1.Pod, error)

GetPods returns all pods running on given node.

func (*Node) List

func (n *Node) List(ctx context.Context, ns string) ([]runtime.Object, error)

List returns a collection of node resources.

func (*Node) ToggleCordon added in v0.17.6

func (n *Node) ToggleCordon(fqn string, cordon bool) error

ToggleCordon toggles cordon/uncordon a node.

type NodeMaintainer added in v0.17.6

type NodeMaintainer interface {
	// ToggleCordon toggles cordon/uncordon a node.
	ToggleCordon(path string, cordon bool) error

	// Drain drains the given node.
	Drain(path string, opts DrainOptions, w io.Writer) error
}

NodeMaintainer performs node maintenance operations.

type NodeMetricsFunc

type NodeMetricsFunc func() (*mv1beta1.NodeMetricsList, error)

NodeMetricsFunc retrieves node metrics.

type NonResource

type NonResource struct {
	Factory
	// contains filtered or unexported fields
}

NonResource represents a non k8s resource.

func (*NonResource) GVR

func (n *NonResource) GVR() string

GVR returns a gvr.

func (*NonResource) Get

Get returns the given resource.

func (*NonResource) Init

func (n *NonResource) Init(f Factory, gvr *client.GVR)

Init initializes the resource.

func (*NonResource) SetIncludeObject added in v0.40.0

func (n *NonResource) SetIncludeObject(f bool)

SetIncludeObject sets if resource object should be included in the api server response.

type Nuker

type Nuker interface {
	// Delete removes a resource from the api server.
	Delete(context.Context, string, *metav1.DeletionPropagation, Grace) error
}

Nuker represents a resource deleter.

type Pod

type Pod struct {
	Resource
}

Pod represents a pod resource.

func (*Pod) Containers

func (p *Pod) Containers(path string, includeInit bool) ([]string, error)

Containers returns all container names on pod.

func (*Pod) Get

func (p *Pod) Get(ctx context.Context, path string) (runtime.Object, error)

Get returns a resource instance if found, else an error.

func (*Pod) GetInstance added in v0.15.2

func (p *Pod) GetInstance(fqn string) (*v1.Pod, error)

GetInstance returns a pod instance.

func (*Pod) GetPodSpec added in v0.23.0

func (p *Pod) GetPodSpec(path string) (*v1.PodSpec, error)

GetPodSpec returns a pod spec given a resource.

func (*Pod) List

func (p *Pod) List(ctx context.Context, ns string) ([]runtime.Object, error)

List returns a collection of nodes.

func (*Pod) ListImages added in v0.29.0

func (p *Pod) ListImages(_ context.Context, path string) ([]string, error)

ListImages lists container images.

func (*Pod) Logs

func (p *Pod) Logs(path string, opts *v1.PodLogOptions) (*restclient.Request, error)

Logs fetch container logs for a given pod and container.

func (*Pod) Pod added in v0.15.2

func (*Pod) Pod(fqn string) (string, error)

Pod returns a pod victim by name.

func (*Pod) Sanitize added in v0.28.1

func (p *Pod) Sanitize(ctx context.Context, ns string) (int, error)

func (*Pod) Scan added in v0.20.0

func (p *Pod) Scan(_ context.Context, gvr *client.GVR, fqn string, wait bool) (Refs, error)

Scan scans for cluster resource refs.

func (*Pod) ScanSA added in v0.20.0

func (p *Pod) ScanSA(_ context.Context, fqn string, wait bool) (Refs, error)

ScanSA scans for ServiceAccount refs.

func (*Pod) SetImages added in v0.23.0

func (p *Pod) SetImages(ctx context.Context, path string, imageSpecs ImageSpecs) error

SetImages sets container images.

func (*Pod) TailLogs

func (p *Pod) TailLogs(ctx context.Context, opts *LogOptions) ([]LogChan, error)

TailLogs tails a given container logs.

type PodSpec added in v0.23.0

type PodSpec struct {
	Spec ImagesSpec `json:"spec"`
}

PodSpec represents a collection of container images.

type Policy

type Policy struct {
	Resource
}

Policy represent rbac policy.

func (*Policy) List

func (p *Policy) List(ctx context.Context, _ string) ([]runtime.Object, error)

List returns available policies.

type PortForward

type PortForward struct {
	NonResource
}

PortForward represents a port forward dao.

func (*PortForward) Delete

Delete deletes a portforward.

func (*PortForward) List

func (p *PortForward) List(ctx context.Context, _ string) ([]runtime.Object, error)

List returns a collection of port forwards.

type PortForwarder

type PortForwarder struct {
	Factory
	genericclioptions.IOStreams
	// contains filtered or unexported fields
}

PortForwarder tracks a port forward stream.

func NewPortForwarder

func NewPortForwarder(f Factory) *PortForwarder

NewPortForwarder returns a new port forward streamer.

func (*PortForwarder) Active

func (p *PortForwarder) Active() bool

Active returns the forward status.

func (*PortForwarder) Address added in v0.32.6

func (p *PortForwarder) Address() string

Address returns the port Address.

func (*PortForwarder) Age

func (p *PortForwarder) Age() time.Time

Age returns the port forward age.

func (*PortForwarder) Container

func (p *PortForwarder) Container() string

Container returns the target's container.

func (*PortForwarder) ContainerPort added in v0.25.0

func (p *PortForwarder) ContainerPort() string

ContainerPort returns the container port.

func (*PortForwarder) FQN

func (p *PortForwarder) FQN() string

FQN returns the portforward unique id.

func (*PortForwarder) HasPortMapping added in v0.15.2

func (p *PortForwarder) HasPortMapping(portMap string) bool

HasPortMapping checks if port mapping is defined for this fwd.

func (*PortForwarder) ID added in v0.25.0

func (p *PortForwarder) ID() string

ID returns a pf id.

func (*PortForwarder) LocalPort added in v0.25.0

func (p *PortForwarder) LocalPort() string

LocalPort returns the local port.

func (*PortForwarder) Port added in v0.25.0

func (p *PortForwarder) Port() string

Port returns the port mapping.

func (*PortForwarder) SetActive

func (p *PortForwarder) SetActive(b bool)

SetActive mark a portforward as active.

func (*PortForwarder) Start

Start initiates a port forward session for a given pod and ports.

func (*PortForwarder) Stop

func (p *PortForwarder) Stop()

Stop terminates a port forward.

func (*PortForwarder) String added in v0.28.1

func (p *PortForwarder) String() string

String dumps as string.

type Pulse added in v0.16.0

type Pulse struct {
	NonResource
}

Pulse tracks pulses.

func (*Pulse) List added in v0.16.0

List lists out pulses.

type Rbac

type Rbac struct {
	Resource
}

Rbac represents a model for listing rbac resources.

func (*Rbac) List

func (r *Rbac) List(ctx context.Context, ns string) ([]runtime.Object, error)

List lists out rbac resources.

type Ref added in v0.20.0

type Ref struct {
	GVR string
	FQN string
}

Ref represents a resource reference.

type RefScanner added in v0.20.0

type RefScanner interface {
	// Init initializes the scanner
	Init(Factory, *client.GVR)

	// Scan scan the resource for references.
	Scan(ctx context.Context, gvr *client.GVR, fqn string, wait bool) (Refs, error)

	// ScanSA scan the resource for serviceaccount references.
	ScanSA(ctx context.Context, fqn string, wait bool) (Refs, error)
}

RefScanner represents a resource reference scanner.

type Reference added in v0.20.0

type Reference struct {
	NonResource
}

Reference represents cluster resource references.

func (*Reference) Get added in v0.20.0

Get fetch a given reference.

func (*Reference) List added in v0.20.0

func (r *Reference) List(ctx context.Context, _ string) ([]runtime.Object, error)

List collects all references.

func (*Reference) Scan added in v0.20.0

func (r *Reference) Scan(ctx context.Context) ([]runtime.Object, error)

Scan scan cluster resources for references.

func (*Reference) ScanSA added in v0.20.0

func (r *Reference) ScanSA(ctx context.Context) ([]runtime.Object, error)

ScanSA scans for serviceaccount refs.

type Refs added in v0.20.0

type Refs []Ref

Refs represents a collection of resource references.

func ScanForRefs added in v0.20.0

func ScanForRefs(ctx context.Context, f Factory) (Refs, error)

ScanForRefs scans cluster resources for resource references.

func ScanForSARefs added in v0.20.0

func ScanForSARefs(ctx context.Context, f Factory) (Refs, error)

ScanForSARefs scans cluster resources for serviceaccount refs.

type ReplicaSet added in v0.16.0

type ReplicaSet struct {
	Resource
}

ReplicaSet represents a replicaset K8s resource.

func (*ReplicaSet) ListImages added in v0.29.0

func (r *ReplicaSet) ListImages(_ context.Context, fqn string) ([]string, error)

ListImages lists container images.

func (*ReplicaSet) Load added in v0.17.0

func (*ReplicaSet) Load(f Factory, path string) (*appsv1.ReplicaSet, error)

Load returns a given instance.

func (*ReplicaSet) Rollback added in v0.17.0

func (r *ReplicaSet) Rollback(fqn string) error

Rollback reverses the last deployment.

type ReplicasGetter added in v0.40.1

type ReplicasGetter interface {
	// Replicas returns the number of replicas for the resource located at the given path.
	Replicas(ctx context.Context, path string) (int32, error)
}

ReplicasGetter represents a resource with replicas.

type Resource

type Resource struct {
	Generic
}

Resource represents an informer based resource.

func (*Resource) Get

func (r *Resource) Get(_ context.Context, path string) (runtime.Object, error)

Get returns a resource instance if found, else an error.

func (*Resource) List

func (r *Resource) List(ctx context.Context, ns string) ([]runtime.Object, error)

List returns a collection of resources.

func (*Resource) ToYAML

func (r *Resource) ToYAML(path string, showManaged bool) (string, error)

ToYAML returns a resource yaml.

type ResourceMetas

type ResourceMetas map[*client.GVR]*metav1.APIResource

ResourceMetas represents a collection of resource metadata.

type RestMapper

type RestMapper struct {
	client.Connection
}

RestMapper map resource to REST mapping ie kind, group, version.

func (*RestMapper) Name

func (*RestMapper) Name() meta.RESTScopeName

Name protocol returns rest scope name.

func (*RestMapper) ResourceFor

func (r *RestMapper) ResourceFor(resourceArg, kind string) (*meta.RESTMapping, error)

ResourceFor produces a rest mapping from a given resource. Support full res name ie deployment.v1.apps.

func (*RestMapper) ToRESTMapper

func (r *RestMapper) ToRESTMapper() (meta.RESTMapper, error)

ToRESTMapper map resources to kind, and map kind and version to interfaces for manipulating K8s objects.

type Restartable

type Restartable interface {
	// Restart performs a rollout restart.
	Restart(context.Context, string, *metav1.PatchOptions) error
}

Restartable represents a restartable resource.

type Runnable

type Runnable interface {
	// Run triggers a run.
	Run(path string) error
}

Runnable represents a runnable resource.

type Sanitizer added in v0.28.1

type Sanitizer interface {
	// Sanitize nukes all resources in unhappy state.
	Sanitize(context.Context, string) (int, error)
}

Sanitizer represents a resource sanitizer.

type Scalable

type Scalable interface {
	// Scale scales a resource up or down.
	Scale(ctx context.Context, path string, replicas int32) error
}

Scalable represents resources that can scale.

type Scaler added in v0.40.1

type Scaler struct {
	Generic
}

Scaler represents a generic resource with scaling.

func (*Scaler) Replicas added in v0.40.1

func (s *Scaler) Replicas(ctx context.Context, path string) (int32, error)

Replicas returns the number of replicas for the resource located at the given path.

func (*Scaler) Scale added in v0.40.1

func (s *Scaler) Scale(ctx context.Context, path string, replicas int32) error

Scale modifies the number of replicas for a given resource specified by the path.

type ScreenDump

type ScreenDump struct {
	NonResource
}

ScreenDump represents a scraped resources.

func (*ScreenDump) Delete

Delete a ScreenDump.

func (*ScreenDump) List

func (*ScreenDump) List(ctx context.Context, _ string) ([]runtime.Object, error)

List returns a collection of screen dumps.

type Secret added in v0.31.8

type Secret struct {
	Resource
	// contains filtered or unexported fields
}

Secret represents a secret K8s resource.

func (*Secret) Decode added in v0.31.8

func (s *Secret) Decode(encodedDescription, path string) (string, error)

Decode removes the encoded part from the secret's description and appends the secret's decoded data.

func (*Secret) Describe added in v0.31.8

func (s *Secret) Describe(path string) (string, error)

Describe describes a secret that can be encoded or decoded.

func (*Secret) SetDecodeData added in v0.40.11

func (s *Secret) SetDecodeData(b bool)

SetDecodeData toggles decode mode.

type Service

type Service struct {
	Resource
}

Service represents a k8s service.

func (*Service) GetInstance added in v0.15.2

func (s *Service) GetInstance(fqn string) (*v1.Service, error)

GetInstance returns a service instance.

func (*Service) Pod added in v0.15.2

func (s *Service) Pod(fqn string) (string, error)

Pod returns a pod victim by name.

func (*Service) TailLogs

func (s *Service) TailLogs(ctx context.Context, opts *LogOptions) ([]LogChan, error)

TailLogs tail logs for all pods represented by this Service.

type Spec added in v0.23.0

type Spec struct {
	Template PodSpec `json:"template"`
}

Spec represents a pod template.

type StatefulSet

type StatefulSet struct {
	Resource
}

StatefulSet represents a K8s sts.

func (*StatefulSet) GetInstance added in v0.28.1

func (*StatefulSet) GetInstance(f Factory, fqn string) (*appsv1.StatefulSet, error)

GetInstance returns a statefulset instance.

func (*StatefulSet) GetPodSpec added in v0.23.0

func (s *StatefulSet) GetPodSpec(path string) (*v1.PodSpec, error)

GetPodSpec returns a pod spec given a resource.

func (*StatefulSet) ListImages added in v0.29.0

func (s *StatefulSet) ListImages(_ context.Context, fqn string) ([]string, error)

ListImages lists container images.

func (*StatefulSet) Pod added in v0.15.2

func (s *StatefulSet) Pod(fqn string) (string, error)

Pod returns a pod victim by name.

func (*StatefulSet) Restart

func (s *StatefulSet) Restart(ctx context.Context, path string, opts *metav1.PatchOptions) error

Restart a StatefulSet rollout.

func (*StatefulSet) Scale

func (s *StatefulSet) Scale(ctx context.Context, path string, replicas int32) error

Scale a StatefulSet.

func (*StatefulSet) Scan added in v0.20.0

func (s *StatefulSet) Scan(_ context.Context, gvr *client.GVR, fqn string, wait bool) (Refs, error)

Scan scans for cluster resource refs.

func (*StatefulSet) ScanSA added in v0.20.0

func (s *StatefulSet) ScanSA(_ context.Context, fqn string, wait bool) (Refs, error)

ScanSA scans for serviceaccount refs.

func (*StatefulSet) SetImages added in v0.23.0

func (s *StatefulSet) SetImages(ctx context.Context, path string, imageSpecs ImageSpecs) error

SetImages sets container images.

func (*StatefulSet) TailLogs

func (s *StatefulSet) TailLogs(ctx context.Context, opts *LogOptions) ([]LogChan, error)

TailLogs tail logs for all pods represented by this StatefulSet.

type Subject

type Subject struct {
	Resource
}

Subject represents a subject model.

func (*Subject) List

func (s *Subject) List(ctx context.Context, _ string) ([]runtime.Object, error)

List returns a collection of subjects.

type Switchable

type Switchable interface {
	// Switch changes the active context.
	Switch(ctx string) error
}

Switchable represents a switchable resource.

type Table

type Table struct {
	Generic
}

Table retrieves K8s resources as tabular data.

func (*Table) Get

func (t *Table) Get(ctx context.Context, path string) (runtime.Object, error)

Get returns a given resource.

func (*Table) List

func (t *Table) List(ctx context.Context, ns string) ([]runtime.Object, error)

List all Resources in a given namespace.

type Valuer added in v0.30.0

type Valuer interface {
	// GetValues returns values for a resource.
	GetValues(path string, allValues bool) ([]byte, error)
}

Valuer represents a resource with values.

type Workload added in v0.30.0

type Workload struct {
	Table
}

Workload tracks a select set of resources in a given namespace.

func (*Workload) Delete added in v0.30.0

func (w *Workload) Delete(ctx context.Context, path string, propagation *metav1.DeletionPropagation, grace Grace) error

func (*Workload) List added in v0.30.0

func (a *Workload) List(ctx context.Context, ns string) ([]runtime.Object, error)

List fetch workloads.

Jump to

Keyboard shortcuts

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