dao

package
v0.32.6 Latest Latest
Warning

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

Go to latest
Published: Nov 10, 2024 License: Apache-2.0, Apache-2.0 Imports: 62 Imported by: 0

Documentation

Index

Constants

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

Variables

View Source
var (
	SaGVR  = client.NewGVR("v1/serviceaccounts")
	PvcGVR = client.NewGVR("v1/persistentvolumeclaims")
	PcGVR  = client.NewGVR("scheduling.k8s.io/v1/priorityclasses")
	CmGVR  = client.NewGVR("v1/configmaps")
	SecGVR = client.NewGVR("v1/secrets")
	PodGVR = client.NewGVR("v1/pods")
	SvcGVR = client.NewGVR("v1/services")
	DsGVR  = client.NewGVR("apps/v1/daemonsets")
	StsGVR = client.NewGVR("apps/v1/statefulSets")
	DpGVR  = client.NewGVR("apps/v1/deployments")
	RsGVR  = client.NewGVR("apps/v1/replicasets")
)
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 *unstructured.Unstructured) (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(ctx context.Context, f Factory, path string) (*v1.Node, error)

FetchNode retrieves a node.

func FetchNodes

func FetchNodes(ctx context.Context, f Factory, labelsSel 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 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
}

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(s string) []string

func (*Alias) AsGVR

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

AsGVR returns a matching gvr if it exists.

func (*Alias) Check added in v0.13.4

func (a *Alias) Check(cmd string) (string, bool)

Check verifies an alias is defined for this command.

func (*Alias) Ensure

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

Ensure makes sure alias are loaded.

func (*Alias) Get

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

Get fetch a resource.

func (*Alias) List

func (a *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 (b *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(ctx 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(ctx 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(ctx 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(ctx 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(ctx 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) error

Restart a DaemonSet rollout.

func (*DaemonSet) Scan added in v0.20.0

func (d *DaemonSet) Scan(ctx 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(ctx 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(ctx 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) 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(ctx 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(ctx 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 (a *Dir) Get(_ context.Context, _ string) (runtime.Object, error)

Get fetch a resource.

func (*Dir) List added in v0.21.0

func (a *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
}

DrainOptions tracks drain attributes.

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, path string, wait bool, sel labels.Selector) (runtime.Object, error)

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

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

	// CanForResource fetch an informer for a given resource if authorized
	CanForResource(ns, gvr string, 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(ctx 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, showManaged 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, showManaged 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(ctx context.Context, fqn string) ([]string, error)

ListImages lists container images.

func (*Job) Scan added in v0.20.0

func (j *Job) Scan(ctx 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(ctx 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) ([]int, [][]int, 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 (o *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 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) 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 (n *Node) CountPods(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(path 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.

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(ctx 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 (p *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(ctx 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(ctx 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, ns 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

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

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

func (r *Reference) Get(ctx context.Context, path string) (runtime.Object, error)

Get fetch a given reference.

func (*Reference) List added in v0.20.0

func (r *Reference) List(ctx context.Context, ns 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(ctx context.Context, fqn string) ([]string, error)

ListImages lists container images.

func (*ReplicaSet) Load added in v0.17.0

func (r *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 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(ctx context.Context, path string) 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 ScreenDump

type ScreenDump struct {
	NonResource
}

ScreenDump represents a scraped resources.

func (*ScreenDump) Delete

Delete a ScreenDump.

func (*ScreenDump) List

func (d *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) SetDecode added in v0.31.8

func (s *Secret) SetDecode(flag bool)

SetDecode sets the decode flag.

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(ctx 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) 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(ctx 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(ctx 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, ns 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