diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index bbc69f3a..4a65fcef 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -14,12 +14,12 @@ assignees: ''
-
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
+
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
@@ -32,9 +32,10 @@ A clear and concise description of what you expected to happen.
If applicable, add screenshots to help explain your problem.
**Versions (please complete the following information):**
- - OS: [e.g. OSX]
- - K9s: [e.g. 0.1.0]
- - K8s: [e.g. 1.11.0]
+
+- OS: [e.g. OSX]
+- K9s: [e.g. 0.1.0]
+- K8s: [e.g. 1.11.0]
**Additional context**
Add any other context about the problem here.
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
index 30d47509..39776014 100644
--- a/.github/ISSUE_TEMPLATE/feature_request.md
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -13,9 +13,8 @@ assignees: ''
-
**Is your feature request related to a problem? Please describe.**
-A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
+A clear and concise description of what the problem is.
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
new file mode 100644
index 00000000..ccfa529c
--- /dev/null
+++ b/.github/workflows/lint.yml
@@ -0,0 +1,24 @@
+name: K9s Lint
+
+on:
+ pull_request:
+ branches: [ main ]
+
+jobs:
+ golangci:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout Code
+ uses: actions/checkout@4.1.1
+
+ - name: Install Go
+ uses: actions/setup-go@v4.1.0
+ with:
+ go-version-file: go.mod
+ cache-dependency-path: go.sum
+
+ - name: Lint
+ uses: golangci/golangci-lint-action@3.7.0
+ with:
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+ reporter: github-pr-check
\ No newline at end of file
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 6133c176..823afddf 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -1,4 +1,4 @@
-name: K9s Checks
+name: K9s Test
on:
workflow_dispatch:
@@ -13,7 +13,7 @@ on:
- master
jobs:
build:
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4.1.1
diff --git a/.golangci.yml b/.golangci.yml
index a13a58d5..78a2a588 100644
--- a/.golangci.yml
+++ b/.golangci.yml
@@ -1,6 +1,3 @@
-# This file contains all available configuration options
-# with their default values.
-
# options for analysis running
run:
# default concurrency is a available CPU number
@@ -15,33 +12,17 @@ run:
# include test files or not, default is true
tests: true
- # list of build tags, all linters use it. Default is empty list.
- build-tags:
- - mytag
-
- # which dirs to skip: issues from them won't be reported;
- # can use regexp here: generated.*, regexp is applied on full path;
- # default value is empty list, but default dirs are skipped independently
- # from this option's value (see skip-dirs-use-default).
- # "/" will be replaced by current OS file path separator to properly work
- # on Windows.
- skip-dirs:
- - src/external_libs
- - autogenerated_by_my_lib
-
# default is true. Enables skipping of directories:
# vendor$, third_party$, testdata$, examples$, Godeps$, builtin$
skip-dirs-use-default: true
- # which files to skip: they will be analyzed, but issues from them
- # won't be reported. Default value is empty list, but there is
- # no need to include all autogenerated files, we confidently recognize
- # autogenerated files. If it's not please let us know.
- # "/" will be replaced by current OS file path separator to properly work
- # on Windows.
- skip-files:
- - ".*\\.my\\.go$"
- - lib/bad.go
+ # which dirs to skip: they won't be analyzed;
+ # can use regexp here: generated.*, regexp is applied on full path;
+ # default value is empty list, but next dirs are always skipped independently
+ # from this option's value:
+ # vendor$, third_party$, testdata$, examples$, Godeps$, builtin$
+ # skip-dirs:
+ # - ^test.*
# by default isn't set. If set we pass it to "go list -mod={option}". From "go help modules":
# If invoked with -mod=readonly, the go command is disallowed from the implicit
@@ -51,732 +32,97 @@ run:
# If invoked with -mod=vendor, the go command assumes that the vendor
# directory holds the correct copies of dependencies and ignores
# the dependency descriptions in go.mod.
- # modules-download-mode: readonly|vendor|mod
+ modules-download-mode: readonly
- # Allow multiple parallel golangci-lint instances running.
- # If false (default) - golangci-lint acquires file lock on start.
- allow-parallel-runners: false
-
-# output configuration options
-output:
- # colored-line-number|line-number|json|tab|checkstyle|code-climate|junit-xml|github-actions
- # default is "colored-line-number"
- format: colored-line-number
-
- # print lines of code with issue, default is true
- print-issued-lines: true
-
- # print linter name in the end of issue text, default is true
- print-linter-name: true
-
- # make issues output unique by line, default is true
- uniq-by-line: true
-
- # add a prefix to the output file references; default is no prefix
- path-prefix: ""
-
- # sorts results by: filepath, line and column
- sort-results: false
+ # which files to skip: they will be analyzed, but issues from them
+ # won't be reported. Default value is empty list, but there is
+ # no need to include all autogenerated files, we confidently recognize
+ # autogenerated files. If it's not please let us know.
+ skip-files:
+ # - ".*\\.my\\.go$"
+ # - lib/bad.go
# all available settings of specific linters
linters-settings:
- cyclop:
- # the maximal code complexity to report
- max-complexity: 20
- # the maximal average package complexity. If it's higher than 0.0 (float) the check is enabled (default 0.0)
- package-average: 0.0
- # should ignore tests (default false)
- skip-tests: false
-
- dogsled:
- # checks assignments with too many blank identifiers; default is 2
- max-blank-identifiers: 2
-
- dupl:
- # tokens count to trigger issue, 150 by default
- threshold: 100
-
- errcheck:
- # report about not checking of errors in type assertions: `a := b.(MyStruct)`;
- # default is false: such cases aren't reported by default.
- check-type-assertions: false
-
- # report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`;
- # default is false: such cases aren't reported by default.
- check-blank: false
-
- # [deprecated] comma-separated list of pairs of the form pkg:regex
- # the regex is used to ignore names within pkg. (default "fmt:.*").
- # see https://github.com/kisielk/errcheck#the-deprecated-method for details
- ignore: fmt:.*,io/ioutil:^Read.*
-
- # path to a file containing a list of functions to exclude from checking
- # see https://github.com/kisielk/errcheck#excluding-functions for details
- # exclude: /path/to/file.txt
-
- errorlint:
- # Check whether fmt.Errorf uses the %w verb for formatting errors. See the readme for caveats
- errorf: true
- # Check for plain type assertions and type switches
- asserts: true
- # Check for plain error comparisons
- comparison: true
-
- exhaustive:
- # check switch statements in generated files also
- check-generated: false
- # indicates that switch statements are to be considered exhaustive if a
- # 'default' case is present, even if all enum members aren't listed in the
- # switch
- default-signifies-exhaustive: false
-
- exhaustivestruct:
- # Struct Patterns is list of expressions to match struct packages and names
- # The struct packages have the form example.com/package.ExampleStruct
- # The matching patterns can use matching syntax from https://pkg.go.dev/path#Match
- # If this list is empty, all structs are tested.
- struct-patterns:
- - "*.Test"
- - "example.com/package.ExampleStruct"
-
- forbidigo:
- # Forbid the following identifiers (identifiers are written using regexp):
- forbid:
- - ^print.*$
- - 'fmt\.Print.*'
- # Exclude godoc examples from forbidigo checks. Default is true.
- exclude_godoc_examples: false
-
- funlen:
- lines: 100
- statements: 40
-
- gci:
- # put imports beginning with prefix after 3rd-party packages;
- # only support one prefix
- # if not set, use goimports.local-prefixes
- local-prefixes: github.com/org/project
-
- gocognit:
- # minimal code complexity to report, 30 by default (but we recommend 10-20)
- min-complexity: 10
-
- nestif:
- # minimal complexity of if statements to report, 5 by default
- min-complexity: 4
-
- goconst:
- # minimal length of string constant, 3 by default
- min-len: 3
- # minimal occurrences count to trigger, 3 by default
- min-occurrences: 3
-
- gocritic:
- # Which checks should be enabled; can't be combined with 'disabled-checks';
- # See https://go-critic.github.io/overview#checks-overview
- # To check which checks are enabled run `GL_DEBUG=gocritic golangci-lint run`
- # By default list of stable checks is used.
- # enabled-checks:
- # - rangeValCopy
-
- # Which checks should be disabled; can't be combined with 'enabled-checks'; default is empty
- disabled-checks:
- - regexpMust
-
- # Enable multiple checks by tags, run `GL_DEBUG=gocritic golangci-lint run` to see all tags and checks.
- # Empty list by default. See https://github.com/go-critic/go-critic#usage -> section "Tags".
- enabled-tags:
- - performance
- disabled-tags:
- - experimental
-
- # Settings passed to gocritic.
- # The settings key is the name of a supported gocritic checker.
- # The list of supported checkers can be find in https://go-critic.github.io/overview.
- settings:
- captLocal: # must be valid enabled check name
- # whether to restrict checker to params only (default true)
- paramsOnly: true
- elseif:
- # whether to skip balanced if-else pairs (default true)
- skipBalanced: true
- hugeParam:
- # size in bytes that makes the warning trigger (default 80)
- sizeThreshold: 80
- # nestingReduce:
- # # min number of statements inside a branch to trigger a warning (default 5)
- # bodyWidth: 5
- rangeExprCopy:
- # size in bytes that makes the warning trigger (default 512)
- sizeThreshold: 512
- # whether to check test functions (default true)
- skipTestFuncs: true
- rangeValCopy:
- # size in bytes that makes the warning trigger (default 128)
- sizeThreshold: 32
- # whether to check test functions (default true)
- skipTestFuncs: true
- # ruleguard:
- # path to a gorules file for the ruleguard checker
- # rules: ""
- # truncateCmp:
- # # whether to skip int/uint/uintptr types (default true)
- # skipArchDependent: true
- underef:
- # whether to skip (*x).method() calls where x is a pointer receiver (default true)
- skipRecvDeref: true
- # unnamedResult:
- # # whether to check exported functions
- # checkExported: true
-
gocyclo:
- # minimal code complexity to report, 30 by default (but we recommend 10-20)
- min-complexity: 20
-
- godot:
- # comments to be checked: `declarations`, `toplevel`, or `all`
- scope: declarations
- # list of regexps for excluding particular comment lines from check
- exclude:
- # example: exclude comments which contain numbers
- # - '[0-9]+'
- # check that each sentence starts with a capital letter
- capital: false
-
- godox:
- # report any comments starting with keywords, this is useful for TODO or FIXME comments that
- # might be left in the code accidentally and should be resolved before merging
- keywords: # default keywords are TODO, BUG, and FIXME, these can be overwritten by this setting
- - NOTE
- - OPTIMIZE # marks code that should be optimized before merging
- - HACK # marks hack-arounds that should be removed before merging
-
- gofmt:
- # simplify code: gofmt with `-s` option, true by default
- simplify: true
-
- gofumpt:
- # Choose whether or not to use the extra rules that are disabled
- # by default
- extra-rules: false
-
- # goheader:
- # values:
- # const:
- # define here const type values in format k:v, for example:
- # COMPANY: MY COMPANY
- # regexp:
- # define here regexp type values, for example
- # AUTHOR: .*@mycompany\.com
- # template:# |-
- # put here copyright header template for source code files, for example:
- # Note: {{ YEAR }} is a builtin value that returns the year relative to the current machine time.
- #
- # {{ AUTHOR }} {{ COMPANY }} {{ YEAR }}
- # SPDX-License-Identifier: Apache-2.0
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at:
- # http://www.apache.org/licenses/LICENSE-2.0
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- # template-path:
- # also as alternative of directive 'template' you may put the path to file with the template source
-
- goimports:
- # put imports beginning with prefix after 3rd-party packages;
- # it's a comma-separated list of prefixes
- local-prefixes: github.com/org/project
-
- golint:
- # minimal confidence for issues, default is 0.8
- min-confidence: 0.8
-
- gomnd:
- settings:
- mnd:
- # the list of enabled checks, see https://github.com/tommy-muehle/go-mnd/#checks for description.
- checks:
- - argument
- - case
- - condition
- - operation
- - return
- - assign
- # ignored-numbers: 1000
- # ignored-files: magic_.*.go
- # ignored-functions: math.*
-
- gomoddirectives:
- # Allow local `replace` directives. Default is false.
- replace-local: false
- # List of allowed `replace` directives. Default is empty.
- replace-allow-list:
- - launchpad.net/gocheck
- # Allow to not explain why the version has been retracted in the `retract` directives. Default is false.
- retract-allow-no-explanation: false
- # Forbid the use of the `exclude` directives. Default is false.
- exclude-forbidden: false
-
- gomodguard:
- # allowed:
- # modules: # List of allowed modules
- # - gopkg.in/yaml.v2
- # domains:# List of allowed module domains
- # - golang.org
- # blocked:
- # modules: # List of blocked modules
- # - github.com/uudashr/go-module: # Blocked module
- # recommendations: # Recommended modules that should be used instead (Optional)
- # - golang.org/x/mod
- # reason: "`mod` is the official go.mod parser library." # Reason why the recommended module should be used (Optional)
- # versions:# List of blocked module version constraints
- # - github.com/mitchellh/go-homedir: # Blocked module with version constraint
- # version: "< 1.1.0" # Version constraint, see https://github.com/Masterminds/semver#basic-comparisons
- # reason: "testing if blocked version constraint works." # Reason why the version constraint exists. (Optional)
- local_replace_directives: false # Set to true to raise lint issues for packages that are loaded from a local path via replace directive
-
- gosec:
- # To select a subset of rules to run.
- # Available rules: https://github.com/securego/gosec#available-rules
- includes:
- - G401
- - G306
- - G101
- # To specify a set of rules to explicitly exclude.
- # Available rules: https://github.com/securego/gosec#available-rules
- excludes:
- - G204
- # To specify the configuration of rules.
- # The configuration of rules is not fully documented by gosec:
- # https://github.com/securego/gosec#configuration
- # https://github.com/securego/gosec/blob/569328eade2ccbad4ce2d0f21ee158ab5356a5cf/rules/rulelist.go#L60-L102
- config:
- G306: "0600"
- G101:
- pattern: "(?i)example"
- ignore_entropy: false
- entropy_threshold: "80.0"
- per_char_threshold: "3.0"
- truncate: "32"
-
- gosimple:
- # Select the Go version to target. The default is '1.13'.
- go: "1.20"
- # https://staticcheck.io/docs/options#checks
- checks: ["all"]
+ # minimal code complexity to report, 30 by default (but we recommend 10-20)
+ min-complexity: 35
govet:
- # report about shadowed variables
- check-shadowing: true
-
- # settings per analyzer
- settings:
- printf: # analyzer name, run `go tool vet help` to see all analyzers
- funcs: # run `go tool vet help printf` to see available settings for `printf` analyzer
- - (github.com/golangci/golangci-lint/pkg/logutils.Log).Infof
- - (github.com/golangci/golangci-lint/pkg/logutils.Log).Warnf
- - (github.com/golangci/golangci-lint/pkg/logutils.Log).Errorf
- - (github.com/golangci/golangci-lint/pkg/logutils.Log).Fatalf
-
- # enable or disable analyzers by name
- # run `go tool vet help` to see all analyzers
- # enable:
- # - atomicalign
- # enable-all: true
- # disable:
- # - shadow
- # disable-all: false
-
- depguard:
- list-type: blacklist
- include-go-root: false
- packages:
- - github.com/sirupsen/logrus
- packages-with-error-message:
- # specify an error message to output when a blacklisted package is used
- - github.com/sirupsen/logrus: "logging is allowed only by logutils.Log"
-
- ifshort:
- # Maximum length of variable declaration measured in number of lines, after which linter won't suggest using short syntax.
- # Has higher priority than max-decl-chars.
- max-decl-lines: 1
- # Maximum length of variable declaration measured in number of characters, after which linter won't suggest using short syntax.
- max-decl-chars: 30
-
- importas:
- # if set to `true`, force to use alias.
- no-unaliased: true
- # List of aliases
- alias:
- # using `servingv1` alias for `knative.dev/serving/pkg/apis/serving/v1` package
- - pkg: knative.dev/serving/pkg/apis/serving/v1
- alias: servingv1
- # using `autoscalingv1alpha1` alias for `knative.dev/serving/pkg/apis/autoscaling/v1alpha1` package
- - pkg: knative.dev/serving/pkg/apis/autoscaling/v1alpha1
- alias: autoscalingv1alpha1
- # You can specify the package path by regular expression,
- # and alias by regular expression expansion syntax like below.
- # see https://github.com/julz/importas#use-regular-expression for details
- - pkg: knative.dev/serving/pkg/apis/(\w+)/(v[\w\d]+)
- alias: $1$2
-
- lll:
- # max line length, lines longer will be reported. Default is 120.
- # '\t' is counted as 1 character by default, and can be changed with the tab-width option
- line-length: 120
- # tab width in spaces. Default to 1.
- tab-width: 1
-
- makezero:
- # Allow only slices initialized with a length of zero. Default is false.
- always: false
-
- maligned:
- # print struct with more effective memory layout or not, false by default
- suggest-new: true
-
- misspell:
- # Correct spellings using locale preferences for US or UK.
- # Default is to use a neutral variety of English.
- # Setting locale to US will correct the British spelling of 'colour' to 'color'.
- locale: US
- ignore-words:
- - someword
-
- nakedret:
- # make an issue if func has more lines of code than this setting and it has naked returns; default is 30
- max-func-lines: 30
-
- prealloc:
- # XXX: we don't recommend using this linter before doing performance profiling.
- # For most programs usage of prealloc will be a premature optimization.
-
- # Report preallocation suggestions only on simple loops that have no returns/breaks/continues/gotos in them.
- # True by default.
- simple: true
- range-loops: true # Report preallocation suggestions on range loops, true by default
- for-loops: false # Report preallocation suggestions on for loops, false by default
-
- promlinter:
- # Promlinter cannot infer all metrics name in static analysis.
- # Enable strict mode will also include the errors caused by failing to parse the args.
- strict: false
- # Please refer to https://github.com/yeya24/promlinter#usage for detailed usage.
- disabled-linters:
- # - "Help"
- # - "MetricUnits"
- # - "Counter"
- # - "HistogramSummaryReserved"
- # - "MetricTypeInName"
- # - "ReservedChars"
- # - "CamelCase"
- # - "lintUnitAbbreviations"
-
- predeclared:
- # comma-separated list of predeclared identifiers to not report on
- ignore: ""
- # include method names and field names (i.e., qualified names) in checks
- q: false
-
- nolintlint:
- # Enable to ensure that nolint directives are all used. Default is true.
- allow-unused: false
- # Disable to ensure that nolint directives don't have a leading space. Default is true.
- allow-leading-space: true
- # Exclude following linters from requiring an explanation. Default is [].
- allow-no-explanation: []
- # Enable to require an explanation of nonzero length after each nolint directive. Default is false.
- require-explanation: true
- # Enable to require nolint directives to mention the specific linter being suppressed. Default is false.
- require-specific: true
-
- rowserrcheck:
- packages:
- - github.com/jmoiron/sqlx
-
- revive:
- # see https://github.com/mgechev/revive#available-rules for details.
- ignore-generated-header: true
- severity: warning
- rules:
- - name: indent-error-flow
- severity: warning
- - name: add-constant
- severity: warning
- arguments:
- - maxLitCount: "3"
- allowStrs: '""'
- allowInts: "0,1,2"
- allowFloats: "0.0,0.,1.0,1.,2.0,2."
-
+ enable:
+ - nilness
+ goimports:
+ local-prefixes: github.com/cilium/cilium
staticcheck:
- # Select the Go version to target. The default is '1.13'.
go: "1.20"
- # https://staticcheck.io/docs/options#checks
- checks: ["all"]
-
- stylecheck:
- # Select the Go version to target. The default is '1.13'.
- go: "1.20"
- # https://staticcheck.io/docs/options#checks
- checks:
- ["all", "-ST1000", "-ST1003", "-ST1016", "-ST1020", "-ST1021", "-ST1022"]
- # https://staticcheck.io/docs/options#dot_import_whitelist
- dot-import-whitelist:
- - fmt
- # https://staticcheck.io/docs/options#initialisms
- initialisms:
- [
- "ACL",
- "API",
- "ASCII",
- "CPU",
- "CSS",
- "DNS",
- "EOF",
- "GUID",
- "HTML",
- "HTTP",
- "HTTPS",
- "ID",
- "IP",
- "JSON",
- "QPS",
- "RAM",
- "RPC",
- "SLA",
- "SMTP",
- "SQL",
- "SSH",
- "TCP",
- "TLS",
- "TTL",
- "UDP",
- "UI",
- "GID",
- "UID",
- "UUID",
- "URI",
- "URL",
- "UTF8",
- "VM",
- "XML",
- "XMPP",
- "XSRF",
- "XSS",
- ]
- # https://staticcheck.io/docs/options#http_status_code_whitelist
- http-status-code-whitelist: ["200", "400", "404", "500"]
-
- tagliatelle:
- # check the struck tag name case
- case:
- # use the struct field name to check the name of the struct tag
- use-field-name: true
- rules:
- # any struct tag type can be used.
- # support string case: `camel`, `pascal`, `kebab`, `snake`, `goCamel`, `goPascal`, `goKebab`, `goSnake`, `upper`, `lower`
- json: camel
- yaml: camel
- xml: camel
- bson: camel
- avro: snake
- mapstructure: kebab
-
- testpackage:
- # regexp pattern to skip files
- skip-regexp: (export|internal)_test\.go
-
- thelper:
- # The following configurations enable all checks. It can be omitted because all checks are enabled by default.
- # You can enable only required checks deleting unnecessary checks.
- test:
- first: true
- name: true
- begin: true
- benchmark:
- first: true
- name: true
- begin: true
- tb:
- first: true
- name: true
- begin: true
-
- unparam:
- # Inspect exported functions, default is false. Set to true if no external program/library imports your code.
- # XXX: if you enable this setting, unparam will report a lot of false-positives in text editors:
- # if it's called for subdir of a project it can't find external interfaces. All text editor integrations
- # with golangci-lint call it on a directory with the changed file.
- check-exported: false
-
unused:
- # Select the Go version to target. The default is '1.13'.
go: "1.20"
-
- whitespace:
- multi-if: false # Enforces newlines (or comments) after every multi-line if statement
- multi-func: false # Enforces newlines (or comments) after every multi-line function signature
-
- wrapcheck:
- # An array of strings that specify substrings of signatures to ignore.
- # If this set, it will override the default set of ignored signatures.
- # See https://github.com/tomarrell/wrapcheck#configuration for more information.
- ignoreSigs:
- - .Errorf(
- - errors.New(
- - errors.Unwrap(
- - .Wrap(
- - .Wrapf(
- - .WithMessage(
-
- wsl:
- # See https://github.com/bombsimon/wsl/blob/master/doc/configuration.md for
- # documentation of available settings. These are the defaults for
- # `golangci-lint`.
- allow-assign-and-anything: false
- allow-assign-and-call: true
- allow-cuddle-declarations: false
- allow-multiline-assign: true
- allow-separated-leading-comment: false
- allow-trailing-comment: false
- force-case-trailing-whitespace: 0
- force-err-cuddling: false
- force-short-decl-cuddling: false
- strict-append: true
-
- # The custom section can be used to define linter plugins to be loaded at runtime.
- # See README doc for more info.
- # custom:
- # # Each custom linter should have a unique name.
- # example:
- # # The path to the plugin *.so. Can be absolute or local. Required for each custom linter
- # path: /path/to/example.so
- # # The description of the linter. Optional, just for documentation purposes.
- # description: This is an example usage of a plugin linter.
- # # Intended to point to the repo location of the linter. Optional, just for documentation purposes.
- # original-url: github.com/golangci/example-linter
-
-linters:
- # disable-all: true
- enable:
- - megacheck
- - govet
- - funlen
- - gocyclo
- # - fieldalignment
- - prealloc
- - typecheck
- # enable-all: true
- disable:
- - gosec
- # - maligned
- # - prealloc
- presets:
- - bugs
- - unused
- fast: false
+ goheader:
+ values:
+ regexp:
+ PROJECT: 'K9s'
+ template: |-
+ SPDX-License-Identifier: Apache-2.0
+ Copyright Authors of {{ PROJECT }}
+ gosec:
+ includes:
+ - G402
+ gomodguard:
+ blocked:
+ modules:
+ - github.com/miekg/dns:
+ recommendations:
+ - github.com/cilium/dns
+ reason: "use the cilium fork directly to avoid replace directives in go.mod, see https://github.com/cilium/cilium/pull/27582"
+ - gopkg.in/check.v1:
+ recommendations:
+ - testing
+ - github.com/stretchr/testify/assert
+ reason: "gocheck has been deprecated, see https://docs.cilium.io/en/latest/contributing/testing/unit/#migrating-tests-off-of-gopkg-in-check-v1"
+ - go.uber.org/multierr:
+ recommendations:
+ - errors
+ reason: "Go 1.20+ has support for combining multiple errors, see https://go.dev/doc/go1.20#errors"
issues:
- # List of regexps of issue texts to exclude, empty list by default.
- # But independently from this option we use default exclude patterns,
- # it can be disabled by `exclude-use-default: false`. To list all
- # excluded by default patterns execute `golangci-lint run --help`
- exclude:
- - abcdef
-
# Excluding configuration per-path, per-linter, per-text and per-source
exclude-rules:
- # Exclude some linters from running on tests files.
- - path: _test\.go
+ - linters: [staticcheck]
+ text: "SA1019" # this is rule for deprecated method
+ - linters: [staticcheck]
+ text: "SA9003: empty branch"
+ - linters: [staticcheck]
+ text: "SA2001: empty critical section"
+ - linters: [goerr113]
+ text: "do not define dynamic errors, use wrapped static errors instead" # This rule to avoid opinionated check fmt.Errorf("text")
+ # Skip goimports check on generated files
+ - path: \\.(generated\\.deepcopy|pb)\\.go$
linters:
- - gocyclo
- - errcheck
- - dupl
- - gosec
- - funlen
- - goconst
- - gocognit
-
- # Exclude known linters from partially hard-vendored code,
- # which is impossible to exclude via "nolint" comments.
- - path: internal/hmac/
- text: "weak cryptographic primitive"
+ - goimports
+ # Skip goheader check on files imported and modified from upstream k8s
+ - path: "pkg/ipam/(cidrset|service)/.+\\.go"
linters:
- - gosec
+ - goheader
- # Exclude some staticcheck messages
- - linters:
- - staticcheck
- text: "SA9003:"
-
- # Exclude lll issues for long lines with go:generate
- - linters:
- - lll
- source: "^//go:generate "
-
- # Independently from option `exclude` we use default exclude patterns,
- # it can be disabled by this option. To list all
- # excluded by default patterns execute `golangci-lint run --help`.
- # Default value for this option is true.
- exclude-use-default: false
-
- # The default value is false. If set to true exclude and exclude-rules
- # regular expressions become case sensitive.
- exclude-case-sensitive: false
-
- # The list of ids of default excludes to include or disable. By default it's empty.
- include:
- - EXC0002 # disable excluding of issues about comments from golint
-
- # Maximum issues count per one linter. Set to 0 to disable. Default is 50.
- max-issues-per-linter: 0
-
- # Maximum count of issues with the same text. Set to 0 to disable. Default is 3.
- max-same-issues: 0
-
- # Show only new issues: if there are unstaged changes or untracked files,
- # only those changes are analyzed, else only changes in HEAD~ are analyzed.
- # It's a super-useful option for integration of golangci-lint into existing
- # large codebase. It's not practical to fix all existing issues at the moment
- # of integration: much better don't allow issues in new code.
- # Default is false.
- new: false
-
- # Show only new issues created after git revision `REV`
- # new-from-rev: REV
-
- # Show only new issues created in git patch with set file path.
- # new-from-patch: path/to/patch/file
-
- # Fix found issues (if it's supported by the linter)
- fix: true
-
-severity:
- # Default value is empty string.
- # Set the default severity for issues. If severity rules are defined and the issues
- # do not match or no severity is provided to the rule this will be the default
- # severity applied. Severities should match the supported severity names of the
- # selected out format.
- # - Code climate: https://docs.codeclimate.com/docs/issues#issue-severity
- # - Checkstyle: https://checkstyle.sourceforge.io/property_types.html#severity
- # - Github: https://help.github.com/en/actions/reference/workflow-commands-for-github-actions#setting-an-error-message
- default-severity: error
-
- # The default value is false.
- # If set to true severity-rules regular expressions become case sensitive.
- case-sensitive: false
-
- # Default value is empty list.
- # When a list of severity rules are provided, severity information will be added to lint
- # issues. Severity rules have the same filtering capability as exclude rules except you
- # are allowed to specify one matcher per severity rule.
- # Only affects out formats that support setting severity information.
- rules:
- - linters:
- - dupl
- severity: info
+linters:
+ disable-all: true
+ enable:
+ - goerr113
+ - gofmt
+ - goimports
+ - govet
+ - ineffassign
+ - misspell
+ - staticcheck
+ - unused
+ - goheader
+ - gosec
+ - gomodguard
+ - gosimple
+ - errcheck
+ - gocyclo
+ - gosec
+ - gosimple
+ - misspell
+ - prealloc
+ - typecheck
diff --git a/.goreleaser.yml b/.goreleaser.yml
index e19e0d4d..dc7a1d2c 100644
--- a/.goreleaser.yml
+++ b/.goreleaser.yml
@@ -23,7 +23,10 @@ builds:
flags:
- -trimpath
ldflags:
- - -s -w -X github.com/derailed/k9s/cmd.version=v{{.Version}} -X github.com/derailed/k9s/cmd.commit={{.Commit}} -X github.com/derailed/k9s/cmd.date={{.Date}}
+ - -s -w -X github.com/derailed/k9s/cmd.version=v{{.Version}}
+ - -s -w -X github.com/derailed/k9s/cmd.commit={{.Commit}}
+ - -s -w -X github.com/derailed/k9s/cmd.date={{.Date}}
+
archives:
- name_template: "{{ .ProjectName }}_{{ .Os }}_{{ .Arch }}"
replacements:
@@ -36,10 +39,13 @@ archives:
format_overrides:
- goos: windows
format: zip
+
checksum:
name_template: "checksums.sha256"
+
snapshot:
name_template: "{{ .Tag }}-next"
+
changelog:
sort: asc
filters:
@@ -47,7 +53,6 @@ changelog:
- "^docs:"
- "^test:"
-# Homebrew
brews:
- name: k9s
tap:
@@ -61,3 +66,26 @@ brews:
description: Kubernetes CLI To Manage Your Clusters In Style!
test: |
system "k9s version"
+
+nfpms:
+ - file_name_template: '{{ .ProjectName }}_{{ .Os }}_{{ .Arch }}'
+ replacements:
+ linux: Linux
+ maintainer: Fernand Galiana
+ homepage: https://k9scli.io
+ description: Kubernetes CLI To Manage Your Clusters In Style!
+ license: "Apache-2.0"
+ formats:
+ - deb
+ - rpm
+ - apk
+ bindir: /usr/bin
+ section: utils
+ contents:
+ - src: ./LICENSE
+ dst: /usr/share/doc/nfpm/copyright
+ file_info:
+ mode: 0644
+
+sboms:
+ - artifacts: archive
\ No newline at end of file
diff --git a/cmd/info.go b/cmd/info.go
index 9828aab2..1ac5a5ff 100644
--- a/cmd/info.go
+++ b/cmd/info.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package cmd
import (
diff --git a/cmd/info_test.go b/cmd/info_test.go
index 867d3478..6f2a2407 100644
--- a/cmd/info_test.go
+++ b/cmd/info_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package cmd
import (
diff --git a/cmd/root.go b/cmd/root.go
index 357e42b0..882b96e2 100644
--- a/cmd/root.go
+++ b/cmd/root.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package cmd
import (
diff --git a/cmd/version.go b/cmd/version.go
index 13617a48..67727c7d 100644
--- a/cmd/version.go
+++ b/cmd/version.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package cmd
import (
diff --git a/internal/client/client.go b/internal/client/client.go
index a7fcf558..6bbdffdd 100644
--- a/internal/client/client.go
+++ b/internal/client/client.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package client
import (
diff --git a/internal/client/client_test.go b/internal/client/client_test.go
index a489f467..e777b298 100644
--- a/internal/client/client_test.go
+++ b/internal/client/client_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package client
import (
diff --git a/internal/client/config.go b/internal/client/config.go
index 6086ac31..6603850b 100644
--- a/internal/client/config.go
+++ b/internal/client/config.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package client
import (
diff --git a/internal/client/config_test.go b/internal/client/config_test.go
index cf2e8549..37a1029c 100644
--- a/internal/client/config_test.go
+++ b/internal/client/config_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package client_test
import (
diff --git a/internal/client/errors.go b/internal/client/errors.go
index 99dabe3d..f13260dd 100644
--- a/internal/client/errors.go
+++ b/internal/client/errors.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package client
import metricsapi "k8s.io/metrics/pkg/apis/metrics"
diff --git a/internal/client/gvr.go b/internal/client/gvr.go
index 6822e93d..715e274d 100644
--- a/internal/client/gvr.go
+++ b/internal/client/gvr.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package client
import (
diff --git a/internal/client/gvr_test.go b/internal/client/gvr_test.go
index 224ee282..714f1f45 100644
--- a/internal/client/gvr_test.go
+++ b/internal/client/gvr_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package client_test
import (
diff --git a/internal/client/helper_test.go b/internal/client/helper_test.go
index 4a4c5091..74e4988d 100644
--- a/internal/client/helper_test.go
+++ b/internal/client/helper_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package client_test
import (
diff --git a/internal/client/helpers.go b/internal/client/helpers.go
index 6f45b604..68006ed1 100644
--- a/internal/client/helpers.go
+++ b/internal/client/helpers.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package client
import (
diff --git a/internal/client/metrics.go b/internal/client/metrics.go
index 45aba6ca..79f34eeb 100644
--- a/internal/client/metrics.go
+++ b/internal/client/metrics.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package client
import (
diff --git a/internal/client/metrics_test.go b/internal/client/metrics_test.go
index 3a632efc..cb1a3572 100644
--- a/internal/client/metrics_test.go
+++ b/internal/client/metrics_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package client_test
import (
diff --git a/internal/client/types.go b/internal/client/types.go
index c57dbbda..fbeb657d 100644
--- a/internal/client/types.go
+++ b/internal/client/types.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package client
import (
diff --git a/internal/color/colorize.go b/internal/color/colorize.go
index f4e7177e..24811488 100644
--- a/internal/color/colorize.go
+++ b/internal/color/colorize.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package color
import (
diff --git a/internal/color/colorize_test.go b/internal/color/colorize_test.go
index db9b7682..3d71f83f 100644
--- a/internal/color/colorize_test.go
+++ b/internal/color/colorize_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package color_test
import (
diff --git a/internal/config/alias.go b/internal/config/alias.go
index 8dddf782..1b5848c2 100644
--- a/internal/config/alias.go
+++ b/internal/config/alias.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config
import (
diff --git a/internal/config/alias_test.go b/internal/config/alias_test.go
index a627ddd2..3d40bc41 100644
--- a/internal/config/alias_test.go
+++ b/internal/config/alias_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config_test
import (
diff --git a/internal/config/bench.go b/internal/config/bench.go
index c3f6c4c9..b837b361 100644
--- a/internal/config/bench.go
+++ b/internal/config/bench.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config
import (
diff --git a/internal/config/bench_test.go b/internal/config/bench_test.go
index fd6e4d97..d6c225db 100644
--- a/internal/config/bench_test.go
+++ b/internal/config/bench_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config
import (
diff --git a/internal/config/cluster.go b/internal/config/cluster.go
index ec0a9c32..e9515019 100644
--- a/internal/config/cluster.go
+++ b/internal/config/cluster.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config
import "github.com/derailed/k9s/internal/client"
diff --git a/internal/config/cluster_test.go b/internal/config/cluster_test.go
index 53e3c056..86f49578 100644
--- a/internal/config/cluster_test.go
+++ b/internal/config/cluster_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config_test
import (
diff --git a/internal/config/config.go b/internal/config/config.go
index 3a10544c..7342c1df 100644
--- a/internal/config/config.go
+++ b/internal/config/config.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config
import (
diff --git a/internal/config/config_test.go b/internal/config/config_test.go
index ee171011..f33b8aec 100644
--- a/internal/config/config_test.go
+++ b/internal/config/config_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config_test
import (
diff --git a/internal/config/feature.go b/internal/config/feature.go
index 52164ec5..f94f5855 100644
--- a/internal/config/feature.go
+++ b/internal/config/feature.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config
// FeatureGates represents K9s opt-in features.
diff --git a/internal/config/flags.go b/internal/config/flags.go
index e521ce2c..aa2939ea 100644
--- a/internal/config/flags.go
+++ b/internal/config/flags.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config
import (
diff --git a/internal/config/helpers.go b/internal/config/helpers.go
index 1ed01ab4..f3668370 100644
--- a/internal/config/helpers.go
+++ b/internal/config/helpers.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config
import (
diff --git a/internal/config/helpers_test.go b/internal/config/helpers_test.go
index 38125585..06dcf944 100644
--- a/internal/config/helpers_test.go
+++ b/internal/config/helpers_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config_test
import (
diff --git a/internal/config/hotkey.go b/internal/config/hotkey.go
index 707bc0c7..ea7bd715 100644
--- a/internal/config/hotkey.go
+++ b/internal/config/hotkey.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config
import (
diff --git a/internal/config/hotkey_test.go b/internal/config/hotkey_test.go
index 96515b24..91fe6a4b 100644
--- a/internal/config/hotkey_test.go
+++ b/internal/config/hotkey_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config_test
import (
diff --git a/internal/config/k9s.go b/internal/config/k9s.go
index 4afbb2b1..0f1f2dda 100644
--- a/internal/config/k9s.go
+++ b/internal/config/k9s.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config
import (
diff --git a/internal/config/k9s_test.go b/internal/config/k9s_test.go
index 631af222..b4c233ad 100644
--- a/internal/config/k9s_test.go
+++ b/internal/config/k9s_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config_test
import (
diff --git a/internal/config/logger.go b/internal/config/logger.go
index ba8c1638..93f6bbd4 100644
--- a/internal/config/logger.go
+++ b/internal/config/logger.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config
import (
diff --git a/internal/config/logger_test.go b/internal/config/logger_test.go
index ff1d2ff1..e0253505 100644
--- a/internal/config/logger_test.go
+++ b/internal/config/logger_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config_test
import (
diff --git a/internal/config/mock_connection_test.go b/internal/config/mock_connection_test.go
index 2a024947..77f4568b 100644
--- a/internal/config/mock_connection_test.go
+++ b/internal/config/mock_connection_test.go
@@ -1,6 +1,9 @@
// Code generated by pegomock. DO NOT EDIT.
// Source: github.com/derailed/k9s/internal/client (interfaces: Connection)
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config_test
import (
diff --git a/internal/config/mock_kubesettings_test.go b/internal/config/mock_kubesettings_test.go
index 9269469f..68d7fd09 100644
--- a/internal/config/mock_kubesettings_test.go
+++ b/internal/config/mock_kubesettings_test.go
@@ -1,6 +1,9 @@
// Code generated by pegomock. DO NOT EDIT.
// Source: github.com/derailed/k9s/internal/config (interfaces: KubeSettings)
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config_test
import (
diff --git a/internal/config/ns.go b/internal/config/ns.go
index 411f4fca..c49f4324 100644
--- a/internal/config/ns.go
+++ b/internal/config/ns.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config
import (
diff --git a/internal/config/ns_test.go b/internal/config/ns_test.go
index 33489366..c84ffe54 100644
--- a/internal/config/ns_test.go
+++ b/internal/config/ns_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config_test
import (
diff --git a/internal/config/plugin.go b/internal/config/plugin.go
index 029bda89..2deca3a4 100644
--- a/internal/config/plugin.go
+++ b/internal/config/plugin.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config
import (
@@ -45,7 +48,7 @@ func NewPlugins() Plugins {
// Load K9s plugins.
func (p Plugins) Load() error {
- var pluginDirs []string
+ pluginDirs := make([]string, 0, len(xdg.DataDirs))
for _, dataDir := range xdg.DataDirs {
pluginDirs = append(pluginDirs, filepath.Join(dataDir, K9sPluginDirectory))
}
diff --git a/internal/config/plugin_test.go b/internal/config/plugin_test.go
index 8350625e..175a8285 100644
--- a/internal/config/plugin_test.go
+++ b/internal/config/plugin_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config_test
import (
diff --git a/internal/config/shell_pod.go b/internal/config/shell_pod.go
index a9c429b8..f1e21692 100644
--- a/internal/config/shell_pod.go
+++ b/internal/config/shell_pod.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config
import (
diff --git a/internal/config/styles.go b/internal/config/styles.go
index 9e119416..26bb6533 100644
--- a/internal/config/styles.go
+++ b/internal/config/styles.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config
import (
diff --git a/internal/config/styles_test.go b/internal/config/styles_test.go
index e934e880..d3d8874a 100644
--- a/internal/config/styles_test.go
+++ b/internal/config/styles_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config_test
import (
diff --git a/internal/config/threshold.go b/internal/config/threshold.go
index 1db1ccfa..f3300178 100644
--- a/internal/config/threshold.go
+++ b/internal/config/threshold.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config
import (
diff --git a/internal/config/threshold_test.go b/internal/config/threshold_test.go
index 1c1be937..11cabae3 100644
--- a/internal/config/threshold_test.go
+++ b/internal/config/threshold_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config_test
import (
diff --git a/internal/config/view.go b/internal/config/view.go
index e9461c83..e4078ccd 100644
--- a/internal/config/view.go
+++ b/internal/config/view.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config
const defaultView = "po"
diff --git a/internal/config/view_test.go b/internal/config/view_test.go
index 2fc7532a..10dfb152 100644
--- a/internal/config/view_test.go
+++ b/internal/config/view_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config_test
import (
diff --git a/internal/config/views.go b/internal/config/views.go
index 4c10a9e9..929c14b2 100644
--- a/internal/config/views.go
+++ b/internal/config/views.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config
import (
diff --git a/internal/config/views_test.go b/internal/config/views_test.go
index 0005cfd2..af3885fe 100644
--- a/internal/config/views_test.go
+++ b/internal/config/views_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package config_test
import (
diff --git a/internal/dao/alias.go b/internal/dao/alias.go
index 4c073527..bce58361 100644
--- a/internal/dao/alias.go
+++ b/internal/dao/alias.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/alias_test.go b/internal/dao/alias_test.go
index 337c78a7..ceab2498 100644
--- a/internal/dao/alias_test.go
+++ b/internal/dao/alias_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao_test
import (
diff --git a/internal/dao/benchmark.go b/internal/dao/benchmark.go
index d0d1afe6..b5dbef1c 100644
--- a/internal/dao/benchmark.go
+++ b/internal/dao/benchmark.go
@@ -1,3 +1,9 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/benchmark_test.go b/internal/dao/benchmark_test.go
index b3e52f21..0d4aae08 100644
--- a/internal/dao/benchmark_test.go
+++ b/internal/dao/benchmark_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao_test
import (
diff --git a/internal/dao/cluster.go b/internal/dao/cluster.go
index 38d8cb5c..079e8804 100644
--- a/internal/dao/cluster.go
+++ b/internal/dao/cluster.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/container.go b/internal/dao/container.go
index 216d40ee..df8cd766 100644
--- a/internal/dao/container.go
+++ b/internal/dao/container.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/container_test.go b/internal/dao/container_test.go
index 61df4948..67655999 100644
--- a/internal/dao/container_test.go
+++ b/internal/dao/container_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao_test
import (
diff --git a/internal/dao/context.go b/internal/dao/context.go
index 62ac939d..222dbc6c 100644
--- a/internal/dao/context.go
+++ b/internal/dao/context.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/crd.go b/internal/dao/crd.go
index d05d5f9a..fcf7f53b 100644
--- a/internal/dao/crd.go
+++ b/internal/dao/crd.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/cronjob.go b/internal/dao/cronjob.go
index 9c5d5011..201f7713 100644
--- a/internal/dao/cronjob.go
+++ b/internal/dao/cronjob.go
@@ -1,3 +1,9 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
@@ -57,9 +63,9 @@ func (c *CronJob) Run(path string) error {
true := true
job := &batchv1.Job{
ObjectMeta: metav1.ObjectMeta{
- Name: jobName + "-manual-" + rand.String(3),
- Namespace: ns,
- Labels: cj.Spec.JobTemplate.Labels,
+ Name: jobName + "-manual-" + rand.String(3),
+ Namespace: ns,
+ Labels: cj.Spec.JobTemplate.Labels,
Annotations: cj.Spec.JobTemplate.Annotations,
OwnerReferences: []metav1.OwnerReference{
{
diff --git a/internal/dao/cruiser.go b/internal/dao/cruiser.go
index 4709827e..25a194ee 100644
--- a/internal/dao/cruiser.go
+++ b/internal/dao/cruiser.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/cruiser_test.go b/internal/dao/cruiser_test.go
index da8769e7..6e88cb86 100644
--- a/internal/dao/cruiser_test.go
+++ b/internal/dao/cruiser_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/describe.go b/internal/dao/describe.go
index 6d40d482..32db74b4 100644
--- a/internal/dao/describe.go
+++ b/internal/dao/describe.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/dir.go b/internal/dao/dir.go
index b5a3a456..95239cc0 100644
--- a/internal/dao/dir.go
+++ b/internal/dao/dir.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/dir_test.go b/internal/dao/dir_test.go
index cd604484..c33e5d78 100644
--- a/internal/dao/dir_test.go
+++ b/internal/dao/dir_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao_test
import (
diff --git a/internal/dao/dp.go b/internal/dao/dp.go
index 8e21d0c4..541415b1 100644
--- a/internal/dao/dp.go
+++ b/internal/dao/dp.go
@@ -1,3 +1,9 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/ds.go b/internal/dao/ds.go
index 1ef7bf39..d970afd2 100644
--- a/internal/dao/ds.go
+++ b/internal/dao/ds.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/generic.go b/internal/dao/generic.go
index 22e4eebe..e205e1f5 100644
--- a/internal/dao/generic.go
+++ b/internal/dao/generic.go
@@ -1,3 +1,9 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/helm.go b/internal/dao/helm.go
index 0c4ffd48..5ec675bd 100644
--- a/internal/dao/helm.go
+++ b/internal/dao/helm.go
@@ -1,3 +1,9 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/helpers.go b/internal/dao/helpers.go
index c1b0a047..049324a5 100644
--- a/internal/dao/helpers.go
+++ b/internal/dao/helpers.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/helpers_test.go b/internal/dao/helpers_test.go
index 8687e119..4379627e 100644
--- a/internal/dao/helpers_test.go
+++ b/internal/dao/helpers_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/job.go b/internal/dao/job.go
index 6264dff3..4b9311b3 100644
--- a/internal/dao/job.go
+++ b/internal/dao/job.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/log_item.go b/internal/dao/log_item.go
index 2a814bca..2ef1ba3d 100644
--- a/internal/dao/log_item.go
+++ b/internal/dao/log_item.go
@@ -1,3 +1,9 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/log_item_test.go b/internal/dao/log_item_test.go
index 0e4e78d8..711db123 100644
--- a/internal/dao/log_item_test.go
+++ b/internal/dao/log_item_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao_test
import (
diff --git a/internal/dao/log_items.go b/internal/dao/log_items.go
index 888c3db3..e84c8740 100644
--- a/internal/dao/log_items.go
+++ b/internal/dao/log_items.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/log_items_test.go b/internal/dao/log_items_test.go
index 924664a8..787fddfe 100644
--- a/internal/dao/log_items_test.go
+++ b/internal/dao/log_items_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao_test
import (
diff --git a/internal/dao/log_options.go b/internal/dao/log_options.go
index bd3fd03d..edd20afb 100644
--- a/internal/dao/log_options.go
+++ b/internal/dao/log_options.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/log_options_test.go b/internal/dao/log_options_test.go
index 71a594e6..feaaef86 100644
--- a/internal/dao/log_options_test.go
+++ b/internal/dao/log_options_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao_test
import (
diff --git a/internal/dao/node.go b/internal/dao/node.go
index 9504f110..67b14f2f 100644
--- a/internal/dao/node.go
+++ b/internal/dao/node.go
@@ -1,3 +1,9 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/non_resource.go b/internal/dao/non_resource.go
index 96cf94b7..c32728d3 100644
--- a/internal/dao/non_resource.go
+++ b/internal/dao/non_resource.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/ns.go b/internal/dao/ns.go
index d9daddfc..492e3df4 100644
--- a/internal/dao/ns.go
+++ b/internal/dao/ns.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/ofaas.go b/internal/dao/ofaas.go
index 4716a484..0030aa4e 100644
--- a/internal/dao/ofaas.go
+++ b/internal/dao/ofaas.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
// BOZO!! Revamp with latest
diff --git a/internal/dao/patch.go b/internal/dao/patch.go
index 20fc8213..e834f196 100644
--- a/internal/dao/patch.go
+++ b/internal/dao/patch.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/patch_test.go b/internal/dao/patch_test.go
index 0fbda32a..efe46041 100644
--- a/internal/dao/patch_test.go
+++ b/internal/dao/patch_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/pod.go b/internal/dao/pod.go
index a65e63d3..70b7f3dc 100644
--- a/internal/dao/pod.go
+++ b/internal/dao/pod.go
@@ -1,3 +1,9 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/pod_test.go b/internal/dao/pod_test.go
index cec9b794..2ec160b1 100644
--- a/internal/dao/pod_test.go
+++ b/internal/dao/pod_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/popeye.go b/internal/dao/popeye.go
index 7dab2be6..962f0816 100644
--- a/internal/dao/popeye.go
+++ b/internal/dao/popeye.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/port_forward.go b/internal/dao/port_forward.go
index 8e7e4c54..3c62ccdc 100644
--- a/internal/dao/port_forward.go
+++ b/internal/dao/port_forward.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/port_forward_test.go b/internal/dao/port_forward_test.go
index d5d757a3..1fbb0d47 100644
--- a/internal/dao/port_forward_test.go
+++ b/internal/dao/port_forward_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao_test
import (
diff --git a/internal/dao/port_forwarder.go b/internal/dao/port_forwarder.go
index 37812215..3c6d2928 100644
--- a/internal/dao/port_forwarder.go
+++ b/internal/dao/port_forwarder.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/pulse.go b/internal/dao/pulse.go
index 4c93ad38..b7d09c7b 100644
--- a/internal/dao/pulse.go
+++ b/internal/dao/pulse.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/rbac.go b/internal/dao/rbac.go
index 540204a9..b9637d7a 100644
--- a/internal/dao/rbac.go
+++ b/internal/dao/rbac.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/rbac_policy.go b/internal/dao/rbac_policy.go
index a7f86543..3233c0ba 100644
--- a/internal/dao/rbac_policy.go
+++ b/internal/dao/rbac_policy.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/rbac_policy_test.go b/internal/dao/rbac_policy_test.go
index af49a108..29967fdc 100644
--- a/internal/dao/rbac_policy_test.go
+++ b/internal/dao/rbac_policy_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/rbac_subject.go b/internal/dao/rbac_subject.go
index 73f13922..0939b50a 100644
--- a/internal/dao/rbac_subject.go
+++ b/internal/dao/rbac_subject.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/reference.go b/internal/dao/reference.go
index d0331343..25db064a 100644
--- a/internal/dao/reference.go
+++ b/internal/dao/reference.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/registry.go b/internal/dao/registry.go
index 64638842..8a3eb212 100644
--- a/internal/dao/registry.go
+++ b/internal/dao/registry.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/registry_test.go b/internal/dao/registry_test.go
index 4d28895b..51a05dba 100644
--- a/internal/dao/registry_test.go
+++ b/internal/dao/registry_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/resource.go b/internal/dao/resource.go
index 18ea4188..5cf85d71 100644
--- a/internal/dao/resource.go
+++ b/internal/dao/resource.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/rest_mapper.go b/internal/dao/rest_mapper.go
index 3220fe0a..9e1391d4 100644
--- a/internal/dao/rest_mapper.go
+++ b/internal/dao/rest_mapper.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/rs.go b/internal/dao/rs.go
index 7e7ae755..06d91c91 100644
--- a/internal/dao/rs.go
+++ b/internal/dao/rs.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/screen_dump.go b/internal/dao/screen_dump.go
index 7ca99626..18b304d3 100644
--- a/internal/dao/screen_dump.go
+++ b/internal/dao/screen_dump.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/sts.go b/internal/dao/sts.go
index 8e346233..d9ce1e1e 100644
--- a/internal/dao/sts.go
+++ b/internal/dao/sts.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/svc.go b/internal/dao/svc.go
index 55023c43..382a4373 100644
--- a/internal/dao/svc.go
+++ b/internal/dao/svc.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/table.go b/internal/dao/table.go
index 422ccddd..823408f9 100644
--- a/internal/dao/table.go
+++ b/internal/dao/table.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/dao/types.go b/internal/dao/types.go
index 23ac9e72..9af91398 100644
--- a/internal/dao/types.go
+++ b/internal/dao/types.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dao
import (
diff --git a/internal/health/check.go b/internal/health/check.go
index 14a56c12..745c6e2a 100644
--- a/internal/health/check.go
+++ b/internal/health/check.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package health
import (
diff --git a/internal/health/check_test.go b/internal/health/check_test.go
index 0cdd2703..1b6f1126 100644
--- a/internal/health/check_test.go
+++ b/internal/health/check_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package health_test
import (
diff --git a/internal/health/types.go b/internal/health/types.go
index 4bb5de21..b2c08229 100644
--- a/internal/health/types.go
+++ b/internal/health/types.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package health
// Level tracks health count categories.
diff --git a/internal/keys.go b/internal/keys.go
index f184b49d..1b53cfec 100644
--- a/internal/keys.go
+++ b/internal/keys.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package internal
// ContextKey represents context key.
diff --git a/internal/model/cluster.go b/internal/model/cluster.go
index 363c3232..d4d2ce30 100644
--- a/internal/model/cluster.go
+++ b/internal/model/cluster.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model
import (
diff --git a/internal/model/cluster_info.go b/internal/model/cluster_info.go
index 0f9d98c2..ac69ee85 100644
--- a/internal/model/cluster_info.go
+++ b/internal/model/cluster_info.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model
import (
diff --git a/internal/model/cluster_info_test.go b/internal/model/cluster_info_test.go
index 84155a65..48426ba5 100644
--- a/internal/model/cluster_info_test.go
+++ b/internal/model/cluster_info_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model_test
import (
diff --git a/internal/model/cmd_buff.go b/internal/model/cmd_buff.go
index ba4db4b3..f62ca799 100644
--- a/internal/model/cmd_buff.go
+++ b/internal/model/cmd_buff.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model
import (
diff --git a/internal/model/cmd_buff_test.go b/internal/model/cmd_buff_test.go
index 0933affb..924470ad 100644
--- a/internal/model/cmd_buff_test.go
+++ b/internal/model/cmd_buff_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model_test
import (
diff --git a/internal/model/describe.go b/internal/model/describe.go
index 8a44af1b..96b5a6df 100644
--- a/internal/model/describe.go
+++ b/internal/model/describe.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model
import (
diff --git a/internal/model/fish_buff.go b/internal/model/fish_buff.go
index 77098df9..b21e2f49 100644
--- a/internal/model/fish_buff.go
+++ b/internal/model/fish_buff.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model
import (
diff --git a/internal/model/fish_buff_test.go b/internal/model/fish_buff_test.go
index 7fcde498..ae8abe3c 100644
--- a/internal/model/fish_buff_test.go
+++ b/internal/model/fish_buff_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model_test
import (
diff --git a/internal/model/flash.go b/internal/model/flash.go
index 150ae8bc..def08b09 100644
--- a/internal/model/flash.go
+++ b/internal/model/flash.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model
import (
diff --git a/internal/model/flash_test.go b/internal/model/flash_test.go
index 2749239f..2484fdef 100644
--- a/internal/model/flash_test.go
+++ b/internal/model/flash_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model_test
import (
diff --git a/internal/model/helpers.go b/internal/model/helpers.go
index c09cd5e5..507de869 100644
--- a/internal/model/helpers.go
+++ b/internal/model/helpers.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model
import (
diff --git a/internal/model/helpers_test.go b/internal/model/helpers_test.go
index ce45d5ec..813889e2 100644
--- a/internal/model/helpers_test.go
+++ b/internal/model/helpers_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model_test
import (
diff --git a/internal/model/hint.go b/internal/model/hint.go
index 84a5ecdd..8bdeb850 100644
--- a/internal/model/hint.go
+++ b/internal/model/hint.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model
// HintListener represents a menu hints listener.
diff --git a/internal/model/hint_test.go b/internal/model/hint_test.go
index ef1af096..383b2c50 100644
--- a/internal/model/hint_test.go
+++ b/internal/model/hint_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model_test
import (
diff --git a/internal/model/history.go b/internal/model/history.go
index 922720f3..04881796 100644
--- a/internal/model/history.go
+++ b/internal/model/history.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model
import (
diff --git a/internal/model/history_test.go b/internal/model/history_test.go
index d4fade17..16556752 100644
--- a/internal/model/history_test.go
+++ b/internal/model/history_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model_test
import (
diff --git a/internal/model/log.go b/internal/model/log.go
index 52290a73..09297b06 100644
--- a/internal/model/log.go
+++ b/internal/model/log.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model
import (
diff --git a/internal/model/log_int_test.go b/internal/model/log_int_test.go
index c7d17c65..57dd9520 100644
--- a/internal/model/log_int_test.go
+++ b/internal/model/log_int_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model
import (
diff --git a/internal/model/log_test.go b/internal/model/log_test.go
index 09d00c69..18f629ba 100644
--- a/internal/model/log_test.go
+++ b/internal/model/log_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model_test
import (
diff --git a/internal/model/menu_hint.go b/internal/model/menu_hint.go
index 7d1da43e..2ac0ffc9 100644
--- a/internal/model/menu_hint.go
+++ b/internal/model/menu_hint.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model
import (
diff --git a/internal/model/menu_hint_test.go b/internal/model/menu_hint_test.go
index d364dc4c..0aa23449 100644
--- a/internal/model/menu_hint_test.go
+++ b/internal/model/menu_hint_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model_test
import (
diff --git a/internal/model/mock_clustermeta_test.go b/internal/model/mock_clustermeta_test.go
index a47a8434..bec88926 100644
--- a/internal/model/mock_clustermeta_test.go
+++ b/internal/model/mock_clustermeta_test.go
@@ -1,6 +1,9 @@
// Code generated by pegomock. DO NOT EDIT.
// Source: github.com/derailed/k9s/internal/model (interfaces: ClusterMeta)
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model_test
import (
diff --git a/internal/model/mock_connection_test.go b/internal/model/mock_connection_test.go
index 9ce08a7e..e0ed4c9a 100644
--- a/internal/model/mock_connection_test.go
+++ b/internal/model/mock_connection_test.go
@@ -1,6 +1,9 @@
// Code generated by pegomock. DO NOT EDIT.
// Source: github.com/derailed/k9s/internal/client (interfaces: Connection)
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model_test
import (
diff --git a/internal/model/mock_metricsserver_test.go b/internal/model/mock_metricsserver_test.go
index 8447f578..f206c11b 100644
--- a/internal/model/mock_metricsserver_test.go
+++ b/internal/model/mock_metricsserver_test.go
@@ -1,6 +1,9 @@
// Code generated by pegomock. DO NOT EDIT.
// Source: github.com/derailed/k9s/internal/model (interfaces: MetricsServer)
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model_test
import (
diff --git a/internal/model/pulse.go b/internal/model/pulse.go
index d26ecc83..0b62a1a7 100644
--- a/internal/model/pulse.go
+++ b/internal/model/pulse.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model
import (
diff --git a/internal/model/pulse_health.go b/internal/model/pulse_health.go
index 8cd9b10e..ecac480c 100644
--- a/internal/model/pulse_health.go
+++ b/internal/model/pulse_health.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model
import (
diff --git a/internal/model/registry.go b/internal/model/registry.go
index bce63731..cb425979 100644
--- a/internal/model/registry.go
+++ b/internal/model/registry.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model
import (
diff --git a/internal/model/semver.go b/internal/model/semver.go
index d2fea1e9..4b88794e 100644
--- a/internal/model/semver.go
+++ b/internal/model/semver.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model
import (
diff --git a/internal/model/semver_test.go b/internal/model/semver_test.go
index 6ab3fd5b..45876f1e 100644
--- a/internal/model/semver_test.go
+++ b/internal/model/semver_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model_test
import (
diff --git a/internal/model/stack.go b/internal/model/stack.go
index 53cd0fea..19f291a3 100644
--- a/internal/model/stack.go
+++ b/internal/model/stack.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model
import (
diff --git a/internal/model/stack_test.go b/internal/model/stack_test.go
index 9ccc5ed6..aaa43fbc 100644
--- a/internal/model/stack_test.go
+++ b/internal/model/stack_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model_test
import (
diff --git a/internal/model/table.go b/internal/model/table.go
index 861fd1eb..8924ef6c 100644
--- a/internal/model/table.go
+++ b/internal/model/table.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model
import (
diff --git a/internal/model/table_int_test.go b/internal/model/table_int_test.go
index 7667efb8..abe9a606 100644
--- a/internal/model/table_int_test.go
+++ b/internal/model/table_int_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model
import (
diff --git a/internal/model/table_test.go b/internal/model/table_test.go
index 55d7261a..b944cc6d 100644
--- a/internal/model/table_test.go
+++ b/internal/model/table_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model_test
import (
diff --git a/internal/model/text.go b/internal/model/text.go
index 7b1f5e2b..0cc98cfd 100644
--- a/internal/model/text.go
+++ b/internal/model/text.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model
import (
diff --git a/internal/model/text_test.go b/internal/model/text_test.go
index d8c2f949..ffa390cd 100644
--- a/internal/model/text_test.go
+++ b/internal/model/text_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model_test
import (
diff --git a/internal/model/tree.go b/internal/model/tree.go
index 3287d406..4e21954c 100644
--- a/internal/model/tree.go
+++ b/internal/model/tree.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model
import (
diff --git a/internal/model/types.go b/internal/model/types.go
index 489fedd6..3c9c8e3c 100644
--- a/internal/model/types.go
+++ b/internal/model/types.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model
import (
diff --git a/internal/model/values.go b/internal/model/values.go
index 46022bc2..ef1a8981 100644
--- a/internal/model/values.go
+++ b/internal/model/values.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model
import (
diff --git a/internal/model/yaml.go b/internal/model/yaml.go
index e919b26f..dd914462 100644
--- a/internal/model/yaml.go
+++ b/internal/model/yaml.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model
import (
diff --git a/internal/model/yaml_test.go b/internal/model/yaml_test.go
index 9b595134..35612cef 100644
--- a/internal/model/yaml_test.go
+++ b/internal/model/yaml_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package model
import (
diff --git a/internal/perf/benchmark.go b/internal/perf/benchmark.go
index 8cd52937..c13f3a0a 100644
--- a/internal/perf/benchmark.go
+++ b/internal/perf/benchmark.go
@@ -1,10 +1,12 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package perf
import (
"bytes"
"context"
"fmt"
- "github.com/derailed/k9s/internal/dao"
"io"
"net/http"
"os"
@@ -12,6 +14,8 @@ import (
"sync"
"time"
+ "github.com/derailed/k9s/internal/dao"
+
"github.com/derailed/k9s/internal/client"
"github.com/derailed/k9s/internal/config"
"github.com/rakyll/hey/requester"
diff --git a/internal/port/ann.go b/internal/port/ann.go
index 8d7b12b4..17ebb589 100644
--- a/internal/port/ann.go
+++ b/internal/port/ann.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package port
import (
diff --git a/internal/port/ann_test.go b/internal/port/ann_test.go
index 23518857..336a4f37 100644
--- a/internal/port/ann_test.go
+++ b/internal/port/ann_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package port_test
import (
diff --git a/internal/port/co_portspec.go b/internal/port/co_portspec.go
index 13c8ef81..bddec971 100644
--- a/internal/port/co_portspec.go
+++ b/internal/port/co_portspec.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package port
import (
diff --git a/internal/port/co_portspec_test.go b/internal/port/co_portspec_test.go
index 3886477a..39f57040 100644
--- a/internal/port/co_portspec_test.go
+++ b/internal/port/co_portspec_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package port_test
import (
diff --git a/internal/port/pf.go b/internal/port/pf.go
index fb4da570..26d4ffbc 100644
--- a/internal/port/pf.go
+++ b/internal/port/pf.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package port
import (
diff --git a/internal/port/pf_test.go b/internal/port/pf_test.go
index 62b6bf99..66a11d15 100644
--- a/internal/port/pf_test.go
+++ b/internal/port/pf_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package port_test
import (
diff --git a/internal/port/pfs.go b/internal/port/pfs.go
index 10cc6bd0..85b0a2e5 100644
--- a/internal/port/pfs.go
+++ b/internal/port/pfs.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package port
import (
diff --git a/internal/port/pfs_test.go b/internal/port/pfs_test.go
index 7b60d866..3d003a47 100644
--- a/internal/port/pfs_test.go
+++ b/internal/port/pfs_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package port_test
import (
diff --git a/internal/port/tunnel.go b/internal/port/tunnel.go
index 8074372a..758675ad 100644
--- a/internal/port/tunnel.go
+++ b/internal/port/tunnel.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package port
import (
diff --git a/internal/port/tunnel_test.go b/internal/port/tunnel_test.go
index d88dab58..763d4120 100644
--- a/internal/port/tunnel_test.go
+++ b/internal/port/tunnel_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package port_test
import (
diff --git a/internal/render/alias.go b/internal/render/alias.go
index 2cb65816..78855128 100644
--- a/internal/render/alias.go
+++ b/internal/render/alias.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/alias_test.go b/internal/render/alias_test.go
index 18c0e5ae..a9c87a84 100644
--- a/internal/render/alias_test.go
+++ b/internal/render/alias_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/base.go b/internal/render/base.go
index 3a668993..65e66b44 100644
--- a/internal/render/base.go
+++ b/internal/render/base.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
// DecoratorFunc decorates a string.
diff --git a/internal/render/benchmark.go b/internal/render/benchmark.go
index 2b60cff6..9124e0d1 100644
--- a/internal/render/benchmark.go
+++ b/internal/render/benchmark.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/benchmark_int_test.go b/internal/render/benchmark_int_test.go
index 4fe09639..bd296e23 100644
--- a/internal/render/benchmark_int_test.go
+++ b/internal/render/benchmark_int_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/color.go b/internal/render/color.go
index cc1339b2..816c1e39 100644
--- a/internal/render/color.go
+++ b/internal/render/color.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/color_test.go b/internal/render/color_test.go
index 77bb4c51..baa8c5ff 100644
--- a/internal/render/color_test.go
+++ b/internal/render/color_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/container.go b/internal/render/container.go
index e879265e..c32b64d9 100644
--- a/internal/render/container.go
+++ b/internal/render/container.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/container_test.go b/internal/render/container_test.go
index f826ab59..e574df56 100644
--- a/internal/render/container_test.go
+++ b/internal/render/container_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/context.go b/internal/render/context.go
index f4f1c54b..3c105e0f 100644
--- a/internal/render/context.go
+++ b/internal/render/context.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/context_test.go b/internal/render/context_test.go
index b1ebbd96..4c20249c 100644
--- a/internal/render/context_test.go
+++ b/internal/render/context_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/cr.go b/internal/render/cr.go
index c115d2e5..925b7535 100644
--- a/internal/render/cr.go
+++ b/internal/render/cr.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/cr_test.go b/internal/render/cr_test.go
index 32492370..d6908a0e 100644
--- a/internal/render/cr_test.go
+++ b/internal/render/cr_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/crb.go b/internal/render/crb.go
index 89873e98..04842356 100644
--- a/internal/render/crb.go
+++ b/internal/render/crb.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/crb_test.go b/internal/render/crb_test.go
index 931046e8..85aac276 100644
--- a/internal/render/crb_test.go
+++ b/internal/render/crb_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/crd.go b/internal/render/crd.go
index 0e6c2b00..b51f90b0 100644
--- a/internal/render/crd.go
+++ b/internal/render/crd.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/crd_test.go b/internal/render/crd_test.go
index 0bd9d186..fd128510 100644
--- a/internal/render/crd_test.go
+++ b/internal/render/crd_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/cronjob.go b/internal/render/cronjob.go
index 8dc08a2e..efaab7b3 100644
--- a/internal/render/cronjob.go
+++ b/internal/render/cronjob.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/cronjob_test.go b/internal/render/cronjob_test.go
index 0e3f8679..e24ac785 100644
--- a/internal/render/cronjob_test.go
+++ b/internal/render/cronjob_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/delta.go b/internal/render/delta.go
index 557dd25f..bdc95aa1 100644
--- a/internal/render/delta.go
+++ b/internal/render/delta.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/delta_test.go b/internal/render/delta_test.go
index c8140d7f..08d8960c 100644
--- a/internal/render/delta_test.go
+++ b/internal/render/delta_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/dir.go b/internal/render/dir.go
index 6c50c17d..b444c8c7 100644
--- a/internal/render/dir.go
+++ b/internal/render/dir.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/dp.go b/internal/render/dp.go
index 88841df5..1e1b1738 100644
--- a/internal/render/dp.go
+++ b/internal/render/dp.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/dp_test.go b/internal/render/dp_test.go
index ea8168c6..c82a1def 100644
--- a/internal/render/dp_test.go
+++ b/internal/render/dp_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/ds.go b/internal/render/ds.go
index 80a3bff2..dea0da35 100644
--- a/internal/render/ds.go
+++ b/internal/render/ds.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/ds_test.go b/internal/render/ds_test.go
index 4ab37963..a4935445 100644
--- a/internal/render/ds_test.go
+++ b/internal/render/ds_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/ep.go b/internal/render/ep.go
index bb8c23c1..4a6b3640 100644
--- a/internal/render/ep.go
+++ b/internal/render/ep.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/ep_test.go b/internal/render/ep_test.go
index 2e1b0a10..620f87e0 100644
--- a/internal/render/ep_test.go
+++ b/internal/render/ep_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/ev.go b/internal/render/ev.go
index 018e899c..f028c238 100644
--- a/internal/render/ev.go
+++ b/internal/render/ev.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/ev_test.go b/internal/render/ev_test.go
index e65137a1..ce7ba27c 100644
--- a/internal/render/ev_test.go
+++ b/internal/render/ev_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
// BOZO!!
diff --git a/internal/render/generic.go b/internal/render/generic.go
index d049d204..f72ae0dc 100644
--- a/internal/render/generic.go
+++ b/internal/render/generic.go
@@ -1,13 +1,17 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
"encoding/json"
"errors"
"fmt"
- "github.com/rs/zerolog/log"
"strings"
"github.com/derailed/k9s/internal/client"
+ "github.com/rs/zerolog/log"
+
metav1beta1 "k8s.io/apimachinery/pkg/apis/meta/v1beta1"
)
diff --git a/internal/render/generic_test.go b/internal/render/generic_test.go
index 7f3f4884..07172d29 100644
--- a/internal/render/generic_test.go
+++ b/internal/render/generic_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/header.go b/internal/render/header.go
index 253189cf..780cc3d0 100644
--- a/internal/render/header.go
+++ b/internal/render/header.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/header_test.go b/internal/render/header_test.go
index 140e89c8..8c82a141 100644
--- a/internal/render/header_test.go
+++ b/internal/render/header_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/helm.go b/internal/render/helm.go
index 2d2e0d77..6ec905a6 100644
--- a/internal/render/helm.go
+++ b/internal/render/helm.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/helpers.go b/internal/render/helpers.go
index 95ed2cf6..cba70c9a 100644
--- a/internal/render/helpers.go
+++ b/internal/render/helpers.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/helpers_test.go b/internal/render/helpers_test.go
index 7f8e2c0d..8b220c21 100644
--- a/internal/render/helpers_test.go
+++ b/internal/render/helpers_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/job.go b/internal/render/job.go
index a8e4e5b1..c036a82d 100644
--- a/internal/render/job.go
+++ b/internal/render/job.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/job_test.go b/internal/render/job_test.go
index e2a5fe5c..54792912 100644
--- a/internal/render/job_test.go
+++ b/internal/render/job_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/node.go b/internal/render/node.go
index 2e892b10..3fb2bd74 100644
--- a/internal/render/node.go
+++ b/internal/render/node.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/node_test.go b/internal/render/node_test.go
index 90986827..58467020 100644
--- a/internal/render/node_test.go
+++ b/internal/render/node_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/np.go b/internal/render/np.go
index 9275a217..2904a353 100644
--- a/internal/render/np.go
+++ b/internal/render/np.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/np_test.go b/internal/render/np_test.go
index 2726e6c4..bd3412f2 100644
--- a/internal/render/np_test.go
+++ b/internal/render/np_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/ns.go b/internal/render/ns.go
index 35a8d783..6dcd2a6f 100644
--- a/internal/render/ns.go
+++ b/internal/render/ns.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/ns_test.go b/internal/render/ns_test.go
index d8352456..81ca793e 100644
--- a/internal/render/ns_test.go
+++ b/internal/render/ns_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/ofaas.go b/internal/render/ofaas.go
index a529b320..0df5f904 100644
--- a/internal/render/ofaas.go
+++ b/internal/render/ofaas.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
// BOZO!! revamp with latest...
diff --git a/internal/render/ofaas_test.go b/internal/render/ofaas_test.go
index 41222a1c..dbefa9d6 100644
--- a/internal/render/ofaas_test.go
+++ b/internal/render/ofaas_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
// BOZO!! revamp with latest...
diff --git a/internal/render/pdb.go b/internal/render/pdb.go
index 24d4ccb9..357133b0 100644
--- a/internal/render/pdb.go
+++ b/internal/render/pdb.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/pdb_test.go b/internal/render/pdb_test.go
index 7e14753b..2f40acae 100644
--- a/internal/render/pdb_test.go
+++ b/internal/render/pdb_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/pod.go b/internal/render/pod.go
index afbcd7da..46d118e4 100644
--- a/internal/render/pod.go
+++ b/internal/render/pod.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/pod_test.go b/internal/render/pod_test.go
index e439b6ca..c442c2e5 100644
--- a/internal/render/pod_test.go
+++ b/internal/render/pod_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/policy.go b/internal/render/policy.go
index 9f3ff919..568ac540 100644
--- a/internal/render/policy.go
+++ b/internal/render/policy.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/policy_test.go b/internal/render/policy_test.go
index 3e9943a3..536425fb 100644
--- a/internal/render/policy_test.go
+++ b/internal/render/policy_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/popeye.go b/internal/render/popeye.go
index b9709008..c8dd757d 100644
--- a/internal/render/popeye.go
+++ b/internal/render/popeye.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/port_forward_test.go b/internal/render/port_forward_test.go
index d8728f8f..4084cb40 100644
--- a/internal/render/port_forward_test.go
+++ b/internal/render/port_forward_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/portforward.go b/internal/render/portforward.go
index 2a039acf..d3908bb9 100644
--- a/internal/render/portforward.go
+++ b/internal/render/portforward.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/pv.go b/internal/render/pv.go
index 630c2e77..72ee55e0 100644
--- a/internal/render/pv.go
+++ b/internal/render/pv.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/pv_test.go b/internal/render/pv_test.go
index d1e4cf21..93f77fb5 100644
--- a/internal/render/pv_test.go
+++ b/internal/render/pv_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/pvc.go b/internal/render/pvc.go
index f5514d5b..76414e12 100644
--- a/internal/render/pvc.go
+++ b/internal/render/pvc.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/pvc_test.go b/internal/render/pvc_test.go
index 8a210efd..c1005cb1 100644
--- a/internal/render/pvc_test.go
+++ b/internal/render/pvc_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/rbac.go b/internal/render/rbac.go
index 5d0f7a3c..5af09c87 100644
--- a/internal/render/rbac.go
+++ b/internal/render/rbac.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/reference.go b/internal/render/reference.go
index 33b8493c..31695438 100644
--- a/internal/render/reference.go
+++ b/internal/render/reference.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/reference_test.go b/internal/render/reference_test.go
index 697ffcc1..50654c1a 100644
--- a/internal/render/reference_test.go
+++ b/internal/render/reference_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/render_test.go b/internal/render/render_test.go
index 20a1c331..13192cb9 100644
--- a/internal/render/render_test.go
+++ b/internal/render/render_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/ro.go b/internal/render/ro.go
index c1ce340f..e88e084e 100644
--- a/internal/render/ro.go
+++ b/internal/render/ro.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/ro_test.go b/internal/render/ro_test.go
index b2bbe66c..1e0e4cc5 100644
--- a/internal/render/ro_test.go
+++ b/internal/render/ro_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/rob.go b/internal/render/rob.go
index 9c9f6f8d..1cb56adc 100644
--- a/internal/render/rob.go
+++ b/internal/render/rob.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/rob_test.go b/internal/render/rob_test.go
index cb3e4882..306cab30 100644
--- a/internal/render/rob_test.go
+++ b/internal/render/rob_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/row.go b/internal/render/row.go
index 1bd5e387..c562bc23 100644
--- a/internal/render/row.go
+++ b/internal/render/row.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/row_event.go b/internal/render/row_event.go
index 83c7c440..e3f1230d 100644
--- a/internal/render/row_event.go
+++ b/internal/render/row_event.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/row_event_test.go b/internal/render/row_event_test.go
index c1066730..d75e1894 100644
--- a/internal/render/row_event_test.go
+++ b/internal/render/row_event_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/row_test.go b/internal/render/row_test.go
index 82e4728f..f1d5a5bc 100644
--- a/internal/render/row_test.go
+++ b/internal/render/row_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/rs.go b/internal/render/rs.go
index b5eb1a38..59a1a16b 100644
--- a/internal/render/rs.go
+++ b/internal/render/rs.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/rs_test.go b/internal/render/rs_test.go
index ef051afb..066f5e08 100644
--- a/internal/render/rs_test.go
+++ b/internal/render/rs_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/sa.go b/internal/render/sa.go
index ac728cb1..dfa276ad 100644
--- a/internal/render/sa.go
+++ b/internal/render/sa.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/sa_test.go b/internal/render/sa_test.go
index 31a7b772..c143bc50 100644
--- a/internal/render/sa_test.go
+++ b/internal/render/sa_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/sc.go b/internal/render/sc.go
index a2995eab..392c1c4e 100644
--- a/internal/render/sc.go
+++ b/internal/render/sc.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/sc_test.go b/internal/render/sc_test.go
index 60cd56f2..004e91c4 100644
--- a/internal/render/sc_test.go
+++ b/internal/render/sc_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/screen_dump.go b/internal/render/screen_dump.go
index 230303a1..36293fe6 100644
--- a/internal/render/screen_dump.go
+++ b/internal/render/screen_dump.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/screen_dump_test.go b/internal/render/screen_dump_test.go
index b7737a90..bde7f109 100644
--- a/internal/render/screen_dump_test.go
+++ b/internal/render/screen_dump_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/sts.go b/internal/render/sts.go
index 58b8f2ba..78be0c12 100644
--- a/internal/render/sts.go
+++ b/internal/render/sts.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/sts_test.go b/internal/render/sts_test.go
index 600daa93..f3f9c7bd 100644
--- a/internal/render/sts_test.go
+++ b/internal/render/sts_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/subject.go b/internal/render/subject.go
index 07b5c548..b61f95da 100644
--- a/internal/render/subject.go
+++ b/internal/render/subject.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/svc.go b/internal/render/svc.go
index 6c72d361..642c293c 100644
--- a/internal/render/svc.go
+++ b/internal/render/svc.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/svc_test.go b/internal/render/svc_test.go
index 51df0522..e0b70471 100644
--- a/internal/render/svc_test.go
+++ b/internal/render/svc_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/table_data.go b/internal/render/table_data.go
index c3f3b12b..aaf96cf2 100644
--- a/internal/render/table_data.go
+++ b/internal/render/table_data.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
import (
diff --git a/internal/render/table_data_test.go b/internal/render/table_data_test.go
index efa81fe0..0ddb7c15 100644
--- a/internal/render/table_data_test.go
+++ b/internal/render/table_data_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render_test
import (
diff --git a/internal/render/types.go b/internal/render/types.go
index 9f5b1ca0..3b1c37ae 100644
--- a/internal/render/types.go
+++ b/internal/render/types.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package render
const (
diff --git a/internal/tchart/component.go b/internal/tchart/component.go
index c86e3cb2..b557631e 100644
--- a/internal/tchart/component.go
+++ b/internal/tchart/component.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package tchart
import (
diff --git a/internal/tchart/component_int_test.go b/internal/tchart/component_int_test.go
index ec01a381..22945ac5 100644
--- a/internal/tchart/component_int_test.go
+++ b/internal/tchart/component_int_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package tchart
import (
diff --git a/internal/tchart/component_test.go b/internal/tchart/component_test.go
index eee63a60..07a89c5a 100644
--- a/internal/tchart/component_test.go
+++ b/internal/tchart/component_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package tchart_test
import (
diff --git a/internal/tchart/dot_matrix.go b/internal/tchart/dot_matrix.go
index cfa781f2..ae6b1bcc 100644
--- a/internal/tchart/dot_matrix.go
+++ b/internal/tchart/dot_matrix.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package tchart
import (
diff --git a/internal/tchart/dot_matrix_test.go b/internal/tchart/dot_matrix_test.go
index ad9cf7df..df1c85d2 100644
--- a/internal/tchart/dot_matrix_test.go
+++ b/internal/tchart/dot_matrix_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package tchart_test
import (
diff --git a/internal/tchart/gauge.go b/internal/tchart/gauge.go
index f2da6931..5b830528 100644
--- a/internal/tchart/gauge.go
+++ b/internal/tchart/gauge.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package tchart
import (
diff --git a/internal/tchart/gauge_int_test.go b/internal/tchart/gauge_int_test.go
index a335eeea..b9f19160 100644
--- a/internal/tchart/gauge_int_test.go
+++ b/internal/tchart/gauge_int_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package tchart
import (
diff --git a/internal/tchart/gauge_test.go b/internal/tchart/gauge_test.go
index 1843947f..8708402a 100644
--- a/internal/tchart/gauge_test.go
+++ b/internal/tchart/gauge_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package tchart_test
import (
diff --git a/internal/tchart/sparkline.go b/internal/tchart/sparkline.go
index ce304f13..2df126b0 100644
--- a/internal/tchart/sparkline.go
+++ b/internal/tchart/sparkline.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package tchart
import (
diff --git a/internal/tchart/sparkline_int_test.go b/internal/tchart/sparkline_int_test.go
index 36d51612..14f0cd9b 100644
--- a/internal/tchart/sparkline_int_test.go
+++ b/internal/tchart/sparkline_int_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package tchart
import (
diff --git a/internal/ui/action.go b/internal/ui/action.go
index 1bf9e072..66913ba3 100644
--- a/internal/ui/action.go
+++ b/internal/ui/action.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui
import (
diff --git a/internal/ui/action_test.go b/internal/ui/action_test.go
index 34a7d669..de031ebd 100644
--- a/internal/ui/action_test.go
+++ b/internal/ui/action_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui_test
import (
diff --git a/internal/ui/app.go b/internal/ui/app.go
index fd7aa247..3b656af2 100644
--- a/internal/ui/app.go
+++ b/internal/ui/app.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui
import (
diff --git a/internal/ui/app_test.go b/internal/ui/app_test.go
index 133b45aa..a49cb34f 100644
--- a/internal/ui/app_test.go
+++ b/internal/ui/app_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui_test
import (
diff --git a/internal/ui/config.go b/internal/ui/config.go
index 4a95e101..cc177fa6 100644
--- a/internal/ui/config.go
+++ b/internal/ui/config.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui
import (
diff --git a/internal/ui/config_test.go b/internal/ui/config_test.go
index fd2ffe56..25355d53 100644
--- a/internal/ui/config_test.go
+++ b/internal/ui/config_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui_test
import (
diff --git a/internal/ui/crumbs.go b/internal/ui/crumbs.go
index 4c976d54..8eab7230 100644
--- a/internal/ui/crumbs.go
+++ b/internal/ui/crumbs.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui
import (
diff --git a/internal/ui/crumbs_test.go b/internal/ui/crumbs_test.go
index 80b7fdb9..7d992768 100644
--- a/internal/ui/crumbs_test.go
+++ b/internal/ui/crumbs_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui_test
import (
diff --git a/internal/ui/deltas.go b/internal/ui/deltas.go
index 99b8c73f..5e4fdb7b 100644
--- a/internal/ui/deltas.go
+++ b/internal/ui/deltas.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui
import (
diff --git a/internal/ui/deltas_test.go b/internal/ui/deltas_test.go
index 6796d589..005dc3ed 100644
--- a/internal/ui/deltas_test.go
+++ b/internal/ui/deltas_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui
import (
diff --git a/internal/ui/dialog/confirm.go b/internal/ui/dialog/confirm.go
index fec29876..6ddcc9d5 100644
--- a/internal/ui/dialog/confirm.go
+++ b/internal/ui/dialog/confirm.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dialog
import (
diff --git a/internal/ui/dialog/confirm_test.go b/internal/ui/dialog/confirm_test.go
index f5cd1429..211e2091 100644
--- a/internal/ui/dialog/confirm_test.go
+++ b/internal/ui/dialog/confirm_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dialog
import (
diff --git a/internal/ui/dialog/delete.go b/internal/ui/dialog/delete.go
index bd1bb675..686e95e6 100644
--- a/internal/ui/dialog/delete.go
+++ b/internal/ui/dialog/delete.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dialog
import (
diff --git a/internal/ui/dialog/delete_test.go b/internal/ui/dialog/delete_test.go
index a4c14166..39b2eba0 100644
--- a/internal/ui/dialog/delete_test.go
+++ b/internal/ui/dialog/delete_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dialog
import (
diff --git a/internal/ui/dialog/error.go b/internal/ui/dialog/error.go
index f39e31fd..26fdebfa 100644
--- a/internal/ui/dialog/error.go
+++ b/internal/ui/dialog/error.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dialog
import (
diff --git a/internal/ui/dialog/error_test.go b/internal/ui/dialog/error_test.go
index f882ac68..b21fa4c6 100644
--- a/internal/ui/dialog/error_test.go
+++ b/internal/ui/dialog/error_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dialog
import (
diff --git a/internal/ui/dialog/transfer.go b/internal/ui/dialog/transfer.go
index 7d51cba4..7db559c0 100644
--- a/internal/ui/dialog/transfer.go
+++ b/internal/ui/dialog/transfer.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package dialog
import (
diff --git a/internal/ui/flash.go b/internal/ui/flash.go
index 7455a132..33c9a8c1 100644
--- a/internal/ui/flash.go
+++ b/internal/ui/flash.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui
import (
diff --git a/internal/ui/flash_test.go b/internal/ui/flash_test.go
index 76acec05..1b5cd6e3 100644
--- a/internal/ui/flash_test.go
+++ b/internal/ui/flash_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui_test
import (
diff --git a/internal/ui/indicator.go b/internal/ui/indicator.go
index cdcabdb7..2e0b524b 100644
--- a/internal/ui/indicator.go
+++ b/internal/ui/indicator.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui
import (
diff --git a/internal/ui/indicator_test.go b/internal/ui/indicator_test.go
index 7a3a0922..ad782274 100644
--- a/internal/ui/indicator_test.go
+++ b/internal/ui/indicator_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui_test
import (
diff --git a/internal/ui/key.go b/internal/ui/key.go
index fbf0028c..ff90b310 100644
--- a/internal/ui/key.go
+++ b/internal/ui/key.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui
import "github.com/derailed/tcell/v2"
diff --git a/internal/ui/logo.go b/internal/ui/logo.go
index a8cddad0..1971410c 100644
--- a/internal/ui/logo.go
+++ b/internal/ui/logo.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui
import (
diff --git a/internal/ui/logo_test.go b/internal/ui/logo_test.go
index 2e3c053c..6a2fc0a0 100644
--- a/internal/ui/logo_test.go
+++ b/internal/ui/logo_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui_test
import (
diff --git a/internal/ui/menu.go b/internal/ui/menu.go
index 02cbedbe..f86a81e9 100644
--- a/internal/ui/menu.go
+++ b/internal/ui/menu.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui
import (
diff --git a/internal/ui/menu_test.go b/internal/ui/menu_test.go
index ab000d93..599e2d2c 100644
--- a/internal/ui/menu_test.go
+++ b/internal/ui/menu_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui_test
import (
diff --git a/internal/ui/padding.go b/internal/ui/padding.go
index 62272da4..b57cdb1f 100644
--- a/internal/ui/padding.go
+++ b/internal/ui/padding.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui
import (
diff --git a/internal/ui/padding_test.go b/internal/ui/padding_test.go
index 18aa83e5..51a0bcde 100644
--- a/internal/ui/padding_test.go
+++ b/internal/ui/padding_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui
import (
diff --git a/internal/ui/pages.go b/internal/ui/pages.go
index 2f0835ef..580bb096 100644
--- a/internal/ui/pages.go
+++ b/internal/ui/pages.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui
import (
diff --git a/internal/ui/pages_test.go b/internal/ui/pages_test.go
index f6e447e4..2dc0ea7c 100644
--- a/internal/ui/pages_test.go
+++ b/internal/ui/pages_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui_test
import (
diff --git a/internal/ui/prompt.go b/internal/ui/prompt.go
index 117dd100..fd405195 100644
--- a/internal/ui/prompt.go
+++ b/internal/ui/prompt.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui
import (
diff --git a/internal/ui/prompt_test.go b/internal/ui/prompt_test.go
index 41b1c964..bbe456a3 100644
--- a/internal/ui/prompt_test.go
+++ b/internal/ui/prompt_test.go
@@ -1,9 +1,13 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui_test
import (
- "github.com/derailed/tcell/v2"
"testing"
+ "github.com/derailed/tcell/v2"
+
"github.com/derailed/k9s/internal/config"
"github.com/derailed/k9s/internal/model"
"github.com/derailed/k9s/internal/ui"
diff --git a/internal/ui/select_table.go b/internal/ui/select_table.go
index 335f3622..cf07c9f4 100644
--- a/internal/ui/select_table.go
+++ b/internal/ui/select_table.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui
import (
diff --git a/internal/ui/splash.go b/internal/ui/splash.go
index ba44f209..bfe58e46 100644
--- a/internal/ui/splash.go
+++ b/internal/ui/splash.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui
import (
diff --git a/internal/ui/splash_test.go b/internal/ui/splash_test.go
index 2113819c..69b4b50d 100644
--- a/internal/ui/splash_test.go
+++ b/internal/ui/splash_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui_test
import (
diff --git a/internal/ui/table.go b/internal/ui/table.go
index 08d57436..47d1714b 100644
--- a/internal/ui/table.go
+++ b/internal/ui/table.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui
import (
diff --git a/internal/ui/table_helper.go b/internal/ui/table_helper.go
index 21af967c..0e89bf89 100644
--- a/internal/ui/table_helper.go
+++ b/internal/ui/table_helper.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui
import (
diff --git a/internal/ui/table_helper_test.go b/internal/ui/table_helper_test.go
index 8f1c18d9..f532643e 100644
--- a/internal/ui/table_helper_test.go
+++ b/internal/ui/table_helper_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui
import (
diff --git a/internal/ui/table_test.go b/internal/ui/table_test.go
index 6567bb9a..ab5e09ba 100644
--- a/internal/ui/table_test.go
+++ b/internal/ui/table_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui_test
import (
diff --git a/internal/ui/tree.go b/internal/ui/tree.go
index c6241620..10eb31e7 100644
--- a/internal/ui/tree.go
+++ b/internal/ui/tree.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui
import (
diff --git a/internal/ui/types.go b/internal/ui/types.go
index 297f22b4..b426bc24 100644
--- a/internal/ui/types.go
+++ b/internal/ui/types.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package ui
import (
diff --git a/internal/view/actions.go b/internal/view/actions.go
index ff6b2a1c..8410911d 100644
--- a/internal/view/actions.go
+++ b/internal/view/actions.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/actions_test.go b/internal/view/actions_test.go
index 7371091b..47176c0a 100644
--- a/internal/view/actions_test.go
+++ b/internal/view/actions_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/alias.go b/internal/view/alias.go
index c31623e8..fc33dc92 100644
--- a/internal/view/alias.go
+++ b/internal/view/alias.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/alias_test.go b/internal/view/alias_test.go
index 00f91684..1b82b378 100644
--- a/internal/view/alias_test.go
+++ b/internal/view/alias_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view_test
import (
diff --git a/internal/view/app.go b/internal/view/app.go
index a921d443..89a4e147 100644
--- a/internal/view/app.go
+++ b/internal/view/app.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/app_test.go b/internal/view/app_test.go
index 4726eb9a..e214d7c4 100644
--- a/internal/view/app_test.go
+++ b/internal/view/app_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view_test
import (
diff --git a/internal/view/benchmark.go b/internal/view/benchmark.go
index 5601c42a..db9f856c 100644
--- a/internal/view/benchmark.go
+++ b/internal/view/benchmark.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/browser.go b/internal/view/browser.go
index 0678bfac..c5f46447 100644
--- a/internal/view/browser.go
+++ b/internal/view/browser.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/cluster_info.go b/internal/view/cluster_info.go
index c5a2cab7..8b91eff8 100644
--- a/internal/view/cluster_info.go
+++ b/internal/view/cluster_info.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/cm.go b/internal/view/cm.go
index a0793c9a..c1694ca6 100644
--- a/internal/view/cm.go
+++ b/internal/view/cm.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/cm_test.go b/internal/view/cm_test.go
index 461ff4ba..02781af4 100644
--- a/internal/view/cm_test.go
+++ b/internal/view/cm_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view_test
import (
diff --git a/internal/view/command.go b/internal/view/command.go
index 1cc473fb..0fc57bf0 100644
--- a/internal/view/command.go
+++ b/internal/view/command.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/container.go b/internal/view/container.go
index 9d39eda4..6094fd2e 100644
--- a/internal/view/container.go
+++ b/internal/view/container.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/container_test.go b/internal/view/container_test.go
index 161f4cec..cc1133e8 100644
--- a/internal/view/container_test.go
+++ b/internal/view/container_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view_test
import (
diff --git a/internal/view/context.go b/internal/view/context.go
index 4896d06a..97a5c91b 100644
--- a/internal/view/context.go
+++ b/internal/view/context.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/context_test.go b/internal/view/context_test.go
index e6ce542a..a265459a 100644
--- a/internal/view/context_test.go
+++ b/internal/view/context_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view_test
import (
diff --git a/internal/view/cow.go b/internal/view/cow.go
index 140faf99..d71f3e89 100644
--- a/internal/view/cow.go
+++ b/internal/view/cow.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/cronjob.go b/internal/view/cronjob.go
index cb265a35..a5a5d7de 100644
--- a/internal/view/cronjob.go
+++ b/internal/view/cronjob.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/details.go b/internal/view/details.go
index d65485a2..e3f96f44 100644
--- a/internal/view/details.go
+++ b/internal/view/details.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/dir.go b/internal/view/dir.go
index 38700a93..061a72f3 100644
--- a/internal/view/dir.go
+++ b/internal/view/dir.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/dir_int_test.go b/internal/view/dir_int_test.go
index a22d715e..d6f4c170 100644
--- a/internal/view/dir_int_test.go
+++ b/internal/view/dir_int_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/dir_test.go b/internal/view/dir_test.go
index b47f12b1..7757eb8a 100644
--- a/internal/view/dir_test.go
+++ b/internal/view/dir_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view_test
import (
diff --git a/internal/view/dp.go b/internal/view/dp.go
index 5f473ed6..8f569487 100644
--- a/internal/view/dp.go
+++ b/internal/view/dp.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/dp_test.go b/internal/view/dp_test.go
index 9c006652..5434db4b 100644
--- a/internal/view/dp_test.go
+++ b/internal/view/dp_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view_test
import (
diff --git a/internal/view/drain_dialog.go b/internal/view/drain_dialog.go
index ed56a99e..722c89ce 100644
--- a/internal/view/drain_dialog.go
+++ b/internal/view/drain_dialog.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/ds.go b/internal/view/ds.go
index da89b998..7276e74f 100644
--- a/internal/view/ds.go
+++ b/internal/view/ds.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/ds_test.go b/internal/view/ds_test.go
index d43fe84b..17e8ed9d 100644
--- a/internal/view/ds_test.go
+++ b/internal/view/ds_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view_test
import (
diff --git a/internal/view/env.go b/internal/view/env.go
index 733beefe..8ac71558 100644
--- a/internal/view/env.go
+++ b/internal/view/env.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/env_test.go b/internal/view/env_test.go
index 2dab6cb7..e00744f4 100644
--- a/internal/view/env_test.go
+++ b/internal/view/env_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/event.go b/internal/view/event.go
index f2bb0230..6de78f30 100644
--- a/internal/view/event.go
+++ b/internal/view/event.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/exec.go b/internal/view/exec.go
index e80dca0a..691afc8a 100644
--- a/internal/view/exec.go
+++ b/internal/view/exec.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/group.go b/internal/view/group.go
index ad074a00..503b190c 100644
--- a/internal/view/group.go
+++ b/internal/view/group.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/helm.go b/internal/view/helm.go
index 6e6e2968..73e6df89 100644
--- a/internal/view/helm.go
+++ b/internal/view/helm.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/help.go b/internal/view/help.go
index fb95384c..d5ff15cb 100644
--- a/internal/view/help.go
+++ b/internal/view/help.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/help_test.go b/internal/view/help_test.go
index 2f29a6b7..818002ae 100644
--- a/internal/view/help_test.go
+++ b/internal/view/help_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view_test
import (
diff --git a/internal/view/helpers.go b/internal/view/helpers.go
index da65c794..dea7a101 100644
--- a/internal/view/helpers.go
+++ b/internal/view/helpers.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/helpers_test.go b/internal/view/helpers_test.go
index a2c182e2..70699ae1 100644
--- a/internal/view/helpers_test.go
+++ b/internal/view/helpers_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/image_extender.go b/internal/view/image_extender.go
index 64f953a9..b67764c6 100644
--- a/internal/view/image_extender.go
+++ b/internal/view/image_extender.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/job.go b/internal/view/job.go
index e9421d49..60f391b3 100644
--- a/internal/view/job.go
+++ b/internal/view/job.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/live_view.go b/internal/view/live_view.go
index d9d6af89..40163d50 100644
--- a/internal/view/live_view.go
+++ b/internal/view/live_view.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/live_view_test.go b/internal/view/live_view_test.go
index d3b801cc..045cfd45 100644
--- a/internal/view/live_view_test.go
+++ b/internal/view/live_view_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/log.go b/internal/view/log.go
index a5f9e343..2b673246 100644
--- a/internal/view/log.go
+++ b/internal/view/log.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/log_indicator.go b/internal/view/log_indicator.go
index bd685910..ee95f97f 100644
--- a/internal/view/log_indicator.go
+++ b/internal/view/log_indicator.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/log_indicator_test.go b/internal/view/log_indicator_test.go
index 2432a938..0c793f59 100644
--- a/internal/view/log_indicator_test.go
+++ b/internal/view/log_indicator_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view_test
import (
diff --git a/internal/view/log_int_test.go b/internal/view/log_int_test.go
index ac0a101a..f6b5e4ae 100644
--- a/internal/view/log_int_test.go
+++ b/internal/view/log_int_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/log_test.go b/internal/view/log_test.go
index 945aae3e..f5ae47a3 100644
--- a/internal/view/log_test.go
+++ b/internal/view/log_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view_test
import (
diff --git a/internal/view/logger.go b/internal/view/logger.go
index 19446dea..a3da224b 100644
--- a/internal/view/logger.go
+++ b/internal/view/logger.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/logs_extender.go b/internal/view/logs_extender.go
index d390c365..151d28ad 100644
--- a/internal/view/logs_extender.go
+++ b/internal/view/logs_extender.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/node.go b/internal/view/node.go
index d70b2b51..82e9d33f 100644
--- a/internal/view/node.go
+++ b/internal/view/node.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/ns.go b/internal/view/ns.go
index 0b99de0e..263018d5 100644
--- a/internal/view/ns.go
+++ b/internal/view/ns.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/ns_test.go b/internal/view/ns_test.go
index 093e2e57..3c06101f 100644
--- a/internal/view/ns_test.go
+++ b/internal/view/ns_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view_test
import (
diff --git a/internal/view/ofaas.go b/internal/view/ofaas.go
index 5925a2e8..d2bc27f2 100644
--- a/internal/view/ofaas.go
+++ b/internal/view/ofaas.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
// BOZO!! revamp with latest...
diff --git a/internal/view/page_stack.go b/internal/view/page_stack.go
index b7c4d80c..03721e95 100644
--- a/internal/view/page_stack.go
+++ b/internal/view/page_stack.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/pf.go b/internal/view/pf.go
index c4063b96..bef01c06 100644
--- a/internal/view/pf.go
+++ b/internal/view/pf.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/pf_dialog.go b/internal/view/pf_dialog.go
index 134fed72..a80e8d8a 100644
--- a/internal/view/pf_dialog.go
+++ b/internal/view/pf_dialog.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/pf_dialog_test.go b/internal/view/pf_dialog_test.go
index e59ccaec..e38fcb12 100644
--- a/internal/view/pf_dialog_test.go
+++ b/internal/view/pf_dialog_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/pf_extender.go b/internal/view/pf_extender.go
index 42120c12..37040a8a 100644
--- a/internal/view/pf_extender.go
+++ b/internal/view/pf_extender.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/pf_extender_test.go b/internal/view/pf_extender_test.go
index c7cf4c21..20a7214e 100644
--- a/internal/view/pf_extender_test.go
+++ b/internal/view/pf_extender_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/pf_test.go b/internal/view/pf_test.go
index 505cc60b..245e5939 100644
--- a/internal/view/pf_test.go
+++ b/internal/view/pf_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view_test
import (
diff --git a/internal/view/picker.go b/internal/view/picker.go
index c789a370..bca03867 100644
--- a/internal/view/picker.go
+++ b/internal/view/picker.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/pod.go b/internal/view/pod.go
index a526b0cc..d2fd2b43 100644
--- a/internal/view/pod.go
+++ b/internal/view/pod.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/pod_int_test.go b/internal/view/pod_int_test.go
index e359924b..3a84f727 100644
--- a/internal/view/pod_int_test.go
+++ b/internal/view/pod_int_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/pod_test.go b/internal/view/pod_test.go
index 1f942588..101bd5da 100644
--- a/internal/view/pod_test.go
+++ b/internal/view/pod_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view_test
import (
diff --git a/internal/view/policy.go b/internal/view/policy.go
index 7b5c8b04..35081e99 100644
--- a/internal/view/policy.go
+++ b/internal/view/policy.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/popeye.go b/internal/view/popeye.go
index 8a92eb6d..ca5c2737 100644
--- a/internal/view/popeye.go
+++ b/internal/view/popeye.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/priorityclass.go b/internal/view/priorityclass.go
index 4325bca8..78a06866 100644
--- a/internal/view/priorityclass.go
+++ b/internal/view/priorityclass.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/priorityclass_test.go b/internal/view/priorityclass_test.go
index 1c258fb9..60cef2ab 100644
--- a/internal/view/priorityclass_test.go
+++ b/internal/view/priorityclass_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view_test
import (
diff --git a/internal/view/pulse.go b/internal/view/pulse.go
index 1f060142..d8acc0d0 100644
--- a/internal/view/pulse.go
+++ b/internal/view/pulse.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/pvc.go b/internal/view/pvc.go
index ca82465c..075ff4ef 100644
--- a/internal/view/pvc.go
+++ b/internal/view/pvc.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/pvc_test.go b/internal/view/pvc_test.go
index 15595498..cdaaaaf2 100644
--- a/internal/view/pvc_test.go
+++ b/internal/view/pvc_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view_test
import (
diff --git a/internal/view/rbac.go b/internal/view/rbac.go
index d3b4e8af..0205ee22 100644
--- a/internal/view/rbac.go
+++ b/internal/view/rbac.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/rbac_test.go b/internal/view/rbac_test.go
index 2c0972c8..5d72d358 100644
--- a/internal/view/rbac_test.go
+++ b/internal/view/rbac_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view_test
import (
diff --git a/internal/view/reference.go b/internal/view/reference.go
index b8ed13bd..d9a76d80 100644
--- a/internal/view/reference.go
+++ b/internal/view/reference.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/reference_test.go b/internal/view/reference_test.go
index c7e17f37..0e3578f7 100644
--- a/internal/view/reference_test.go
+++ b/internal/view/reference_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view_test
import (
diff --git a/internal/view/registrar.go b/internal/view/registrar.go
index 1d6b375f..c5a226e5 100644
--- a/internal/view/registrar.go
+++ b/internal/view/registrar.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/restart_extender.go b/internal/view/restart_extender.go
index 18f25e7a..629e68f0 100644
--- a/internal/view/restart_extender.go
+++ b/internal/view/restart_extender.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/rs.go b/internal/view/rs.go
index 14fd11ef..9a0e64fc 100644
--- a/internal/view/rs.go
+++ b/internal/view/rs.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/sa.go b/internal/view/sa.go
index 622fccf5..d4a94a08 100644
--- a/internal/view/sa.go
+++ b/internal/view/sa.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/sanitizer.go b/internal/view/sanitizer.go
index 2a63d47e..2b71d7d4 100644
--- a/internal/view/sanitizer.go
+++ b/internal/view/sanitizer.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/scale_extender.go b/internal/view/scale_extender.go
index 15754d1c..86bc7809 100644
--- a/internal/view/scale_extender.go
+++ b/internal/view/scale_extender.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/screen_dump.go b/internal/view/screen_dump.go
index 5f02fd39..9f12c300 100644
--- a/internal/view/screen_dump.go
+++ b/internal/view/screen_dump.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/screen_dump_test.go b/internal/view/screen_dump_test.go
index 0e191f1b..b812435b 100644
--- a/internal/view/screen_dump_test.go
+++ b/internal/view/screen_dump_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view_test
import (
diff --git a/internal/view/secret.go b/internal/view/secret.go
index bec084d0..73a15805 100644
--- a/internal/view/secret.go
+++ b/internal/view/secret.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/secret_test.go b/internal/view/secret_test.go
index c2d9d4df..fc07d682 100644
--- a/internal/view/secret_test.go
+++ b/internal/view/secret_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view_test
import (
diff --git a/internal/view/sts.go b/internal/view/sts.go
index ee400f57..d8b72d7f 100644
--- a/internal/view/sts.go
+++ b/internal/view/sts.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/sts_test.go b/internal/view/sts_test.go
index 6b737490..889b025f 100644
--- a/internal/view/sts_test.go
+++ b/internal/view/sts_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view_test
import (
diff --git a/internal/view/svc.go b/internal/view/svc.go
index 82a18d90..dbbfccfb 100644
--- a/internal/view/svc.go
+++ b/internal/view/svc.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/svc_test.go b/internal/view/svc_test.go
index fef2e960..babf102a 100644
--- a/internal/view/svc_test.go
+++ b/internal/view/svc_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view_test
import (
diff --git a/internal/view/table.go b/internal/view/table.go
index ab45e5fe..4db21ff1 100644
--- a/internal/view/table.go
+++ b/internal/view/table.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/table_helper.go b/internal/view/table_helper.go
index e72e0cfd..38336559 100644
--- a/internal/view/table_helper.go
+++ b/internal/view/table_helper.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/table_int_test.go b/internal/view/table_int_test.go
index cebdc3f5..bb20ce49 100644
--- a/internal/view/table_int_test.go
+++ b/internal/view/table_int_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/types.go b/internal/view/types.go
index c54372de..6a1316f8 100644
--- a/internal/view/types.go
+++ b/internal/view/types.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/user.go b/internal/view/user.go
index ab7d9bea..12477d9c 100644
--- a/internal/view/user.go
+++ b/internal/view/user.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/xray.go b/internal/view/xray.go
index 74fe8f8c..d2ffd581 100644
--- a/internal/view/xray.go
+++ b/internal/view/xray.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/yaml.go b/internal/view/yaml.go
index d95d7dc7..a1998a26 100644
--- a/internal/view/yaml.go
+++ b/internal/view/yaml.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/view/yaml_test.go b/internal/view/yaml_test.go
index 4c01a6a0..c65d1a0e 100644
--- a/internal/view/yaml_test.go
+++ b/internal/view/yaml_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package view
import (
diff --git a/internal/watch/factory.go b/internal/watch/factory.go
index 5d358e6d..70fbe5fb 100644
--- a/internal/watch/factory.go
+++ b/internal/watch/factory.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package watch
import (
diff --git a/internal/watch/forwarders.go b/internal/watch/forwarders.go
index 453df605..94abc162 100644
--- a/internal/watch/forwarders.go
+++ b/internal/watch/forwarders.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package watch
import (
diff --git a/internal/watch/forwarders_test.go b/internal/watch/forwarders_test.go
index aa061ba0..f6a22b5b 100644
--- a/internal/watch/forwarders_test.go
+++ b/internal/watch/forwarders_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package watch_test
import (
diff --git a/internal/watch/helper.go b/internal/watch/helper.go
index d75169a0..2381f4b4 100644
--- a/internal/watch/helper.go
+++ b/internal/watch/helper.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package watch
import (
diff --git a/internal/xray/container.go b/internal/xray/container.go
index 67b8e013..1f87336c 100644
--- a/internal/xray/container.go
+++ b/internal/xray/container.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package xray
import (
diff --git a/internal/xray/container_test.go b/internal/xray/container_test.go
index d635525a..09d51b73 100644
--- a/internal/xray/container_test.go
+++ b/internal/xray/container_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package xray_test
import (
diff --git a/internal/xray/dp.go b/internal/xray/dp.go
index f650f683..bfc47ef0 100644
--- a/internal/xray/dp.go
+++ b/internal/xray/dp.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package xray
import (
diff --git a/internal/xray/dp_test.go b/internal/xray/dp_test.go
index c394a92a..7286e9dd 100644
--- a/internal/xray/dp_test.go
+++ b/internal/xray/dp_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package xray_test
import (
diff --git a/internal/xray/ds.go b/internal/xray/ds.go
index 3ce8e707..fe55dc71 100644
--- a/internal/xray/ds.go
+++ b/internal/xray/ds.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package xray
import (
diff --git a/internal/xray/ds_test.go b/internal/xray/ds_test.go
index 4c28cca2..40c4db11 100644
--- a/internal/xray/ds_test.go
+++ b/internal/xray/ds_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package xray_test
import (
diff --git a/internal/xray/generic.go b/internal/xray/generic.go
index af733019..76843850 100644
--- a/internal/xray/generic.go
+++ b/internal/xray/generic.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package xray
import (
diff --git a/internal/xray/generic_test.go b/internal/xray/generic_test.go
index 24175b9a..61b1dc89 100644
--- a/internal/xray/generic_test.go
+++ b/internal/xray/generic_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package xray_test
import (
diff --git a/internal/xray/ns.go b/internal/xray/ns.go
index 006e78c7..647ada3d 100644
--- a/internal/xray/ns.go
+++ b/internal/xray/ns.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package xray
import (
diff --git a/internal/xray/ns_test.go b/internal/xray/ns_test.go
index c8fac72a..ab214e92 100644
--- a/internal/xray/ns_test.go
+++ b/internal/xray/ns_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package xray_test
import (
diff --git a/internal/xray/pod.go b/internal/xray/pod.go
index 1e3daadb..ddac6d91 100644
--- a/internal/xray/pod.go
+++ b/internal/xray/pod.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package xray
import (
diff --git a/internal/xray/pod_test.go b/internal/xray/pod_test.go
index 7d144304..23dd18bc 100644
--- a/internal/xray/pod_test.go
+++ b/internal/xray/pod_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package xray_test
import (
diff --git a/internal/xray/rs.go b/internal/xray/rs.go
index f920b3fe..9dfda4c6 100644
--- a/internal/xray/rs.go
+++ b/internal/xray/rs.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package xray
import (
diff --git a/internal/xray/rs_test.go b/internal/xray/rs_test.go
index fab86f43..52e739f1 100644
--- a/internal/xray/rs_test.go
+++ b/internal/xray/rs_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package xray_test
import (
diff --git a/internal/xray/sa.go b/internal/xray/sa.go
index abc13593..a39ae062 100644
--- a/internal/xray/sa.go
+++ b/internal/xray/sa.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package xray
import (
diff --git a/internal/xray/sa_test.go b/internal/xray/sa_test.go
index 0cfadf20..7afdf0de 100644
--- a/internal/xray/sa_test.go
+++ b/internal/xray/sa_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package xray_test
import (
diff --git a/internal/xray/section.go b/internal/xray/section.go
index 4cd377eb..c458b5fd 100644
--- a/internal/xray/section.go
+++ b/internal/xray/section.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package xray
import (
diff --git a/internal/xray/sts.go b/internal/xray/sts.go
index 81ecf9c0..0917c196 100644
--- a/internal/xray/sts.go
+++ b/internal/xray/sts.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package xray
import (
diff --git a/internal/xray/sts_test.go b/internal/xray/sts_test.go
index c939653a..7d044471 100644
--- a/internal/xray/sts_test.go
+++ b/internal/xray/sts_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package xray_test
import (
diff --git a/internal/xray/svc.go b/internal/xray/svc.go
index d8bac3f9..af535c7c 100644
--- a/internal/xray/svc.go
+++ b/internal/xray/svc.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package xray
import (
diff --git a/internal/xray/svc_test.go b/internal/xray/svc_test.go
index 8c6f28f3..14be39e5 100644
--- a/internal/xray/svc_test.go
+++ b/internal/xray/svc_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package xray_test
import (
diff --git a/internal/xray/tree_node.go b/internal/xray/tree_node.go
index 9a962300..fb1a820f 100644
--- a/internal/xray/tree_node.go
+++ b/internal/xray/tree_node.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package xray
import (
diff --git a/internal/xray/tree_node_test.go b/internal/xray/tree_node_test.go
index fbce2e10..cd3442c7 100644
--- a/internal/xray/tree_node_test.go
+++ b/internal/xray/tree_node_test.go
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package xray_test
import (
diff --git a/main.go b/main.go
index dd4d99ad..13ce9520 100644
--- a/main.go
+++ b/main.go
@@ -1,3 +1,12 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
+// SPDX-License-Identifier: Apache-2.0
+// Copyright Authors of K9s
+
package main
import (