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:
Ümüt Özalp
2026-09-14 15:04:24 -06:00
committed by GitHub
parent b091d31a01
commit 7e31b293d6
49 changed files with 335 additions and 288 deletions
+1 -1
View File
@@ -21,4 +21,4 @@ jobs:
uses: golangci/[email protected]
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
version: v2.6
version: v2.13
+6
View File
@@ -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
+4
View File
@@ -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
View File
@@ -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
View File
@@ -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,
}
}
+1 -1
View File
@@ -99,6 +99,6 @@ func (t *Threshold) SeverityColor(k string, v int) string {
case SeverityMedium:
return "orangered"
default:
return "green"
return colorGreen
}
}
+7 -5
View File
@@ -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},
}
}
+1 -1
View File
@@ -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"},
}
+5 -5
View File
@@ -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}},
}
}
+4 -4
View File
@@ -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.
+7 -7
View File
@@ -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.
+2 -2
View File
@@ -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},
}
}
+3 -3
View File
@@ -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.
+3 -3
View File
@@ -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.
+5 -5
View File
@@ -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.
+9 -9
View File
@@ -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.
+13 -12
View File
@@ -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, ","),
}
}
+1 -1
View File
@@ -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},
}
}
+7 -7
View File
@@ -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.
+9 -9
View File
@@ -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.
+3 -3
View File
@@ -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.
+4 -4
View File
@@ -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.
+4 -4
View File
@@ -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.
+2 -2
View File
@@ -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},
}
}
+8 -8
View File
@@ -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.
+8 -8
View File
@@ -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.
+5 -5
View File
@@ -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.
+5 -5
View File
@@ -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.
+7 -7
View File
@@ -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
View File
@@ -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.
+3 -3
View File
@@ -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
}
+5 -5
View File
@@ -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}},
}
}
+5 -5
View File
@@ -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.
+6 -6
View File
@@ -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.
+2 -2
View File
@@ -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.
+2 -2
View File
@@ -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"},
}
}
+5 -5
View File
@@ -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.
+6 -6
View File
@@ -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
View File
@@ -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.
+5 -5
View File
@@ -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.
+4 -4
View File
@@ -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.
+3 -3
View File
@@ -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}},
}
}
+5 -5
View File
@@ -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
View File
@@ -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.
+3 -3
View File
@@ -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}},
}
}
+8 -8
View File
@@ -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.
+1 -1
View File
@@ -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
+23
View File
@@ -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"
)
+7 -7
View File
@@ -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.