mirror of
https://github.com/derailed/k9s.git
synced 2026-10-11 21:39:54 +00:00
fix(lint): update golangci-lint version to v2.13 (#4197)
* fix(lint): update golangci-lint version to v2.13 * fix(lint): resolve goconst/gosec/govet issues from golangci-lint v2.13
This commit is contained in:
@@ -21,4 +21,4 @@ jobs:
|
||||
uses: golangci/[email protected]
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
version: v2.6
|
||||
version: v2.13
|
||||
|
||||
@@ -10,6 +10,10 @@ run:
|
||||
issues-exit-code: 1
|
||||
tests: true
|
||||
|
||||
issues:
|
||||
max-issues-per-linter: 0
|
||||
max-same-issues: 0
|
||||
|
||||
linters:
|
||||
disable:
|
||||
- staticcheck
|
||||
@@ -54,6 +58,7 @@ linters:
|
||||
- G115
|
||||
- G204
|
||||
- G303
|
||||
- G703
|
||||
|
||||
sloglint:
|
||||
no-mixed-args: true
|
||||
@@ -189,6 +194,7 @@ linters:
|
||||
- dupl
|
||||
- mnd
|
||||
- lll
|
||||
- goconst
|
||||
|
||||
# Based on existing code, the modifications should be limited to make maintenance easier.
|
||||
- path: pkg/golinters/unused/unused.go
|
||||
|
||||
@@ -23,6 +23,10 @@ default: help
|
||||
test: ## Run all tests
|
||||
@go clean --testcache && go test ./...
|
||||
|
||||
lint: ## Run golangci-lint
|
||||
@command -v golangci-lint >/dev/null 2>&1 || go install github.com/golangci/golangci-lint/v2/cmd/[email protected]
|
||||
@golangci-lint run
|
||||
|
||||
cover: ## Run test coverage suite
|
||||
@go test ./... --coverprofile=cov.out
|
||||
@go tool cover --html=cov.out
|
||||
|
||||
+1
-1
@@ -100,7 +100,7 @@ func run(*cobra.Command, []string) error {
|
||||
}
|
||||
}()
|
||||
|
||||
slog.SetDefault(slog.New(tint.NewHandler(logFile, &tint.Options{
|
||||
slog.SetDefault(slog.New(tint.NewTextHandler(logFile, &tint.Options{
|
||||
Level: parseLevel(*k9sFlags.LogLevel),
|
||||
TimeFormat: time.RFC3339,
|
||||
})))
|
||||
|
||||
+76
-65
@@ -32,6 +32,17 @@ const (
|
||||
|
||||
// TextStyleDim is the dim text style.
|
||||
TextStyleDim TextStyle = "dim"
|
||||
|
||||
// Default color palette values used to build the default skin.
|
||||
colorBlack = "black"
|
||||
colorWhite = "white"
|
||||
colorAqua = "aqua"
|
||||
colorCadetBlue = "cadetblue"
|
||||
colorDodgerBlue = "dodgerblue"
|
||||
colorFuchsia = "fuchsia"
|
||||
colorGreen = "green"
|
||||
colorLightSkyBlue = "lightskyblue"
|
||||
colorOrange = "orange"
|
||||
)
|
||||
|
||||
// ToShortString returns a short string representation of the text style.
|
||||
@@ -265,42 +276,42 @@ func newStyle() Style {
|
||||
|
||||
func newDialog() Dialog {
|
||||
return Dialog{
|
||||
FgColor: "cadetblue",
|
||||
BgColor: "black",
|
||||
FgColor: colorCadetBlue,
|
||||
BgColor: colorBlack,
|
||||
ButtonBgColor: "darkslateblue",
|
||||
ButtonFgColor: "black",
|
||||
ButtonFocusBgColor: "dodgerblue",
|
||||
ButtonFocusFgColor: "black",
|
||||
LabelFgColor: "white",
|
||||
FieldFgColor: "white",
|
||||
ButtonFgColor: colorBlack,
|
||||
ButtonFocusBgColor: colorDodgerBlue,
|
||||
ButtonFocusFgColor: colorBlack,
|
||||
LabelFgColor: colorWhite,
|
||||
FieldFgColor: colorWhite,
|
||||
}
|
||||
}
|
||||
|
||||
func newPrompt() Prompt {
|
||||
return Prompt{
|
||||
FgColor: "cadetblue",
|
||||
BgColor: "black",
|
||||
SuggestColor: "dodgerblue",
|
||||
FgColor: colorCadetBlue,
|
||||
BgColor: colorBlack,
|
||||
SuggestColor: colorDodgerBlue,
|
||||
Border: PromptBorder{
|
||||
DefaultColor: "seagreen",
|
||||
CommandColor: "aqua",
|
||||
CommandColor: colorAqua,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func newCharts() Charts {
|
||||
return Charts{
|
||||
BgColor: "black",
|
||||
DialBgColor: "black",
|
||||
ChartBgColor: "black",
|
||||
BgColor: colorBlack,
|
||||
DialBgColor: colorBlack,
|
||||
ChartBgColor: colorBlack,
|
||||
DefaultDialColors: Colors{Color("palegreen"), Color("orangered")},
|
||||
DefaultChartColors: Colors{Color("palegreen"), Color("orangered")},
|
||||
ResourceColors: map[string]Colors{
|
||||
CPU: {Color("dodgerblue"), Color("darkslateblue")},
|
||||
CPU: {Color(colorDodgerBlue), Color("darkslateblue")},
|
||||
MEM: {Color("yellow"), Color("goldenrod")},
|
||||
},
|
||||
FocusFgColor: "white",
|
||||
FocusBgColor: "orange",
|
||||
FocusFgColor: colorWhite,
|
||||
FocusBgColor: colorOrange,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -327,21 +338,21 @@ func newFrame() Frame {
|
||||
|
||||
func newHelp() Help {
|
||||
return Help{
|
||||
FgColor: "cadetblue",
|
||||
BgColor: "black",
|
||||
SectionColor: "green",
|
||||
KeyColor: "dodgerblue",
|
||||
NumKeyColor: "fuchsia",
|
||||
FgColor: colorCadetBlue,
|
||||
BgColor: colorBlack,
|
||||
SectionColor: colorGreen,
|
||||
KeyColor: colorDodgerBlue,
|
||||
NumKeyColor: colorFuchsia,
|
||||
}
|
||||
}
|
||||
|
||||
func newBody() Body {
|
||||
return Body{
|
||||
FgColor: "cadetblue",
|
||||
BgColor: "black",
|
||||
LogoColor: "orange",
|
||||
LogoColorMsg: "white",
|
||||
LogoColorInfo: "green",
|
||||
FgColor: colorCadetBlue,
|
||||
BgColor: colorBlack,
|
||||
LogoColor: colorOrange,
|
||||
LogoColorMsg: colorWhite,
|
||||
LogoColorInfo: colorGreen,
|
||||
LogoColorWarn: "mediumvioletred",
|
||||
LogoColorError: "red",
|
||||
}
|
||||
@@ -349,12 +360,12 @@ func newBody() Body {
|
||||
|
||||
func newStatus() Status {
|
||||
return Status{
|
||||
NewColor: "lightskyblue",
|
||||
NewColor: colorLightSkyBlue,
|
||||
ModifyColor: "greenyellow",
|
||||
AddColor: "dodgerblue",
|
||||
AddColor: colorDodgerBlue,
|
||||
PendingColor: "darkorange",
|
||||
ErrorColor: "orangered",
|
||||
HighlightColor: "aqua",
|
||||
HighlightColor: colorAqua,
|
||||
KillColor: "mediumpurple",
|
||||
CompletedColor: "lightslategray",
|
||||
}
|
||||
@@ -362,24 +373,24 @@ func newStatus() Status {
|
||||
|
||||
func newPicker() Picker {
|
||||
return Picker{
|
||||
MainColor: "white",
|
||||
FocusColor: "aqua",
|
||||
ShortcutColor: "aqua",
|
||||
MainColor: colorWhite,
|
||||
FocusColor: colorAqua,
|
||||
ShortcutColor: colorAqua,
|
||||
}
|
||||
}
|
||||
|
||||
func newLog() Log {
|
||||
return Log{
|
||||
FgColor: "lightskyblue",
|
||||
BgColor: "black",
|
||||
FgColor: colorLightSkyBlue,
|
||||
BgColor: colorBlack,
|
||||
Indicator: newLogIndicator(),
|
||||
}
|
||||
}
|
||||
|
||||
func newLogIndicator() LogIndicator {
|
||||
return LogIndicator{
|
||||
FgColor: "dodgerblue",
|
||||
BgColor: "black",
|
||||
FgColor: colorDodgerBlue,
|
||||
BgColor: colorBlack,
|
||||
ToggleOnColor: "limegreen",
|
||||
ToggleOffColor: "gray",
|
||||
}
|
||||
@@ -388,16 +399,16 @@ func newLogIndicator() LogIndicator {
|
||||
func newYaml() Yaml {
|
||||
return Yaml{
|
||||
KeyColor: "steelblue",
|
||||
ColonColor: "white",
|
||||
ColonColor: colorWhite,
|
||||
ValueColor: "papayawhip",
|
||||
}
|
||||
}
|
||||
|
||||
func newTitle() Title {
|
||||
return Title{
|
||||
FgColor: "aqua",
|
||||
BgColor: "black",
|
||||
HighlightColor: "fuchsia",
|
||||
FgColor: colorAqua,
|
||||
BgColor: colorBlack,
|
||||
HighlightColor: colorFuchsia,
|
||||
CounterColor: "papayawhip",
|
||||
FilterColor: "seagreen",
|
||||
}
|
||||
@@ -405,30 +416,30 @@ func newTitle() Title {
|
||||
|
||||
func newInfo() Info {
|
||||
return Info{
|
||||
SectionColor: "white",
|
||||
FgColor: "orange",
|
||||
SectionColor: colorWhite,
|
||||
FgColor: colorOrange,
|
||||
CPUColor: "lawngreen",
|
||||
MEMColor: "darkturquoise",
|
||||
K9sRevColor: "aqua",
|
||||
K9sRevColor: colorAqua,
|
||||
}
|
||||
}
|
||||
|
||||
func newXray() Xray {
|
||||
return Xray{
|
||||
FgColor: "aqua",
|
||||
BgColor: "black",
|
||||
CursorColor: "dodgerblue",
|
||||
CursorTextColor: "black",
|
||||
GraphicColor: "cadetblue",
|
||||
FgColor: colorAqua,
|
||||
BgColor: colorBlack,
|
||||
CursorColor: colorDodgerBlue,
|
||||
CursorTextColor: colorBlack,
|
||||
GraphicColor: colorCadetBlue,
|
||||
}
|
||||
}
|
||||
|
||||
func newTable() Table {
|
||||
return Table{
|
||||
FgColor: "aqua",
|
||||
BgColor: "black",
|
||||
CursorFgColor: "black",
|
||||
CursorBgColor: "aqua",
|
||||
FgColor: colorAqua,
|
||||
BgColor: colorBlack,
|
||||
CursorFgColor: colorBlack,
|
||||
CursorBgColor: colorAqua,
|
||||
MarkColor: "palegreen",
|
||||
Header: newTableHeader(),
|
||||
}
|
||||
@@ -436,33 +447,33 @@ func newTable() Table {
|
||||
|
||||
func newTableHeader() TableHeader {
|
||||
return TableHeader{
|
||||
FgColor: "white",
|
||||
BgColor: "black",
|
||||
SorterColor: "aqua",
|
||||
SelectedSortColumnColor: "lightskyblue",
|
||||
FgColor: colorWhite,
|
||||
BgColor: colorBlack,
|
||||
SorterColor: colorAqua,
|
||||
SelectedSortColumnColor: colorLightSkyBlue,
|
||||
}
|
||||
}
|
||||
|
||||
func newCrumb() Crumb {
|
||||
return Crumb{
|
||||
FgColor: "black",
|
||||
BgColor: "aqua",
|
||||
ActiveColor: "orange",
|
||||
FgColor: colorBlack,
|
||||
BgColor: colorAqua,
|
||||
ActiveColor: colorOrange,
|
||||
}
|
||||
}
|
||||
|
||||
func newBorder() Border {
|
||||
return Border{
|
||||
FgColor: "dodgerblue",
|
||||
FocusColor: "lightskyblue",
|
||||
FgColor: colorDodgerBlue,
|
||||
FocusColor: colorLightSkyBlue,
|
||||
}
|
||||
}
|
||||
|
||||
func newMenu() Menu {
|
||||
return Menu{
|
||||
FgColor: "white",
|
||||
KeyColor: "dodgerblue",
|
||||
NumKeyColor: "fuchsia",
|
||||
FgColor: colorWhite,
|
||||
KeyColor: colorDodgerBlue,
|
||||
NumKeyColor: colorFuchsia,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -99,6 +99,6 @@ func (t *Threshold) SeverityColor(k string, v int) string {
|
||||
case SeverityMedium:
|
||||
return "orangered"
|
||||
default:
|
||||
return "green"
|
||||
return colorGreen
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,6 +27,8 @@ const (
|
||||
k9sCat = "k9s"
|
||||
helmCat = "helm"
|
||||
scaleCat = "scale"
|
||||
|
||||
verbDelete = "delete"
|
||||
)
|
||||
|
||||
var stdGroups = sets.New[string](
|
||||
@@ -238,7 +240,7 @@ func loadK9s(m ResourceMetas) {
|
||||
Kind: "ScreenDumps",
|
||||
SingularName: "screendump",
|
||||
ShortNames: []string{"sd"},
|
||||
Verbs: []string{"delete"},
|
||||
Verbs: []string{verbDelete},
|
||||
Categories: []string{k9sCat},
|
||||
}
|
||||
m[client.BeGVR] = &metav1.APIResource{
|
||||
@@ -246,7 +248,7 @@ func loadK9s(m ResourceMetas) {
|
||||
Kind: "Benchmarks",
|
||||
SingularName: "benchmark",
|
||||
ShortNames: []string{"be"},
|
||||
Verbs: []string{"delete"},
|
||||
Verbs: []string{verbDelete},
|
||||
Categories: []string{k9sCat},
|
||||
}
|
||||
m[client.PfGVR] = &metav1.APIResource{
|
||||
@@ -255,7 +257,7 @@ func loadK9s(m ResourceMetas) {
|
||||
Kind: "PortForwards",
|
||||
SingularName: "portforward",
|
||||
ShortNames: []string{"pf"},
|
||||
Verbs: []string{"delete"},
|
||||
Verbs: []string{verbDelete},
|
||||
Categories: []string{k9sCat},
|
||||
}
|
||||
m[client.CoGVR] = &metav1.APIResource{
|
||||
@@ -279,14 +281,14 @@ func loadHelm(m ResourceMetas) {
|
||||
Name: "helm",
|
||||
Kind: "Helm",
|
||||
Namespaced: true,
|
||||
Verbs: []string{"delete"},
|
||||
Verbs: []string{verbDelete},
|
||||
Categories: []string{helmCat},
|
||||
}
|
||||
m[client.HmhGVR] = &metav1.APIResource{
|
||||
Name: "history",
|
||||
Kind: "History",
|
||||
Namespaced: true,
|
||||
Verbs: []string{"delete"},
|
||||
Verbs: []string{verbDelete},
|
||||
Categories: []string{helmCat},
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ import (
|
||||
var defaultAliasHeader = model1.Header{
|
||||
model1.HeaderColumn{Name: "RESOURCE"},
|
||||
model1.HeaderColumn{Name: "GROUP"},
|
||||
model1.HeaderColumn{Name: "VERSION"},
|
||||
model1.HeaderColumn{Name: colVersion},
|
||||
model1.HeaderColumn{Name: "COMMAND"},
|
||||
}
|
||||
|
||||
|
||||
@@ -47,16 +47,16 @@ func (Benchmark) ColorerFunc() model1.ColorerFunc {
|
||||
// Header returns a header row.
|
||||
func (Benchmark) Header(string) model1.Header {
|
||||
return model1.Header{
|
||||
model1.HeaderColumn{Name: "NAMESPACE"},
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: "STATUS"},
|
||||
model1.HeaderColumn{Name: colNamespace},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: colStatus},
|
||||
model1.HeaderColumn{Name: "TIME"},
|
||||
model1.HeaderColumn{Name: "REQ/S", Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: "2XX", Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: "4XX/5XX", Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: "REPORT"},
|
||||
model1.HeaderColumn{Name: "VALID", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: colValid, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}},
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -25,11 +25,11 @@ func (m ConfigMap) Header(_ string) model1.Header {
|
||||
}
|
||||
|
||||
var defaultCMHeader = model1.Header{
|
||||
model1.HeaderColumn{Name: "NAMESPACE"},
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: colNamespace},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: "DATA"},
|
||||
model1.HeaderColumn{Name: "VALID", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: colValid, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}},
|
||||
}
|
||||
|
||||
// Render renders a K8s resource to screen.
|
||||
|
||||
@@ -79,25 +79,25 @@ func (Container) Header(_ string) model1.Header {
|
||||
// Header returns a header row.
|
||||
var defaultCOHeader = model1.Header{
|
||||
model1.HeaderColumn{Name: "IDX"},
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: "PF"},
|
||||
model1.HeaderColumn{Name: "IMAGE"},
|
||||
model1.HeaderColumn{Name: "READY"},
|
||||
model1.HeaderColumn{Name: colReady},
|
||||
model1.HeaderColumn{Name: "STATE"},
|
||||
model1.HeaderColumn{Name: "RESTARTS", Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: "PROBES(L:R:S)"},
|
||||
model1.HeaderColumn{Name: "CPU", Attrs: model1.Attrs{Align: tview.AlignRight, MX: true}},
|
||||
model1.HeaderColumn{Name: colCPU, Attrs: model1.Attrs{Align: tview.AlignRight, MX: true}},
|
||||
model1.HeaderColumn{Name: "CPU/RL", Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: "%CPU/R", Attrs: model1.Attrs{Align: tview.AlignRight, MX: true}},
|
||||
model1.HeaderColumn{Name: "%CPU/L", Attrs: model1.Attrs{Align: tview.AlignRight, MX: true}},
|
||||
model1.HeaderColumn{Name: "MEM", Attrs: model1.Attrs{Align: tview.AlignRight, MX: true}},
|
||||
model1.HeaderColumn{Name: colMEM, Attrs: model1.Attrs{Align: tview.AlignRight, MX: true}},
|
||||
model1.HeaderColumn{Name: "MEM/RL", Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: "%MEM/R", Attrs: model1.Attrs{Align: tview.AlignRight, MX: true}},
|
||||
model1.HeaderColumn{Name: "%MEM/L", Attrs: model1.Attrs{Align: tview.AlignRight, MX: true}},
|
||||
model1.HeaderColumn{Name: "GPU/RL", Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: "PORTS"},
|
||||
model1.HeaderColumn{Name: "VALID", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: colPorts},
|
||||
model1.HeaderColumn{Name: colValid, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}},
|
||||
}
|
||||
|
||||
// Render renders a K8s resource to screen.
|
||||
|
||||
@@ -36,10 +36,10 @@ func (Context) ColorerFunc() model1.ColorerFunc {
|
||||
// Header returns a header row.
|
||||
func (Context) Header(string) model1.Header {
|
||||
return model1.Header{
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: "CLUSTER"},
|
||||
model1.HeaderColumn{Name: "AUTHINFO"},
|
||||
model1.HeaderColumn{Name: "NAMESPACE"},
|
||||
model1.HeaderColumn{Name: colNamespace},
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -25,9 +25,9 @@ func (c ClusterRole) Header(_ string) model1.Header {
|
||||
|
||||
// Header returns a header rbw.
|
||||
var defaultCRHeader = model1.Header{
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: "LABELS", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: colLabels, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}},
|
||||
}
|
||||
|
||||
// Render renders a K8s resource to screen.
|
||||
|
||||
@@ -14,12 +14,12 @@ import (
|
||||
)
|
||||
|
||||
var defaultCRBHeader = model1.Header{
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: "CLUSTERROLE"},
|
||||
model1.HeaderColumn{Name: "SUBJECT-KIND"},
|
||||
model1.HeaderColumn{Name: "SUBJECTS"},
|
||||
model1.HeaderColumn{Name: "LABELS", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: colLabels, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}},
|
||||
}
|
||||
|
||||
// ClusterRoleBinding renders a K8s ClusterRoleBinding to screen.
|
||||
|
||||
@@ -18,15 +18,15 @@ import (
|
||||
)
|
||||
|
||||
var defaultCRDHeader = model1.Header{
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: "GROUP"},
|
||||
model1.HeaderColumn{Name: "KIND"},
|
||||
model1.HeaderColumn{Name: colKind},
|
||||
model1.HeaderColumn{Name: "VERSIONS"},
|
||||
model1.HeaderColumn{Name: "SCOPE"},
|
||||
model1.HeaderColumn{Name: "ALIASES", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "LABELS", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "VALID", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: colLabels, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colValid, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}},
|
||||
}
|
||||
|
||||
// CustomResourceDefinition renders a K8s CustomResourceDefinition to screen.
|
||||
|
||||
@@ -17,19 +17,19 @@ import (
|
||||
)
|
||||
|
||||
var defaultCJHeader = model1.Header{
|
||||
model1.HeaderColumn{Name: "NAMESPACE"},
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: "VS", Attrs: model1.Attrs{VS: true}},
|
||||
model1.HeaderColumn{Name: colNamespace},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: colVS, Attrs: model1.Attrs{VS: true}},
|
||||
model1.HeaderColumn{Name: "SCHEDULE"},
|
||||
model1.HeaderColumn{Name: "SUSPEND"},
|
||||
model1.HeaderColumn{Name: "ACTIVE"},
|
||||
model1.HeaderColumn{Name: "LAST_SCHEDULE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: "SELECTOR", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "CONTAINERS", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "IMAGES", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "LABELS", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "VALID", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: colSelector, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colContainers, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colImages, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colLabels, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colValid, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}},
|
||||
}
|
||||
|
||||
// CronJob renders a K8s CronJob to screen.
|
||||
|
||||
@@ -149,15 +149,16 @@ func hydrate(o runtime.Object, cc ColumnSpecs, parsers []*jsonpath.JSONPath, rh
|
||||
if idx >= len(cc) {
|
||||
continue
|
||||
}
|
||||
spec := cc[idx]
|
||||
parser := parsers[idx]
|
||||
if parser == nil {
|
||||
ix, ok := rh.IndexOf(cc[idx].Header.Name, true)
|
||||
ix, ok := rh.IndexOf(spec.Header.Name, true)
|
||||
if !ok {
|
||||
cols[idx] = RenderedCol{
|
||||
Header: cc[idx].Header,
|
||||
Header: spec.Header,
|
||||
Value: NAValue,
|
||||
}
|
||||
slog.Warn("Unable to find custom column", slogs.Name, cc[idx].Header.Name)
|
||||
slog.Warn("Unable to find custom column", slogs.Name, spec.Header.Name)
|
||||
continue
|
||||
}
|
||||
var v string
|
||||
@@ -175,7 +176,7 @@ func hydrate(o runtime.Object, cc ColumnSpecs, parsers []*jsonpath.JSONPath, rh
|
||||
|
||||
if o == nil {
|
||||
cols[idx] = RenderedCol{
|
||||
Header: cc[idx].Header,
|
||||
Header: spec.Header,
|
||||
Value: NAValue,
|
||||
}
|
||||
continue
|
||||
@@ -186,9 +187,9 @@ func hydrate(o runtime.Object, cc ColumnSpecs, parsers []*jsonpath.JSONPath, rh
|
||||
err error
|
||||
)
|
||||
if unstructured, ok := o.(runtime.Unstructured); ok {
|
||||
if vals, ok := jqParse(cc[idx].Spec, unstructured.UnstructuredContent()); ok {
|
||||
if vals, ok := jqParse(spec.Spec, unstructured.UnstructuredContent()); ok {
|
||||
cols[idx] = RenderedCol{
|
||||
Header: cc[idx].Header,
|
||||
Header: spec.Header,
|
||||
Value: vals,
|
||||
}
|
||||
continue
|
||||
@@ -196,9 +197,9 @@ func hydrate(o runtime.Object, cc ColumnSpecs, parsers []*jsonpath.JSONPath, rh
|
||||
vals, err = parser.FindResults(unstructured.UnstructuredContent())
|
||||
} else {
|
||||
rv := reflect.ValueOf(o)
|
||||
if !rv.IsValid() || (rv.Kind() == reflect.Ptr && rv.IsNil()) {
|
||||
if !rv.IsValid() || (rv.Kind() == reflect.Pointer && rv.IsNil()) {
|
||||
cols[idx] = RenderedCol{
|
||||
Header: cc[idx].Header,
|
||||
Header: spec.Header,
|
||||
Value: NAValue,
|
||||
}
|
||||
continue
|
||||
@@ -206,9 +207,9 @@ func hydrate(o runtime.Object, cc ColumnSpecs, parsers []*jsonpath.JSONPath, rh
|
||||
vals, err = parser.FindResults(rv.Elem().Interface())
|
||||
}
|
||||
if err != nil {
|
||||
rerr = errors.Join(rerr, fmt.Errorf("%w: %q: %w", model1.ErrCustomColumn, cc[idx].Header.Name, err))
|
||||
rerr = errors.Join(rerr, fmt.Errorf("%w: %q: %w", model1.ErrCustomColumn, spec.Header.Name, err))
|
||||
cols[idx] = RenderedCol{
|
||||
Header: cc[idx].Header,
|
||||
Header: spec.Header,
|
||||
Value: MissingValue,
|
||||
}
|
||||
continue
|
||||
@@ -219,11 +220,11 @@ func hydrate(o runtime.Object, cc ColumnSpecs, parsers []*jsonpath.JSONPath, rh
|
||||
}
|
||||
for i := range vals {
|
||||
for j := range vals[i] {
|
||||
values = append(values, formatColValue(cc[idx].Header, vals[i][j].Interface()))
|
||||
values = append(values, formatColValue(spec.Header, vals[i][j].Interface()))
|
||||
}
|
||||
}
|
||||
cols[idx] = RenderedCol{
|
||||
Header: cc[idx].Header,
|
||||
Header: spec.Header,
|
||||
Value: strings.Join(values, ","),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ func (Dir) SetViewSetting(*config.ViewSetting) {}
|
||||
// Header returns a header row.
|
||||
func (Dir) Header(string) model1.Header {
|
||||
return model1.Header{
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -18,15 +18,15 @@ import (
|
||||
)
|
||||
|
||||
var defaultDPHeader = model1.Header{
|
||||
model1.HeaderColumn{Name: "NAMESPACE"},
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: "VS", Attrs: model1.Attrs{VS: true}},
|
||||
model1.HeaderColumn{Name: "READY", Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: colNamespace},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: colVS, Attrs: model1.Attrs{VS: true}},
|
||||
model1.HeaderColumn{Name: colReady, Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: "UP-TO-DATE", Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: "AVAILABLE", Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: "LABELS", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "VALID", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: colLabels, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colValid, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}},
|
||||
}
|
||||
|
||||
// Deployment renders a K8s Deployment to screen.
|
||||
|
||||
@@ -16,17 +16,17 @@ import (
|
||||
)
|
||||
|
||||
var defaultDSHeader = model1.Header{
|
||||
model1.HeaderColumn{Name: "NAMESPACE"},
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: "VS", Attrs: model1.Attrs{VS: true}},
|
||||
model1.HeaderColumn{Name: "DESIRED", Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: "CURRENT", Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: "READY", Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: colNamespace},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: colVS, Attrs: model1.Attrs{VS: true}},
|
||||
model1.HeaderColumn{Name: colDesired, Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: colCurrent, Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: colReady, Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: "UP-TO-DATE", Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: "AVAILABLE", Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: "LABELS", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "VALID", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: colLabels, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colValid, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}},
|
||||
}
|
||||
|
||||
// DaemonSet renders a K8s DaemonSet to screen.
|
||||
|
||||
@@ -16,10 +16,10 @@ import (
|
||||
)
|
||||
|
||||
var defaultEPHeader = model1.Header{
|
||||
model1.HeaderColumn{Name: "NAMESPACE"},
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: colNamespace},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: "ENDPOINTS"},
|
||||
model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}},
|
||||
}
|
||||
|
||||
// Endpoints renders a K8s Endpoints to screen.
|
||||
|
||||
@@ -16,12 +16,12 @@ import (
|
||||
)
|
||||
|
||||
var defaultEPsHeader = model1.Header{
|
||||
model1.HeaderColumn{Name: "NAMESPACE"},
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: colNamespace},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: "ADDRESSTYPE"},
|
||||
model1.HeaderColumn{Name: "PORTS"},
|
||||
model1.HeaderColumn{Name: colPorts},
|
||||
model1.HeaderColumn{Name: "ENDPOINTS"},
|
||||
model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}},
|
||||
}
|
||||
|
||||
// EndpointSlice renders a K8s EndpointSlice to screen.
|
||||
|
||||
@@ -12,10 +12,10 @@ import (
|
||||
)
|
||||
|
||||
var defaultGENHeader = model1.Header{
|
||||
model1.HeaderColumn{Name: "NAMESPACE"},
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: "VALID", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: colNamespace},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: colValid, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}},
|
||||
}
|
||||
|
||||
// Generic renders a K8s generic resource to screen.
|
||||
|
||||
@@ -60,9 +60,9 @@ func (ImageScan) Header(string) model1.Header {
|
||||
model1.HeaderColumn{Name: "VULNERABILITY"},
|
||||
model1.HeaderColumn{Name: "IMAGE"},
|
||||
model1.HeaderColumn{Name: "LIBRARY"},
|
||||
model1.HeaderColumn{Name: "VERSION"},
|
||||
model1.HeaderColumn{Name: colVersion},
|
||||
model1.HeaderColumn{Name: "FIXED-IN"},
|
||||
model1.HeaderColumn{Name: "TYPE"},
|
||||
model1.HeaderColumn{Name: colType},
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -18,16 +18,16 @@ import (
|
||||
)
|
||||
|
||||
var defaultJOBHeader = model1.Header{
|
||||
model1.HeaderColumn{Name: "NAMESPACE"},
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: "VS", Attrs: model1.Attrs{VS: true}},
|
||||
model1.HeaderColumn{Name: colNamespace},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: colVS, Attrs: model1.Attrs{VS: true}},
|
||||
model1.HeaderColumn{Name: "COMPLETIONS"},
|
||||
model1.HeaderColumn{Name: "DURATION", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: "SELECTOR", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "CONTAINERS", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "IMAGES", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "VALID", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: colSelector, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colContainers, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colImages, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colValid, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}},
|
||||
}
|
||||
|
||||
// Job renders a K8s Job to screen.
|
||||
|
||||
@@ -37,30 +37,30 @@ var (
|
||||
)
|
||||
|
||||
var defaultNOHeader = model1.Header{
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: "STATUS"},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: colStatus},
|
||||
model1.HeaderColumn{Name: "ROLE"},
|
||||
model1.HeaderColumn{Name: "ARCH", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "TAINTS"},
|
||||
model1.HeaderColumn{Name: "VERSION"},
|
||||
model1.HeaderColumn{Name: colVersion},
|
||||
model1.HeaderColumn{Name: "OS-IMAGE", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "KERNEL", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "INTERNAL-IP", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "EXTERNAL-IP", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "PODS", Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: "CPU", Attrs: model1.Attrs{Align: tview.AlignRight, MX: true}},
|
||||
model1.HeaderColumn{Name: colCPU, Attrs: model1.Attrs{Align: tview.AlignRight, MX: true}},
|
||||
model1.HeaderColumn{Name: "CPU/A", Attrs: model1.Attrs{Align: tview.AlignRight, MX: true}},
|
||||
model1.HeaderColumn{Name: "%CPU", Attrs: model1.Attrs{Align: tview.AlignRight, MX: true}},
|
||||
model1.HeaderColumn{Name: "MEM", Attrs: model1.Attrs{Align: tview.AlignRight, MX: true}},
|
||||
model1.HeaderColumn{Name: colMEM, Attrs: model1.Attrs{Align: tview.AlignRight, MX: true}},
|
||||
model1.HeaderColumn{Name: "MEM/A", Attrs: model1.Attrs{Align: tview.AlignRight, MX: true}},
|
||||
model1.HeaderColumn{Name: "%MEM", Attrs: model1.Attrs{Align: tview.AlignRight, MX: true}},
|
||||
model1.HeaderColumn{Name: "GPU/A", Attrs: model1.Attrs{Align: tview.AlignRight, MX: true}},
|
||||
model1.HeaderColumn{Name: "GPU/C", Attrs: model1.Attrs{Align: tview.AlignRight, MX: true}},
|
||||
model1.HeaderColumn{Name: "SH-GPU/A", Attrs: model1.Attrs{Align: tview.AlignRight, MX: true}},
|
||||
model1.HeaderColumn{Name: "SH-GPU/C", Attrs: model1.Attrs{Align: tview.AlignRight, MX: true}},
|
||||
model1.HeaderColumn{Name: "LABELS", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "VALID", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: colLabels, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colValid, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}},
|
||||
}
|
||||
|
||||
// Node renders a K8s Node to screen.
|
||||
|
||||
@@ -16,8 +16,8 @@ import (
|
||||
)
|
||||
|
||||
var defaultNPHeader = model1.Header{
|
||||
model1.HeaderColumn{Name: "NAMESPACE"},
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: colNamespace},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: "POD-SELECTOR"},
|
||||
model1.HeaderColumn{Name: "ING-SELECTOR", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "ING-PORTS", Attrs: model1.Attrs{Wide: true}},
|
||||
@@ -25,9 +25,9 @@ var defaultNPHeader = model1.Header{
|
||||
model1.HeaderColumn{Name: "EGR-SELECTOR", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "EGR-PORTS", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "EGR-BLOCK", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "LABELS", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "VALID", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: colLabels, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colValid, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}},
|
||||
}
|
||||
|
||||
// NetworkPolicy renders a K8s NetworkPolicy to screen.
|
||||
|
||||
@@ -20,11 +20,11 @@ import (
|
||||
)
|
||||
|
||||
var defaultNSHeader = model1.Header{
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: "STATUS"},
|
||||
model1.HeaderColumn{Name: "LABELS", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "VALID", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: colStatus},
|
||||
model1.HeaderColumn{Name: colLabels, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colValid, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}},
|
||||
}
|
||||
|
||||
// Namespace renders a K8s Namespace to screen.
|
||||
|
||||
@@ -17,17 +17,17 @@ import (
|
||||
)
|
||||
|
||||
var defaultPDBHeader = model1.Header{
|
||||
model1.HeaderColumn{Name: "NAMESPACE"},
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: colNamespace},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: "MIN-AVAILABLE", Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: "MAX-UNAVAILABLE", Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: "ALLOWED-DISRUPTIONS", Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: "CURRENT", Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: "DESIRED", Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: colCurrent, Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: colDesired, Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: "EXPECTED", Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: "LABELS", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "VALID", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: colLabels, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colValid, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}},
|
||||
}
|
||||
|
||||
// PodDisruptionBudget renders a K8s PodDisruptionBudget to screen.
|
||||
|
||||
+10
-10
@@ -52,19 +52,19 @@ const (
|
||||
)
|
||||
|
||||
var defaultPodHeader = model1.Header{
|
||||
model1.HeaderColumn{Name: "NAMESPACE"},
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: "VS", Attrs: model1.Attrs{VS: true}},
|
||||
model1.HeaderColumn{Name: colNamespace},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: colVS, Attrs: model1.Attrs{VS: true}},
|
||||
model1.HeaderColumn{Name: "PF"},
|
||||
model1.HeaderColumn{Name: "READY"},
|
||||
model1.HeaderColumn{Name: "STATUS"},
|
||||
model1.HeaderColumn{Name: colReady},
|
||||
model1.HeaderColumn{Name: colStatus},
|
||||
model1.HeaderColumn{Name: "RESTARTS", Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: "LAST RESTART", Attrs: model1.Attrs{Align: tview.AlignRight, Time: true, Wide: true}},
|
||||
model1.HeaderColumn{Name: "CPU", Attrs: model1.Attrs{Align: tview.AlignRight, MX: true}},
|
||||
model1.HeaderColumn{Name: colCPU, Attrs: model1.Attrs{Align: tview.AlignRight, MX: true}},
|
||||
model1.HeaderColumn{Name: "CPU/RL", Attrs: model1.Attrs{Align: tview.AlignRight, Wide: true}},
|
||||
model1.HeaderColumn{Name: "%CPU/R", Attrs: model1.Attrs{Align: tview.AlignRight, MX: true}},
|
||||
model1.HeaderColumn{Name: "%CPU/L", Attrs: model1.Attrs{Align: tview.AlignRight, MX: true}},
|
||||
model1.HeaderColumn{Name: "MEM", Attrs: model1.Attrs{Align: tview.AlignRight, MX: true}},
|
||||
model1.HeaderColumn{Name: colMEM, Attrs: model1.Attrs{Align: tview.AlignRight, MX: true}},
|
||||
model1.HeaderColumn{Name: "MEM/RL", Attrs: model1.Attrs{Align: tview.AlignRight, Wide: true}},
|
||||
model1.HeaderColumn{Name: "%MEM/R", Attrs: model1.Attrs{Align: tview.AlignRight, MX: true}},
|
||||
model1.HeaderColumn{Name: "%MEM/L", Attrs: model1.Attrs{Align: tview.AlignRight, MX: true}},
|
||||
@@ -75,9 +75,9 @@ var defaultPodHeader = model1.Header{
|
||||
model1.HeaderColumn{Name: "NOMINATED NODE", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "READINESS GATES", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "QOS", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "LABELS", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "VALID", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: colLabels, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colValid, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}},
|
||||
}
|
||||
|
||||
// Pod renders a K8s Pod to screen.
|
||||
|
||||
@@ -45,13 +45,13 @@ func (Policy) ColorerFunc() model1.ColorerFunc {
|
||||
// Header returns a header row.
|
||||
func (Policy) Header(string) model1.Header {
|
||||
h := model1.Header{
|
||||
model1.HeaderColumn{Name: "NAMESPACE"},
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: colNamespace},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: "API-GROUP"},
|
||||
model1.HeaderColumn{Name: "BINDING"},
|
||||
}
|
||||
h = append(h, rbacVerbHeader()...)
|
||||
h = append(h, model1.HeaderColumn{Name: "VALID", Attrs: model1.Attrs{Wide: true}})
|
||||
h = append(h, model1.HeaderColumn{Name: colValid, Attrs: model1.Attrs{Wide: true}})
|
||||
|
||||
return h
|
||||
}
|
||||
|
||||
@@ -52,15 +52,15 @@ func (PortForward) ColorerFunc() model1.ColorerFunc {
|
||||
// Header returns a header row.
|
||||
func (PortForward) Header(string) model1.Header {
|
||||
return model1.Header{
|
||||
model1.HeaderColumn{Name: "NAMESPACE"},
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: colNamespace},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: "CONTAINER"},
|
||||
model1.HeaderColumn{Name: "PORTS"},
|
||||
model1.HeaderColumn{Name: colPorts},
|
||||
model1.HeaderColumn{Name: "URL"},
|
||||
model1.HeaderColumn{Name: "C"},
|
||||
model1.HeaderColumn{Name: "N"},
|
||||
model1.HeaderColumn{Name: "VALID", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: colValid, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}},
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -53,18 +53,18 @@ func (p PersistentVolume) Header(_ string) model1.Header {
|
||||
}
|
||||
|
||||
var defaultPVHeader = model1.Header{
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: "CAPACITY", Attrs: model1.Attrs{Capacity: true}},
|
||||
model1.HeaderColumn{Name: "ACCESS MODES"},
|
||||
model1.HeaderColumn{Name: "RECLAIM POLICY"},
|
||||
model1.HeaderColumn{Name: "STATUS"},
|
||||
model1.HeaderColumn{Name: colStatus},
|
||||
model1.HeaderColumn{Name: "CLAIM"},
|
||||
model1.HeaderColumn{Name: "STORAGECLASS"},
|
||||
model1.HeaderColumn{Name: "REASON"},
|
||||
model1.HeaderColumn{Name: "VOLUMEMODE", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "LABELS", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "VALID", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: colLabels, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colValid, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}},
|
||||
}
|
||||
|
||||
// Render renders a K8s resource to screen.
|
||||
|
||||
@@ -14,16 +14,16 @@ import (
|
||||
)
|
||||
|
||||
var defaultPVCHeader = model1.Header{
|
||||
model1.HeaderColumn{Name: "NAMESPACE"},
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: "STATUS"},
|
||||
model1.HeaderColumn{Name: colNamespace},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: colStatus},
|
||||
model1.HeaderColumn{Name: "VOLUME"},
|
||||
model1.HeaderColumn{Name: "CAPACITY", Attrs: model1.Attrs{Capacity: true}},
|
||||
model1.HeaderColumn{Name: "ACCESS MODES"},
|
||||
model1.HeaderColumn{Name: "STORAGECLASS"},
|
||||
model1.HeaderColumn{Name: "LABELS", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "VALID", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: colLabels, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colValid, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}},
|
||||
}
|
||||
|
||||
// PersistentVolumeClaim renders a K8s PersistentVolumeClaim to screen.
|
||||
|
||||
@@ -46,12 +46,12 @@ func (Rbac) ColorerFunc() model1.ColorerFunc {
|
||||
func (Rbac) Header(string) model1.Header {
|
||||
h := make(model1.Header, 0, 10)
|
||||
h = append(h,
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: "API-GROUP"},
|
||||
)
|
||||
h = append(h, rbacVerbHeader()...)
|
||||
|
||||
return append(h, model1.HeaderColumn{Name: "VALID", Attrs: model1.Attrs{Wide: true}})
|
||||
return append(h, model1.HeaderColumn{Name: colValid, Attrs: model1.Attrs{Wide: true}})
|
||||
}
|
||||
|
||||
// Render renders a K8s resource to screen.
|
||||
|
||||
@@ -28,8 +28,8 @@ func (Reference) ColorerFunc() model1.ColorerFunc {
|
||||
// Header returns a header row.
|
||||
func (Reference) Header(string) model1.Header {
|
||||
return model1.Header{
|
||||
model1.HeaderColumn{Name: "NAMESPACE"},
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: colNamespace},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: "GVR"},
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,11 +24,11 @@ func (r Role) Header(_ string) model1.Header {
|
||||
}
|
||||
|
||||
var defaultROHeader = model1.Header{
|
||||
model1.HeaderColumn{Name: "NAMESPACE"},
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: "LABELS", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "VALID", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: colNamespace},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: colLabels, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colValid, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}},
|
||||
}
|
||||
|
||||
// Render renders a K8s resource to screen.
|
||||
|
||||
@@ -15,14 +15,14 @@ import (
|
||||
)
|
||||
|
||||
var defaultROBHeader = model1.Header{
|
||||
model1.HeaderColumn{Name: "NAMESPACE"},
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: colNamespace},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: "ROLE"},
|
||||
model1.HeaderColumn{Name: "KIND"},
|
||||
model1.HeaderColumn{Name: colKind},
|
||||
model1.HeaderColumn{Name: "SUBJECTS"},
|
||||
model1.HeaderColumn{Name: "LABELS", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "VALID", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: colLabels, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colValid, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}},
|
||||
}
|
||||
|
||||
// RoleBinding renders a K8s RoleBinding to screen.
|
||||
|
||||
+11
-11
@@ -32,17 +32,17 @@ func (r ReplicaSet) Header(_ string) model1.Header {
|
||||
}
|
||||
|
||||
var defaultRSHeader = model1.Header{
|
||||
model1.HeaderColumn{Name: "NAMESPACE"},
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: "VS", Attrs: model1.Attrs{VS: true}},
|
||||
model1.HeaderColumn{Name: "DESIRED", Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: "CURRENT", Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: "READY", Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: "CONTAINERS", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "IMAGES", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "SELECTOR", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "VALID", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: colNamespace},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: colVS, Attrs: model1.Attrs{VS: true}},
|
||||
model1.HeaderColumn{Name: colDesired, Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: colCurrent, Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: colReady, Attrs: model1.Attrs{Align: tview.AlignRight}},
|
||||
model1.HeaderColumn{Name: colContainers, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colImages, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colSelector, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colValid, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}},
|
||||
}
|
||||
|
||||
// Render renders a K8s resource to screen.
|
||||
|
||||
@@ -15,12 +15,12 @@ import (
|
||||
)
|
||||
|
||||
var defaultSAHeader = model1.Header{
|
||||
model1.HeaderColumn{Name: "NAMESPACE"},
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: colNamespace},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: "SECRET"},
|
||||
model1.HeaderColumn{Name: "LABELS", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "VALID", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: colLabels, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colValid, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}},
|
||||
}
|
||||
|
||||
// ServiceAccount renders a K8s ServiceAccount to screen.
|
||||
|
||||
@@ -16,14 +16,14 @@ import (
|
||||
)
|
||||
|
||||
var defaultSCHeader = model1.Header{
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: "PROVISIONER"},
|
||||
model1.HeaderColumn{Name: "RECLAIMPOLICY"},
|
||||
model1.HeaderColumn{Name: "VOLUMEBINDINGMODE"},
|
||||
model1.HeaderColumn{Name: "ALLOWVOLUMEEXPANSION"},
|
||||
model1.HeaderColumn{Name: "LABELS", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "VALID", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: colLabels, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colValid, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}},
|
||||
}
|
||||
|
||||
// StorageClass renders a K8s StorageClass to screen.
|
||||
|
||||
@@ -31,10 +31,10 @@ func (ScreenDump) ColorerFunc() model1.ColorerFunc {
|
||||
// Header returns a header row.
|
||||
func (ScreenDump) Header(string) model1.Header {
|
||||
return model1.Header{
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: "DIR"},
|
||||
model1.HeaderColumn{Name: "VALID", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: colValid, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}},
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -15,12 +15,12 @@ import (
|
||||
)
|
||||
|
||||
var defaultSECHeader = model1.Header{
|
||||
model1.HeaderColumn{Name: "NAMESPACE"},
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: "TYPE"},
|
||||
model1.HeaderColumn{Name: colNamespace},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: colType},
|
||||
model1.HeaderColumn{Name: "DATA"},
|
||||
model1.HeaderColumn{Name: "VALID", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: colValid, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}},
|
||||
}
|
||||
|
||||
// Secret renders a K8s Secret to screen.
|
||||
|
||||
+10
-10
@@ -15,17 +15,17 @@ import (
|
||||
)
|
||||
|
||||
var defaultSTSHeader = model1.Header{
|
||||
model1.HeaderColumn{Name: "NAMESPACE"},
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: "VS", Attrs: model1.Attrs{VS: true}},
|
||||
model1.HeaderColumn{Name: "READY"},
|
||||
model1.HeaderColumn{Name: "SELECTOR", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colNamespace},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: colVS, Attrs: model1.Attrs{VS: true}},
|
||||
model1.HeaderColumn{Name: colReady},
|
||||
model1.HeaderColumn{Name: colSelector, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "SERVICE"},
|
||||
model1.HeaderColumn{Name: "CONTAINERS", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "IMAGES", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "LABELS", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "VALID", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: colContainers, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colImages, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colLabels, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colValid, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}},
|
||||
}
|
||||
|
||||
// StatefulSet renders a K8s StatefulSet to screen.
|
||||
|
||||
@@ -27,10 +27,10 @@ func (Subject) ColorerFunc() model1.ColorerFunc {
|
||||
// Header returns a header row.
|
||||
func (Subject) Header(string) model1.Header {
|
||||
return model1.Header{
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: "KIND"},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: colKind},
|
||||
model1.HeaderColumn{Name: "FIRST LOCATION"},
|
||||
model1.HeaderColumn{Name: "VALID", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colValid, Attrs: model1.Attrs{Wide: true}},
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -18,16 +18,16 @@ import (
|
||||
|
||||
// Header returns a header row.
|
||||
var defaultSVCHeader = model1.Header{
|
||||
model1.HeaderColumn{Name: "NAMESPACE"},
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: "TYPE"},
|
||||
model1.HeaderColumn{Name: colNamespace},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: colType},
|
||||
model1.HeaderColumn{Name: "CLUSTER-IP"},
|
||||
model1.HeaderColumn{Name: "EXTERNAL-IP"},
|
||||
model1.HeaderColumn{Name: "SELECTOR", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "PORTS", Attrs: model1.Attrs{Wide: false}},
|
||||
model1.HeaderColumn{Name: "LABELS", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "VALID", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: colSelector, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colPorts, Attrs: model1.Attrs{Wide: false}},
|
||||
model1.HeaderColumn{Name: colLabels, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colValid, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}},
|
||||
}
|
||||
|
||||
// Service renders a K8s Service to screen.
|
||||
|
||||
@@ -77,7 +77,7 @@ func (t *Table) defaultHeader() model1.Header {
|
||||
h = append(h, model1.HeaderColumn{Name: strings.ToUpper(c.Name), Attrs: model1.Attrs{Time: timeCol, Wide: c.Priority > 0}})
|
||||
}
|
||||
if t.getAgeIndex() > 0 {
|
||||
h = append(h, model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}})
|
||||
h = append(h, model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}})
|
||||
}
|
||||
|
||||
return h
|
||||
|
||||
@@ -50,3 +50,26 @@ const (
|
||||
// ZeroValue represents a zero value.
|
||||
ZeroValue = "0"
|
||||
)
|
||||
|
||||
// Common header column names shared across resource renderers.
|
||||
const (
|
||||
colNamespace = "NAMESPACE"
|
||||
colName = "NAME"
|
||||
colAge = "AGE"
|
||||
colStatus = "STATUS"
|
||||
colValid = "VALID"
|
||||
colReady = "READY"
|
||||
colCPU = "CPU"
|
||||
colMEM = "MEM"
|
||||
colLabels = "LABELS"
|
||||
colType = "TYPE"
|
||||
colKind = "KIND"
|
||||
colPorts = "PORTS"
|
||||
colSelector = "SELECTOR"
|
||||
colContainers = "CONTAINERS"
|
||||
colImages = "IMAGES"
|
||||
colDesired = "DESIRED"
|
||||
colCurrent = "CURRENT"
|
||||
colVS = "VS"
|
||||
colVersion = "VERSION"
|
||||
)
|
||||
|
||||
@@ -15,13 +15,13 @@ import (
|
||||
)
|
||||
|
||||
var defaultWKHeader = model1.Header{
|
||||
model1.HeaderColumn{Name: "KIND"},
|
||||
model1.HeaderColumn{Name: "NAMESPACE"},
|
||||
model1.HeaderColumn{Name: "NAME"},
|
||||
model1.HeaderColumn{Name: "STATUS"},
|
||||
model1.HeaderColumn{Name: "READY"},
|
||||
model1.HeaderColumn{Name: "VALID", Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: "AGE", Attrs: model1.Attrs{Time: true}},
|
||||
model1.HeaderColumn{Name: colKind},
|
||||
model1.HeaderColumn{Name: colNamespace},
|
||||
model1.HeaderColumn{Name: colName},
|
||||
model1.HeaderColumn{Name: colStatus},
|
||||
model1.HeaderColumn{Name: colReady},
|
||||
model1.HeaderColumn{Name: colValid, Attrs: model1.Attrs{Wide: true}},
|
||||
model1.HeaderColumn{Name: colAge, Attrs: model1.Attrs{Time: true}},
|
||||
}
|
||||
|
||||
// Workload renders a workload to screen.
|
||||
|
||||
Reference in New Issue
Block a user