Documentation ¶
Index ¶
- Variables
- func FQN(ns, n string) string
- func MetaFQN(m metav1.ObjectMeta) string
- func Truncate(str string, width int) string
- type Cluster
- type Component
- type Cruder
- type Describer
- type Hint
- type HintListener
- type Hinter
- type Igniter
- type Lister
- type Log
- func (l *Log) AddListener(listener LogsListener)
- func (l *Log) Append(line string)
- func (l *Log) Clear()
- func (l *Log) ClearFilter()
- func (l *Log) Filter(q string) error
- func (l *Log) GetContainer() string
- func (l *Log) GetPath() string
- func (l *Log) Init(f dao.Factory)
- func (l *Log) Notify(timedOut bool)
- func (l *Log) RemoveListener(listener LogsListener)
- func (l *Log) Set(lines []string)
- func (l *Log) Start()
- func (l *Log) Stop()
- type LogsListener
- type MenuHint
- type MenuHints
- type MetricsServer
- type MetricsService
- type Primitive
- type Renderer
- type ResourceMeta
- type Stack
- func (s *Stack) AddListener(l StackListener)
- func (s *Stack) Clear()
- func (s *Stack) Dump()
- func (s *Stack) Empty() bool
- func (s *Stack) Flatten() []string
- func (s *Stack) IsLast() bool
- func (s *Stack) Peek() []Component
- func (s *Stack) Pop() (Component, bool)
- func (s *Stack) Previous() Component
- func (s *Stack) Push(c Component)
- func (s *Stack) RemoveListener(l StackListener)
- func (s *Stack) Top() Component
- type StackAction
- type StackEvent
- type StackListener
- type Table
- func (t *Table) AddListener(l TableListener)
- func (t *Table) ClusterWide() bool
- func (t *Table) Delete(ctx context.Context, path string, cascade, force bool) error
- func (t *Table) Describe(ctx context.Context, path string) (string, error)
- func (t *Table) Empty() bool
- func (t *Table) Get(ctx context.Context, path string) (runtime.Object, error)
- func (t *Table) GetNamespace() string
- func (t *Table) InNamespace(ns string) bool
- func (t *Table) Peek() render.TableData
- func (t *Table) Refresh(ctx context.Context)
- func (t *Table) RemoveListener(l TableListener)
- func (t *Table) SetInstance(path string)
- func (t *Table) SetNamespace(ns string)
- func (t *Table) SetRefreshRate(d time.Duration)
- func (t *Table) ToYAML(ctx context.Context, path string) (string, error)
- func (t *Table) Watch(ctx context.Context)
- type TableListener
- type Tree
- func (t *Tree) AddListener(l TreeListener)
- func (t *Tree) ClearFilter()
- func (t *Tree) ClusterWide() bool
- func (t *Tree) Describe(ctx context.Context, gvr, path string) (string, error)
- func (t *Tree) Empty() bool
- func (t *Tree) GetNamespace() string
- func (t *Tree) InNamespace(ns string) bool
- func (t *Tree) Peek() *xray.TreeNode
- func (t *Tree) Refresh(ctx context.Context)
- func (t *Tree) RemoveListener(l TreeListener)
- func (t *Tree) SetFilter(q string)
- func (t *Tree) SetNamespace(ns string)
- func (t *Tree) SetRefreshRate(d time.Duration)
- func (t *Tree) ToYAML(ctx context.Context, gvr, path string) (string, error)
- func (t *Tree) Watch(ctx context.Context)
- type TreeListener
- type TreeRenderer
Constants ¶
This section is empty.
Variables ¶
var Registry = map[string]ResourceMeta{ "charts": { DAO: &dao.Chart{}, Renderer: &render.Chart{}, }, "containers": { DAO: &dao.Container{}, Renderer: &render.Container{}, TreeRenderer: &xray.Container{}, }, "contexts": { DAO: &dao.Context{}, Renderer: &render.Context{}, }, "screendumps": { DAO: &dao.ScreenDump{}, Renderer: &render.ScreenDump{}, }, "rbac": { DAO: &dao.Rbac{}, Renderer: &render.Rbac{}, }, "policy": { DAO: &dao.Policy{}, Renderer: &render.Policy{}, }, "users": { DAO: &dao.Subject{}, Renderer: &render.Subject{}, }, "groups": { DAO: &dao.Subject{}, Renderer: &render.Subject{}, }, "portforwards": { DAO: &dao.PortForward{}, Renderer: &render.PortForward{}, }, "benchmarks": { DAO: &dao.Benchmark{}, Renderer: &render.Benchmark{}, }, "aliases": { DAO: &dao.Alias{}, Renderer: &render.Alias{}, }, "v1/endpoints": { Renderer: &render.Endpoints{}, }, "v1/events": { Renderer: &render.Event{}, }, "v1/pods": { DAO: &dao.Pod{}, Renderer: &render.Pod{}, TreeRenderer: &xray.Pod{}, }, "v1/namespaces": { Renderer: &render.Namespace{}, }, "v1/nodes": { DAO: &dao.Node{}, Renderer: &render.Node{}, }, "v1/services": { DAO: &dao.Service{}, Renderer: &render.Service{}, TreeRenderer: &xray.Service{}, }, "v1/serviceaccounts": { Renderer: &render.ServiceAccount{}, }, "v1/persistentvolumes": { Renderer: &render.PersistentVolume{}, }, "v1/persistentvolumeclaims": { Renderer: &render.PersistentVolumeClaim{}, }, "apps/v1/deployments": { DAO: &dao.Deployment{}, Renderer: &render.Deployment{}, TreeRenderer: &xray.Deployment{}, }, "apps/v1/replicasets": { Renderer: &render.ReplicaSet{}, TreeRenderer: &xray.ReplicaSet{}, }, "apps/v1/statefulsets": { DAO: &dao.StatefulSet{}, Renderer: &render.StatefulSet{}, TreeRenderer: &xray.StatefulSet{}, }, "apps/v1/daemonsets": { DAO: &dao.DaemonSet{}, Renderer: &render.DaemonSet{}, TreeRenderer: &xray.DaemonSet{}, }, "extensions/v1beta1/daemonsets": { Renderer: &render.DaemonSet{}, }, "extensions/v1beta1/ingresses": { Renderer: &render.Ingress{}, }, "extensions/v1beta1/networkpolicies": { Renderer: &render.NetworkPolicy{}, }, "networking.k8s.io/v1/networkpolicies": { Renderer: &render.NetworkPolicy{}, }, "batch/v1beta1/cronjobs": { DAO: &dao.CronJob{}, Renderer: &render.CronJob{}, }, "batch/v1/jobs": { DAO: &dao.Job{}, Renderer: &render.Job{}, }, "autoscaling/v1/horizontalpodautoscalers": { DAO: &dao.HorizontalPodAutoscaler{}, Renderer: &render.HorizontalPodAutoscaler{}, }, "autoscaling/v2beta1/horizontalpodautoscalers": { DAO: &dao.HorizontalPodAutoscaler{}, Renderer: &render.HorizontalPodAutoscaler{}, }, "autoscaling/v2beta2/horizontalpodautoscalers": { DAO: &dao.HorizontalPodAutoscaler{}, Renderer: &render.HorizontalPodAutoscaler{}, }, "apiextensions.k8s.io/v1/customresourcedefinitions": { Renderer: &render.CustomResourceDefinition{}, }, "apiextensions.k8s.io/v1beta1/customresourcedefinitions": { Renderer: &render.CustomResourceDefinition{}, }, "storage.k8s.io/v1/storageclasses": { Renderer: &render.StorageClass{}, }, "policy/v1beta1/poddisruptionbudgets": { Renderer: &render.PodDisruptionBudget{}, }, "rbac.authorization.k8s.io/v1/clusterroles": { DAO: &dao.Rbac{}, Renderer: &render.ClusterRole{}, }, "rbac.authorization.k8s.io/v1/clusterrolebindings": { Renderer: &render.ClusterRoleBinding{}, }, "rbac.authorization.k8s.io/v1/roles": { Renderer: &render.Role{}, }, "rbac.authorization.k8s.io/v1/rolebindings": { Renderer: &render.RoleBinding{}, }, }
Registry tracks resources metadata. BOZO!! Break up deps and merge into single registrar
Functions ¶
func MetaFQN ¶
func MetaFQN(m metav1.ObjectMeta) string
MetaFQN returns a fully qualified resource name.
Types ¶
type Cluster ¶
type Cluster struct {
// contains filtered or unexported fields
}
Cluster represents a kubernetes resource.
func NewCluster ¶
func NewCluster(c client.Connection, mx MetricsServer) *Cluster
NewCluster returns a new cluster info resource.
func NewClusterWithArgs ¶
func NewClusterWithArgs(c client.Connection, mx MetricsServer) *Cluster
NewClusterWithArgs for tests only!
func (*Cluster) ClusterName ¶
ClusterName returns the cluster name.
func (*Cluster) ContextName ¶
ContextName returns the context name.
func (*Cluster) Metrics ¶
func (c *Cluster) Metrics(nn *v1.NodeList, nmx *mv1beta1.NodeMetricsList, mx *client.ClusterMetrics) error
Metrics gathers node level metrics and compute utilization percentages.
type Cruder ¶
type Cruder interface { // List returns a collection of resources. List(ctx context.Context, ns string) ([]runtime.Object, error) // Get returns a resource instance. Get(ctx context.Context, path string) (runtime.Object, error) }
Cruder performs crud operations.
type Describer ¶
type Describer interface { // ToYAML return resource yaml. ToYAML(ctx context.Context, path string) (string, error) // Describe returns a resource description. Describe(client client.Connection, gvr, path string) (string, error) }
Describer represents a resource describer.
type Hint ¶
type Hint struct {
// contains filtered or unexported fields
}
Hint represent a hint model.
func (*Hint) AddListener ¶
func (h *Hint) AddListener(l HintListener)
AddListener adds a hint listener.
func (*Hint) RemoveListener ¶
func (h *Hint) RemoveListener(l HintListener)
RemoveListener deletes a listener.
type HintListener ¶
type HintListener interface {
HintsChanged(MenuHints)
}
HintListener represents a menu hints listener.
type Hinter ¶
type Hinter interface { // Hints returns a collection of menu hints. Hints() MenuHints }
Hinter represent a menu mnemonic provider.
type Igniter ¶
type Igniter interface { // Start starts a component. Init(ctx context.Context) error // Start starts a component. Start() // Stop terminates a component. Stop() }
Igniter represents a runnable view.
type Lister ¶
type Lister interface { Cruder // Init initializes a resource. Init(ns, gvr string, f dao.Factory) }
Lister represents a resource lister.
type Log ¶
type Log struct {
// contains filtered or unexported fields
}
Log represents a resource logger.
func (*Log) AddListener ¶
func (l *Log) AddListener(listener LogsListener)
AddListener adds a new model listener.
func (*Log) GetContainer ¶
GetContainer returns the resource container if any or "" otherwise.
func (*Log) RemoveListener ¶
func (l *Log) RemoveListener(listener LogsListener)
RemoveListener delete a listener from the lisl.
type LogsListener ¶
type LogsListener interface { // LogChanged notifies the model changed. LogChanged([]string) // LogCleanred indicates logs are cleared. LogCleared() // LogFailed indicates a log failure. LogFailed(error) }
LogsListener represents a log model listener.
type MetricsServer ¶
type MetricsServer interface { MetricsService ClusterLoad(*v1.NodeList, *mv1beta1.NodeMetricsList, *client.ClusterMetrics) error NodesMetrics(*v1.NodeList, *mv1beta1.NodeMetricsList, client.NodesMetrics) PodsMetrics(*mv1beta1.PodMetricsList, client.PodsMetrics) }
MetricsServer gather metrics information from pods and nodes.
type MetricsService ¶
type MetricsService interface { HasMetrics() bool FetchNodesMetrics() (*mv1beta1.NodeMetricsList, error) FetchPodsMetrics(ns string) (*mv1beta1.PodMetricsList, error) }
MetricsService calls the metrics server for metrics info.
type Renderer ¶
type Renderer interface { // Render converts raw resources to tabular data. Render(o interface{}, ns string, row *render.Row) error // Header returns the resource header. Header(ns string) render.HeaderRow // ColorerFunc returns a row colorer function. ColorerFunc() render.ColorerFunc }
Renderer represents a resource renderer.
type ResourceMeta ¶
type ResourceMeta struct { DAO dao.Accessor Renderer Renderer TreeRenderer TreeRenderer }
ResourceMeta represents model info about a resource.
type Stack ¶
type Stack struct {
// contains filtered or unexported fields
}
Stack represents a stacks of components.
func (*Stack) AddListener ¶
func (s *Stack) AddListener(l StackListener)
AddListener registers a stack listener.
func (*Stack) RemoveListener ¶
func (s *Stack) RemoveListener(l StackListener)
RemoveListener removes a listener.
type StackAction ¶
type StackAction int
StackAction represents an action on the stack.
const ( // StackPush denotes an add on the stack. StackPush StackAction = 1 << iota // StackPop denotes a delete on the stack. StackPop )
type StackEvent ¶
type StackEvent struct { // Kind represents the event condition. Action StackAction // Item represents the targeted item. Component Component }
StackEvent represents an operation on a view stack.
type StackListener ¶
type StackListener interface { // StackPushed indicates a new item was added. StackPushed(Component) // StackPopped indicates an item was deleted StackPopped(old, new Component) // StackTop indicates the top of the stack StackTop(Component) }
StackListener represents a stack listener.
type Table ¶
type Table struct {
// contains filtered or unexported fields
}
Table represents a table model.
func (*Table) AddListener ¶
func (t *Table) AddListener(l TableListener)
AddListener adds a new model listener.
func (*Table) ClusterWide ¶
ClusterWide checks if resource is scope for all namespaces.
func (*Table) GetNamespace ¶
GetNamespace returns the model namespace.
func (*Table) InNamespace ¶
InNamespace checks if current namespace matches desired namespace.
func (*Table) RemoveListener ¶
func (t *Table) RemoveListener(l TableListener)
RemoveListener delete a listener from the list.
func (*Table) SetInstance ¶
SetInstance sets a single entry table.
func (*Table) SetNamespace ¶
SetNamespace sets up model namespace.
func (*Table) SetRefreshRate ¶
SetRefreshRate sets model refresh duration.
type TableListener ¶
type TableListener interface { // TableDataChanged notifies the model data changed. TableDataChanged(render.TableData) // TableLoadFailed notifies the load failed. TableLoadFailed(error) }
TableListener represents a table model listener.
type Tree ¶
type Tree struct {
// contains filtered or unexported fields
}
Tree represents a tree model.
func (*Tree) ClusterWide ¶
ClusterWide checks if resource is scope for all namespaces.
func (*Tree) GetNamespace ¶
GetNamespace returns the model namespace.
func (*Tree) InNamespace ¶
InNamespace checks if current namespace matches desired namespace.
func (*Tree) RemoveListener ¶
func (t *Tree) RemoveListener(l TreeListener)
RemoveListener delete a listener.
func (*Tree) SetNamespace ¶
SetNamespace sets up model namespace.
func (*Tree) SetRefreshRate ¶
SetRefreshRate sets model refresh duration.
type TreeListener ¶
type TreeListener interface { // TreeChanged notifies the model data changed. TreeChanged(*xray.TreeNode) // TreeLoadFailed notifies the load failed. TreeLoadFailed(error) }
TreeListener represents a tree model listener.