From 8add8c0992b0bfe63e3cc65b0df4c5cee0bb5436 Mon Sep 17 00:00:00 2001 From: Lucas Teligioridis Date: Tue, 14 Feb 2023 11:13:22 +1100 Subject: [PATCH 001/130] Add missing help menu to one_dark skin (#1973) Missing color profile for the help menu, so matches the skin theme correctly. --- skins/one_dark.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/skins/one_dark.yml b/skins/one_dark.yml index 498ae80744..809fd782a5 100644 --- a/skins/one_dark.yml +++ b/skins/one_dark.yml @@ -23,6 +23,12 @@ k9s: info: fgColor: *grey sectionColor: *green + help: + fgColor: *foreground + bgColor: *background + keyColor: *yellow + numKeyColor: *blue + sectionColor: *purple dialog: fgColor: *black bgColor: *background From 507de34000206bcbf64929380d07180a16730ffa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Feb 2023 17:13:47 -0700 Subject: [PATCH 002/130] Bump github.com/derailed/popeye from 0.10.1 to 0.11.0 (#1975) Bumps [github.com/derailed/popeye](https://github.com/derailed/popeye) from 0.10.1 to 0.11.0. - [Release notes](https://github.com/derailed/popeye/releases) - [Changelog](https://github.com/derailed/popeye/blob/master/.goreleaser.yml) - [Commits](https://github.com/derailed/popeye/compare/v0.10.1...v0.11.0) --- updated-dependencies: - dependency-name: github.com/derailed/popeye dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index ff1548e1af..8542a4de7d 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/adrg/xdg v0.4.0 github.com/atotto/clipboard v0.1.4 github.com/cenkalti/backoff/v4 v4.2.0 - github.com/derailed/popeye v0.10.1 + github.com/derailed/popeye v0.11.0 github.com/derailed/tcell/v2 v2.3.1-rc.3 github.com/derailed/tview v0.8.1 github.com/fatih/color v1.14.1 diff --git a/go.sum b/go.sum index 9652caf1bd..1e565cb338 100644 --- a/go.sum +++ b/go.sum @@ -123,8 +123,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/denisenkom/go-mssqldb v0.9.0/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= -github.com/derailed/popeye v0.10.1 h1:+lyLDGUyKANfMiSHV8X1pHD1HhcxEXCa8ple0ZvyRqc= -github.com/derailed/popeye v0.10.1/go.mod h1:ChD8GPNvgsgjLG5fQBZIxm3VOhFrqd10Xn8IxfuGn4w= +github.com/derailed/popeye v0.11.0 h1:Yh3GS9nbzNohIkqaJ62miGWT4kRhh6lba0czbBStXdA= +github.com/derailed/popeye v0.11.0/go.mod h1:NkvjHH1F94tE7Ui17PlYiagQcFt7yXUV2hIhPzSK+0w= github.com/derailed/tcell/v2 v2.3.1-rc.3 h1:9s1fmyRcSPRlwr/C9tcpJKCujbrtmPpST6dcMUD2piY= github.com/derailed/tcell/v2 v2.3.1-rc.3/go.mod h1:nf68BEL8fjmXQHJT3xZjoZFs2uXOzyJcNAQqGUEMrFY= github.com/derailed/tview v0.8.1 h1:hvNR3LLrWEuaQbPYfBnRn7bYkxCP26K6nX9J+MGlhyw= From 4f4cb4b03a4bc1bf22e9917751ca3461f80864e0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Feb 2023 17:14:05 -0700 Subject: [PATCH 003/130] Bump golang.org/x/text from 0.6.0 to 0.7.0 (#1976) Bumps [golang.org/x/text](https://github.com/golang/text) from 0.6.0 to 0.7.0. - [Release notes](https://github.com/golang/text/releases) - [Commits](https://github.com/golang/text/compare/v0.6.0...v0.7.0) --- updated-dependencies: - dependency-name: golang.org/x/text dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 8542a4de7d..a626480a65 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/sahilm/fuzzy v0.1.0 github.com/spf13/cobra v1.6.1 github.com/stretchr/testify v1.8.1 - golang.org/x/text v0.6.0 + golang.org/x/text v0.7.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.11.1 k8s.io/api v0.26.1 diff --git a/go.sum b/go.sum index 1e565cb338..28cb09d03e 100644 --- a/go.sum +++ b/go.sum @@ -851,8 +851,8 @@ golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.6.0 h1:3XmdazWV+ubf7QgHSTWeykHOci5oeekaGJBLkrkaw4k= -golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= From 17a61323e155fa193db0a86d8e53238c7852454b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Feb 2023 17:14:23 -0700 Subject: [PATCH 004/130] Bump alpine from 3.17.1 to 3.17.2 (#1974) Bumps alpine from 3.17.1 to 3.17.2. --- updated-dependencies: - dependency-name: alpine dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index d77ed5b788..74cfe467b0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,7 +12,7 @@ RUN apk --no-cache add --update make libx11-dev git gcc libc-dev curl && make bu # ----------------------------------------------------------------------------- # Build the final Docker image -FROM alpine:3.17.1 +FROM alpine:3.17.2 ARG KUBECTL_VERSION="v1.25.2" COPY --from=build /k9s/execs/k9s /bin/k9s From 4d42a900cc0e72699044888130008f04ce15d784 Mon Sep 17 00:00:00 2001 From: Aleksei Romanenko Date: Thu, 16 Mar 2023 15:37:09 -0400 Subject: [PATCH 005/130] Fix #2007: Remove debug command (#2011) Co-authored-by: Aleksei Romanenko --- internal/view/browser.go | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/internal/view/browser.go b/internal/view/browser.go index 3d833dd815..ab9f46f8c7 100644 --- a/internal/view/browser.go +++ b/internal/view/browser.go @@ -121,7 +121,6 @@ func (b *Browser) bindKeys(aa ui.KeyActions) { tcell.KeyEscape: ui.NewSharedKeyAction("Filter Reset", b.resetCmd, false), tcell.KeyEnter: ui.NewSharedKeyAction("Filter", b.filterCmd, false), tcell.KeyHelp: ui.NewSharedKeyAction("Help", b.helpCmd, false), - ui.KeyV: ui.NewSharedKeyAction("Zob", b.blahCmd, true), }) } @@ -351,28 +350,6 @@ func (b *Browser) deleteCmd(evt *tcell.EventKey) *tcell.EventKey { return nil } -func (b *Browser) blahCmd(evt *tcell.EventKey) *tcell.EventKey { - b.Stop() - defer b.Start() - { - v := NewDetails(b.app, "Results", "Blee", true) - if err := v.app.inject(v, false); err != nil { - v.app.Flash().Err(err) - } - - for i := 0; i < 10; i++ { - j := i - b.app.QueueUpdateDraw(func() { - log.Debug().Msgf("YO %d", j) - fmt.Fprintf(v.GetWriter(), "Yo %d\n", j) - time.Sleep(1 * time.Second) - }) - } - } - - return nil -} - func (b *Browser) describeCmd(evt *tcell.EventKey) *tcell.EventKey { path := b.GetSelectedItem() if path == "" { From feeba9e83ddaf04f3936da71ed89b9256257dd45 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Mar 2023 13:47:53 -0600 Subject: [PATCH 006/130] Bump golang from 1.20.0-alpine3.16 to 1.20.2-alpine3.16 (#2008) Bumps golang from 1.20.0-alpine3.16 to 1.20.2-alpine3.16. --- updated-dependencies: - dependency-name: golang dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 74cfe467b0..0f9724f42a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # ----------------------------------------------------------------------------- # The base image for building the k9s binary -FROM golang:1.20.0-alpine3.16 AS build +FROM golang:1.20.2-alpine3.16 AS build WORKDIR /k9s COPY go.mod go.sum main.go Makefile ./ From c5d910fba6a2423a5063deb6dbb4950f500c31aa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Mar 2023 14:05:14 -0600 Subject: [PATCH 007/130] Bump golang.org/x/net from 0.5.0 to 0.7.0 (#2000) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.5.0 to 0.7.0. - [Release notes](https://github.com/golang/net/releases) - [Commits](https://github.com/golang/net/compare/v0.5.0...v0.7.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index a626480a65..b12271b227 100644 --- a/go.mod +++ b/go.mod @@ -134,11 +134,11 @@ require ( github.com/xlab/treeprint v1.1.0 // indirect go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 // indirect golang.org/x/crypto v0.5.0 // indirect - golang.org/x/net v0.5.0 // indirect + golang.org/x/net v0.7.0 // indirect golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b // indirect golang.org/x/sync v0.1.0 // indirect - golang.org/x/sys v0.4.0 // indirect - golang.org/x/term v0.4.0 // indirect + golang.org/x/sys v0.5.0 // indirect + golang.org/x/term v0.5.0 // indirect golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21 // indirect diff --git a/go.sum b/go.sum index 28cb09d03e..92a7ea2128 100644 --- a/go.sum +++ b/go.sum @@ -732,8 +732,8 @@ golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= -golang.org/x/net v0.5.0 h1:GyT4nK/YDHSqa1c4753ouYCDajOYKTja9Xb/OHtgvSw= -golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= +golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -834,13 +834,13 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18= -golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= -golang.org/x/term v0.4.0 h1:O7UWfv5+A2qiuulQk30kVinPoMtoIPeVaKLEgLpVkvg= -golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= +golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= From b2248f1a241f7bc9f2062ca26acde800b9ee67c7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Mar 2023 14:05:32 -0600 Subject: [PATCH 008/130] Bump k8s.io/client-go from 0.26.1 to 0.26.2 (#1999) Bumps [k8s.io/client-go](https://github.com/kubernetes/client-go) from 0.26.1 to 0.26.2. - [Release notes](https://github.com/kubernetes/client-go/releases) - [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md) - [Commits](https://github.com/kubernetes/client-go/compare/v0.26.1...v0.26.2) --- updated-dependencies: - dependency-name: k8s.io/client-go dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index b12271b227..e972130067 100644 --- a/go.mod +++ b/go.mod @@ -24,11 +24,11 @@ require ( golang.org/x/text v0.7.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.11.1 - k8s.io/api v0.26.1 + k8s.io/api v0.26.2 k8s.io/apiextensions-apiserver v0.26.1 - k8s.io/apimachinery v0.26.1 + k8s.io/apimachinery v0.26.2 k8s.io/cli-runtime v0.26.1 - k8s.io/client-go v0.26.1 + k8s.io/client-go v0.26.2 k8s.io/klog/v2 v2.90.0 k8s.io/kubectl v0.26.1 k8s.io/metrics v0.26.1 diff --git a/go.sum b/go.sum index 92a7ea2128..a185185d8d 100644 --- a/go.sum +++ b/go.sum @@ -1067,18 +1067,18 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -k8s.io/api v0.26.1 h1:f+SWYiPd/GsiWwVRz+NbFyCgvv75Pk9NK6dlkZgpCRQ= -k8s.io/api v0.26.1/go.mod h1:xd/GBNgR0f707+ATNyPmQ1oyKSgndzXij81FzWGsejg= +k8s.io/api v0.26.2 h1:dM3cinp3PGB6asOySalOZxEG4CZ0IAdJsrYZXE/ovGQ= +k8s.io/api v0.26.2/go.mod h1:1kjMQsFE+QHPfskEcVNgL3+Hp88B80uj0QtSOlj8itU= k8s.io/apiextensions-apiserver v0.26.1 h1:cB8h1SRk6e/+i3NOrQgSFij1B2S0Y0wDoNl66bn8RMI= k8s.io/apiextensions-apiserver v0.26.1/go.mod h1:AptjOSXDGuE0JICx/Em15PaoO7buLwTs0dGleIHixSM= -k8s.io/apimachinery v0.26.1 h1:8EZ/eGJL+hY/MYCNwhmDzVqq2lPl3N3Bo8rvweJwXUQ= -k8s.io/apimachinery v0.26.1/go.mod h1:tnPmbONNJ7ByJNz9+n9kMjNP8ON+1qoAIIC70lztu74= +k8s.io/apimachinery v0.26.2 h1:da1u3D5wfR5u2RpLhE/ZtZS2P7QvDgLZTi9wrNZl/tQ= +k8s.io/apimachinery v0.26.2/go.mod h1:ats7nN1LExKHvJ9TmwootT00Yz05MuYqPXEXaVeOy5I= k8s.io/apiserver v0.26.1 h1:6vmnAqCDO194SVCPU3MU8NcDgSqsUA62tBUSWrFXhsc= k8s.io/apiserver v0.26.1/go.mod h1:wr75z634Cv+sifswE9HlAo5FQ7UoUauIICRlOE+5dCg= k8s.io/cli-runtime v0.26.1 h1:f9+bRQ1V3elQsx37KmZy5fRAh56mVLbE9A7EMdlqVdI= k8s.io/cli-runtime v0.26.1/go.mod h1:+e5Ym/ARySKscUhZ8K3hZ+ZBo/wYPIcg+7b5sFYi6Gg= -k8s.io/client-go v0.26.1 h1:87CXzYJnAMGaa/IDDfRdhTzxk/wzGZ+/HUQpqgVSZXU= -k8s.io/client-go v0.26.1/go.mod h1:IWNSglg+rQ3OcvDkhY6+QLeasV4OYHDjdqeWkDQZwGE= +k8s.io/client-go v0.26.2 h1:s1WkVujHX3kTp4Zn4yGNFK+dlDXy1bAAkIl+cFAiuYI= +k8s.io/client-go v0.26.2/go.mod h1:u5EjOuSyBa09yqqyY7m3abZeovO/7D/WehVVlZ2qcqU= k8s.io/component-base v0.26.1 h1:4ahudpeQXHZL5kko+iDHqLj/FSGAEUnSVO0EBbgDd+4= k8s.io/component-base v0.26.1/go.mod h1:VHrLR0b58oC035w6YQiBSbtsf0ThuSwXP+p5dD/kAWU= k8s.io/klog/v2 v2.90.0 h1:VkTxIV/FjRXn1fgNNcKGM8cfmL1Z33ZjXRTVxKCoF5M= From 19016abd9de868b0dd03d3b40bfef04083f8a440 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Mar 2023 14:06:08 -0600 Subject: [PATCH 009/130] Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 (#1993) Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.1 to 1.8.2. - [Release notes](https://github.com/stretchr/testify/releases) - [Commits](https://github.com/stretchr/testify/compare/v1.8.1...v1.8.2) --- updated-dependencies: - dependency-name: github.com/stretchr/testify dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index e972130067..f84253b441 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/rs/zerolog v1.29.0 github.com/sahilm/fuzzy v0.1.0 github.com/spf13/cobra v1.6.1 - github.com/stretchr/testify v1.8.1 + github.com/stretchr/testify v1.8.2 golang.org/x/text v0.7.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.11.1 diff --git a/go.sum b/go.sum index a185185d8d..29fa47d7e0 100644 --- a/go.sum +++ b/go.sum @@ -594,8 +594,8 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= From 8e5b5ceebda9060849e4235784b0ab8b58d0e66d Mon Sep 17 00:00:00 2001 From: linehrr Date: Thu, 16 Mar 2023 16:08:30 -0400 Subject: [PATCH 010/130] added full logs viewing (#2002) Changes to be committed: modified: README.md new file: log_full.yml Co-authored-by: Ryne Yang --- plugins/README.md | 1 + plugins/log_full.yml | 55 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 plugins/log_full.yml diff --git a/plugins/README.md b/plugins/README.md index 78b3f17085..c247da9994 100644 --- a/plugins/README.md +++ b/plugins/README.md @@ -10,3 +10,4 @@ K9s plugins extend the tool to provide additional functionality via actions to f | dive.yml | Dive image layers | containers | d | [Dive](https://github.com/wagoodman/dive) | | k3d_root_shell.yml | Root shell to k3d container | containers | Shift-s | [jq](https://stedolan.github.io/jq/) | | get-all.yml | get all resources in a namespace | all | g | [Krew](https://krew.sigs.k8s.io/), [ketall](https://github.com/corneliusweig/ketall/) | +| log_full.yml | get full logs from pod/container | pods/containers | Ctrl-l | | diff --git a/plugins/log_full.yml b/plugins/log_full.yml new file mode 100644 index 0000000000..ad19e6f5cd --- /dev/null +++ b/plugins/log_full.yml @@ -0,0 +1,55 @@ +plugin: + # See https://k9scli.io/topics/plugins/ + raw-logs-follow: + shortCut: Ctrl-L + description: logs -f + scopes: + - po + command: kubectl + background: false + args: + - logs + - -f + - $NAME + - -n + - $NAMESPACE + - --context + - $CONTEXT + log-less: + shortCut: Shift-L + description: "logs|less" + scopes: + - po + command: bash + background: false + args: + - -c + - '"$@" | less' + - dummy-arg + - kubectl + - logs + - $NAME + - -n + - $NAMESPACE + - --context + - $CONTEXT + log-less-container: + shortCut: Shift-L + description: "logs|less" + scopes: + - containers + command: bash + background: false + args: + - -c + - '"$@" | less' + - dummy-arg + - kubectl + - logs + - -c + - $NAME + - $POD + - -n + - $NAMESPACE + - --context + - $CONTEXT From e1afb57c4bcf6d0fae8cc3a2ca27492b1cf3627c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Mar 2023 14:08:56 -0600 Subject: [PATCH 011/130] Bump k8s.io/metrics from 0.26.1 to 0.26.2 (#1998) Bumps [k8s.io/metrics](https://github.com/kubernetes/metrics) from 0.26.1 to 0.26.2. - [Release notes](https://github.com/kubernetes/metrics/releases) - [Commits](https://github.com/kubernetes/metrics/compare/v0.26.1...v0.26.2) --- updated-dependencies: - dependency-name: k8s.io/metrics dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index f84253b441..0e04a30ba5 100644 --- a/go.mod +++ b/go.mod @@ -31,7 +31,7 @@ require ( k8s.io/client-go v0.26.2 k8s.io/klog/v2 v2.90.0 k8s.io/kubectl v0.26.1 - k8s.io/metrics v0.26.1 + k8s.io/metrics v0.26.2 sigs.k8s.io/yaml v1.3.0 ) diff --git a/go.sum b/go.sum index 29fa47d7e0..4625d8efaa 100644 --- a/go.sum +++ b/go.sum @@ -1087,8 +1087,8 @@ k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 h1:+70TFaan3hfJzs+7VK2o+O k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280/go.mod h1:+Axhij7bCpeqhklhUTe3xmOn6bWxolyZEeyaFpjGtl4= k8s.io/kubectl v0.26.1 h1:K8A0Jjlwg8GqrxOXxAbjY5xtmXYeYjLU96cHp2WMQ7s= k8s.io/kubectl v0.26.1/go.mod h1:miYFVzldVbdIiXMrHZYmL/EDWwJKM+F0sSsdxsATFPo= -k8s.io/metrics v0.26.1 h1:iB+QdMLa2V70a7zb0XYEcaUpPM0y+p4fZN0UtxcPHLk= -k8s.io/metrics v0.26.1/go.mod h1:fMeLXmK/xgvckFG63GJ0kDjFiQH7P0Dpi5Lvhlo5DXE= +k8s.io/metrics v0.26.2 h1:2gUvUWWnHPdE2tyA5DvyHC8HGryr+izhY9i5dzLP06s= +k8s.io/metrics v0.26.2/go.mod h1:PX1wm9REV9hSGuw9GcXTFNDgab1KRXck3mNeiLYbRho= k8s.io/utils v0.0.0-20221107191617-1a15be271d1d h1:0Smp/HP1OH4Rvhe+4B8nWGERtlqAGSftbSbbmm45oFs= k8s.io/utils v0.0.0-20221107191617-1a15be271d1d/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= oras.land/oras-go v1.2.2 h1:0E9tOHUfrNH7TCDk5KU0jVBEzCqbfdyuVfGmJ7ZeRPE= From c032c32a0d42adbe73b54be93c7315d3f029557c Mon Sep 17 00:00:00 2001 From: "Gabriel M. Dutra" <0xdutra@gmail.com> Date: Thu, 16 Mar 2023 17:11:17 -0300 Subject: [PATCH 012/130] adding instruction to install in FreeBSD via pkg (#1991) --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index c4fdc8eeae..40c3fdac20 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,12 @@ K9s is available on Linux, macOS and Windows platforms. zypper install k9s ``` +* On FreeBSD + + ```shell + pkg install k9s + ``` + * Via [Scoop](https://scoop.sh) for Windows ```shell From 6dbbcbe4bee653eafaedee7f308f63c5b8fac00d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Mar 2023 14:13:29 -0600 Subject: [PATCH 013/130] Bump github.com/derailed/popeye from 0.11.0 to 0.11.1 (#1986) Bumps [github.com/derailed/popeye](https://github.com/derailed/popeye) from 0.11.0 to 0.11.1. - [Release notes](https://github.com/derailed/popeye/releases) - [Changelog](https://github.com/derailed/popeye/blob/master/.goreleaser.yml) - [Commits](https://github.com/derailed/popeye/compare/v0.11.0...v0.11.1) --- updated-dependencies: - dependency-name: github.com/derailed/popeye dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 0e04a30ba5..6cf723dff2 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/adrg/xdg v0.4.0 github.com/atotto/clipboard v0.1.4 github.com/cenkalti/backoff/v4 v4.2.0 - github.com/derailed/popeye v0.11.0 + github.com/derailed/popeye v0.11.1 github.com/derailed/tcell/v2 v2.3.1-rc.3 github.com/derailed/tview v0.8.1 github.com/fatih/color v1.14.1 diff --git a/go.sum b/go.sum index 4625d8efaa..ed55e8badf 100644 --- a/go.sum +++ b/go.sum @@ -123,8 +123,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/denisenkom/go-mssqldb v0.9.0/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= -github.com/derailed/popeye v0.11.0 h1:Yh3GS9nbzNohIkqaJ62miGWT4kRhh6lba0czbBStXdA= -github.com/derailed/popeye v0.11.0/go.mod h1:NkvjHH1F94tE7Ui17PlYiagQcFt7yXUV2hIhPzSK+0w= +github.com/derailed/popeye v0.11.1 h1:bjt5mXkcXY696ipuJqwY1sa5s3i431L9BlkQc6EuaqE= +github.com/derailed/popeye v0.11.1/go.mod h1:NkvjHH1F94tE7Ui17PlYiagQcFt7yXUV2hIhPzSK+0w= github.com/derailed/tcell/v2 v2.3.1-rc.3 h1:9s1fmyRcSPRlwr/C9tcpJKCujbrtmPpST6dcMUD2piY= github.com/derailed/tcell/v2 v2.3.1-rc.3/go.mod h1:nf68BEL8fjmXQHJT3xZjoZFs2uXOzyJcNAQqGUEMrFY= github.com/derailed/tview v0.8.1 h1:hvNR3LLrWEuaQbPYfBnRn7bYkxCP26K6nX9J+MGlhyw= From 3ccf68839bfc2de23f7e1799b75066f1214ad205 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Mar 2023 14:13:47 -0600 Subject: [PATCH 014/130] Bump github.com/containerd/containerd from 1.6.15 to 1.6.18 (#1981) Bumps [github.com/containerd/containerd](https://github.com/containerd/containerd) from 1.6.15 to 1.6.18. - [Release notes](https://github.com/containerd/containerd/releases) - [Changelog](https://github.com/containerd/containerd/blob/main/RELEASES.md) - [Commits](https://github.com/containerd/containerd/compare/v1.6.15...v1.6.18) --- updated-dependencies: - dependency-name: github.com/containerd/containerd dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 6cf723dff2..007d35eba4 100644 --- a/go.mod +++ b/go.mod @@ -48,7 +48,7 @@ require ( github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.1.2 // indirect github.com/chai2010/gettext-go v1.0.2 // indirect - github.com/containerd/containerd v1.6.15 // indirect + github.com/containerd/containerd v1.6.18 // indirect github.com/cyphar/filepath-securejoin v0.2.3 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/docker/cli v20.10.21+incompatible // indirect diff --git a/go.sum b/go.sum index ed55e8badf..80b580c21e 100644 --- a/go.sum +++ b/go.sum @@ -108,8 +108,8 @@ github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/containerd/cgroups v1.0.4 h1:jN/mbWBEaz+T1pi5OFtnkQ+8qnmEbAr1Oo1FRm5B0dA= -github.com/containerd/containerd v1.6.15 h1:4wWexxzLNHNE46aIETc6ge4TofO550v+BlLoANrbses= -github.com/containerd/containerd v1.6.15/go.mod h1:U2NnBPIhzJDm59xF7xB2MMHnKtggpZ+phKg8o2TKj2c= +github.com/containerd/containerd v1.6.18 h1:qZbsLvmyu+Vlty0/Ex5xc0z2YtKpIsb5n45mAMI+2Ns= +github.com/containerd/containerd v1.6.18/go.mod h1:1RdCUu95+gc2v9t3IL+zIlpClSmew7/0YS8O5eQZrOw= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= From 56f044d510153aab311eb1a6bc1c2fbca1d7c1b5 Mon Sep 17 00:00:00 2001 From: Aleksei Romanenko Date: Thu, 16 Mar 2023 16:14:41 -0400 Subject: [PATCH 015/130] Update k8s matrix (#1979) Co-authored-by: Aleksei Romanenko --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 40c3fdac20..ded9d85971 100644 --- a/README.md +++ b/README.md @@ -192,6 +192,7 @@ K9s is available on Linux, macOS and Windows platforms. | k9s | k8s client | | ------------------ | ---------- | +| >= v0.27.0 | 0.26.1 | | v0.26.7 - v0.26.6 | 0.25.3 | | v0.26.5 - v0.26.4 | 0.25.1 | | v0.26.3 - v0.26.1 | 0.24.3 | From 6b93085b619a4a2ea491eda6e1ec641123170847 Mon Sep 17 00:00:00 2001 From: Howie Zhao Date: Fri, 17 Mar 2023 04:16:31 +0800 Subject: [PATCH 016/130] fix: fix outdated stern links (#1990) --- plugins/log_stern.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/log_stern.yml b/plugins/log_stern.yml index c3c281195d..9f7b9ed079 100644 --- a/plugins/log_stern.yml +++ b/plugins/log_stern.yml @@ -1,5 +1,5 @@ plugin: - # Leverage stern (https://github.com/wercker/stern) to output logs. + # Leverage stern (https://github.com/stern/stern) to output logs. stern: shortCut: Ctrl-L confirm: false From ab9f960788229fdc717a64987ca2c7fd37d7315f Mon Sep 17 00:00:00 2001 From: Niko Janceski Date: Thu, 16 Mar 2023 16:27:44 -0400 Subject: [PATCH 017/130] Sort by view default only if sort not currently set (#1962) --- internal/ui/table.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/ui/table.go b/internal/ui/table.go index 511cefa6bf..ad0ea4b440 100644 --- a/internal/ui/table.go +++ b/internal/ui/table.go @@ -204,7 +204,7 @@ func (t *Table) doUpdate(data *render.TableData) { custData := data.Customize(cols, t.wide) if t.viewSetting != nil && t.viewSetting.SortColumn != "" { tokens := strings.Split(t.viewSetting.SortColumn, ":") - if custData.Header.IndexOf(tokens[0], false) >= 0 { + if custData.Header.IndexOf(tokens[0], false) >= 0 && custData.Header.IndexOf(t.sortCol.name, false) < 0 { t.sortCol.name, t.sortCol.asc = tokens[0], true if len(tokens) == 2 && tokens[1] == "desc" { t.sortCol.asc = false From 2955e2251f2f983b3360437436d909db808db059 Mon Sep 17 00:00:00 2001 From: croustiPoulet <51698462+croustiPoulet@users.noreply.github.com> Date: Fri, 17 Mar 2023 06:02:47 +0100 Subject: [PATCH 018/130] Fix accessing nil map (#1996) Co-authored-by: julien.demais.e --- internal/config/k9s.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/internal/config/k9s.go b/internal/config/k9s.go index 2358d9aba6..37c921333f 100644 --- a/internal/config/k9s.go +++ b/internal/config/k9s.go @@ -54,6 +54,9 @@ func (k *K9s) CurrentContextDir() string { // ActivateCluster initializes the active cluster is not present. func (k *K9s) ActivateCluster(ns string) { + if k.Clusters == nil { + k.Clusters = map[string]*Cluster{} + } if _, ok := k.Clusters[k.CurrentCluster]; ok { return } From c851277e3322fe346f320a9cfc17d20b688450c1 Mon Sep 17 00:00:00 2001 From: Jacob Lorenzen Date: Fri, 17 Mar 2023 16:11:09 +0100 Subject: [PATCH 019/130] feat: add support for renaming contexts. (#2006) * feat: add support for renaming contexts. * chore: try to reduce ABC * test: account for the `rename` hint --- internal/client/config.go | 20 +++++++++++ internal/view/context.go | 63 +++++++++++++++++++++++++++++++++++ internal/view/context_test.go | 2 +- 3 files changed, 84 insertions(+), 1 deletion(-) diff --git a/internal/client/config.go b/internal/client/config.go index 7fa4321869..9ec5fdd33e 100644 --- a/internal/client/config.go +++ b/internal/client/config.go @@ -133,6 +133,26 @@ func (c *Config) DelContext(n string) error { return clientcmd.ModifyConfig(acc, cfg, true) } +// RenameContext renames a context. +func (c *Config) RenameContext(old string, new string) error { + cfg, err := c.RawConfig() + if err != nil { + return err + } + + if _, ok := cfg.Contexts[new]; ok { + return fmt.Errorf("context with name %s already exists", new) + } + cfg.Contexts[new] = cfg.Contexts[old] + delete(cfg.Contexts, old) + acc, err := c.ConfigAccess() + if err != nil { + return err + } + + return clientcmd.ModifyConfig(acc, cfg, true) +} + // ContextNames fetch all available contexts. func (c *Config) ContextNames() ([]string, error) { cfg, err := c.RawConfig() diff --git a/internal/view/context.go b/internal/view/context.go index 8a9a19b866..77b5da16d6 100644 --- a/internal/view/context.go +++ b/internal/view/context.go @@ -7,9 +7,15 @@ import ( "github.com/derailed/k9s/internal/dao" "github.com/derailed/k9s/internal/ui" "github.com/derailed/tcell/v2" + "github.com/derailed/tview" "github.com/rs/zerolog/log" ) +const ( + renamePage = "rename" + inputField = "New name:" +) + // Context presents a context viewer. type Context struct { ResourceViewer @@ -28,6 +34,63 @@ func NewContext(gvr client.GVR) ResourceViewer { func (c *Context) bindKeys(aa ui.KeyActions) { aa.Delete(ui.KeyShiftA, tcell.KeyCtrlSpace, ui.KeySpace) + aa.Add(ui.KeyActions{ + ui.KeyR: ui.NewKeyAction("Rename", c.renameCmd, true), + }) +} + +func (c *Context) renameCmd(evt *tcell.EventKey) *tcell.EventKey { + contextName := c.GetTable().GetSelectedItem() + if contextName == "" { + return evt + } + + app := c.App() + c.showRenameModal(app, contextName, c.renameDialogCallback) + + return nil +} + +func (c *Context) renameDialogCallback(form *tview.Form, contextName string) error { + app := c.App() + input := form.GetFormItemByLabel(inputField).(*tview.InputField) + if err := app.factory.Client().Config().RenameContext(contextName, input.GetText()); err != nil { + c.App().Flash().Err(err) + return nil + } + c.Refresh() + return nil +} + +func (c *Context) showRenameModal(a *App, name string, ok func(form *tview.Form, contextName string)(error)) { + p := a.Content.Pages + f := c.makeStyledForm() + f.AddInputField(inputField, name, 0, nil, nil). + AddButton("OK", func() { + if err := ok(f, name); err != nil { + c.App().Flash().Err(err) + return + } + p.RemovePage(renamePage) + }). + AddButton("Cancel", func() { + p.RemovePage(renamePage) + }) + m := tview.NewModalForm("", f) + p.AddPage(renamePage, m, false, false) + p.ShowPage(renamePage) +} + +func (c *Context) makeStyledForm() *tview.Form { + f := tview.NewForm() + f.SetItemPadding(0) + f.SetButtonsAlign(tview.AlignCenter). + SetButtonBackgroundColor(tview.Styles.PrimitiveBackgroundColor). + SetButtonTextColor(tview.Styles.PrimaryTextColor). + SetLabelColor(tcell.ColorAqua). + SetFieldTextColor(tcell.ColorOrange) + + return f } func (c *Context) useCtx(app *App, model ui.Tabular, gvr, path string) { diff --git a/internal/view/context_test.go b/internal/view/context_test.go index dc0f693ea0..e6ce542a74 100644 --- a/internal/view/context_test.go +++ b/internal/view/context_test.go @@ -13,5 +13,5 @@ func TestContext(t *testing.T) { assert.Nil(t, ctx.Init(makeCtx())) assert.Equal(t, "Contexts", ctx.Name()) - assert.Equal(t, 4, len(ctx.Hints())) + assert.Equal(t, 5, len(ctx.Hints())) } From e5da1a9559776cbf305a3698fbd5fc18e3d515df Mon Sep 17 00:00:00 2001 From: Rahul Somasundaram Date: Fri, 17 Mar 2023 20:48:28 +0530 Subject: [PATCH 020/130] generated binary zip for windows (#1972) --- .goreleaser.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.goreleaser.yml b/.goreleaser.yml index 4c7089c780..735d2d2768 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -33,6 +33,9 @@ archives: bit: Arm bitv6: Arm6 bitv7: Arm7 + format_overrides: + - goos: windows + format: zip checksum: name_template: "checksums.txt" snapshot: From a5be038c9956f4d2020b1a10965f5cf791a81bd2 Mon Sep 17 00:00:00 2001 From: Mohamed Messaad Date: Fri, 17 Mar 2023 16:26:10 +0100 Subject: [PATCH 021/130] fix: multiple matches in a single line. (#1876) --- internal/model/yaml.go | 4 +- internal/model/yaml_test.go | 65 +++++++++++++++++++++++++++++++++ internal/view/live_view.go | 30 +++++++++------ internal/view/live_view_test.go | 64 ++++++++++++++++++++++++++++++++ 4 files changed, 149 insertions(+), 14 deletions(-) create mode 100644 internal/model/yaml_test.go create mode 100644 internal/view/live_view_test.go diff --git a/internal/model/yaml.go b/internal/model/yaml.go index df4f7b51d4..e919b26fce 100644 --- a/internal/model/yaml.go +++ b/internal/model/yaml.go @@ -84,11 +84,11 @@ func (*YAML) rxFilter(q string, lines []string) fuzzy.Matches { } matches := make(fuzzy.Matches, 0, len(lines)) for i, l := range lines { - if loc := rx.FindStringIndex(l); len(loc) == 2 { + locs := rx.FindAllStringIndex(l, -1) + for _, loc := range locs { matches = append(matches, fuzzy.Match{Str: q, Index: i, MatchedIndexes: loc}) } } - return matches } diff --git a/internal/model/yaml_test.go b/internal/model/yaml_test.go new file mode 100644 index 0000000000..9b595134e0 --- /dev/null +++ b/internal/model/yaml_test.go @@ -0,0 +1,65 @@ +package model + +import ( + "testing" + + "github.com/sahilm/fuzzy" + "github.com/stretchr/testify/assert" +) + +func TestYAML_rxFilter(t *testing.T) { + uu := map[string]struct { + q string + lines []string + e fuzzy.Matches + }{ + "empty-lines": { + q: "foo", + e: fuzzy.Matches{}, + }, + "no-match": { + q: "foo", + lines: []string{"bar"}, + e: fuzzy.Matches{}, + }, + "single-match": { + q: "foo", + lines: []string{"foo", "bar", "baz"}, + e: fuzzy.Matches{ + { + Str: "foo", + Index: 0, + MatchedIndexes: []int{0, 3}, + }, + }, + }, + "multiple-matches": { + q: "foo", + lines: []string{"foo", "bar", "foo bar foo", "baz"}, + e: fuzzy.Matches{ + { + Str: "foo", + Index: 0, + MatchedIndexes: []int{0, 3}, + }, + { + Str: "foo", + Index: 2, + MatchedIndexes: []int{0, 3}, + }, + { + Str: "foo", + Index: 2, + MatchedIndexes: []int{8, 11}, + }, + }, + }, + } + var y YAML + for k := range uu { + u := uu[k] + t.Run(k, func(t *testing.T) { + assert.Equal(t, u.e, y.rxFilter(u.q, u.lines)) + }) + } +} diff --git a/internal/view/live_view.go b/internal/view/live_view.go index 35d1730b39..aeefd9cb41 100644 --- a/internal/view/live_view.go +++ b/internal/view/live_view.go @@ -92,6 +92,21 @@ func (v *LiveView) ResourceFailed(err error) { v.text.SetText(cowTalk(err.Error(), x+w)) } +func (*LiveView) linesWithRegions(lines []string, matches fuzzy.Matches) []string { + ll := make([]string, len(lines)) + copy(ll, lines) + offsetForLine := make(map[int]int) + for i, m := range matches { + loc, line := m.MatchedIndexes, ll[m.Index] + offset := offsetForLine[m.Index] + loc[0], loc[1] = loc[0]+offset, loc[1]+offset + regionStr := `<<<"search_` + strconv.Itoa(i) + `">>>` + line[loc[0]:loc[1]] + `<<<"">>>` + ll[m.Index] = line[:loc[0]] + regionStr + line[loc[1]:] + offsetForLine[m.Index] += len(regionStr) - (loc[1] - loc[0]) + } + return ll +} + // ResourceChanged notifies when the filter changes. func (v *LiveView) ResourceChanged(lines []string, matches fuzzy.Matches) { v.app.QueueUpdateDraw(func() { @@ -101,23 +116,14 @@ func (v *LiveView) ResourceChanged(lines []string, matches fuzzy.Matches) { v.text.SetTextAlign(tview.AlignLeft) v.maxRegions = len(matches) - var ll []string - if len(matches) == 0 { - ll = lines - } else { - ll = make([]string, len(lines)) - copy(ll, lines) - for i, m := range matches { - loc, line := m.MatchedIndexes, ll[m.Index] - ll[m.Index] = line[:loc[0]] + `<<<"search_` + strconv.Itoa(i) + `">>>` + line[loc[0]:loc[1]] + `<<<"">>>` + line[loc[1]:] - } - } if v.text.GetText(true) == "" { v.text.ScrollToBeginning() } - v.text.SetText(colorizeYAML(v.app.Styles.Views().Yaml, strings.Join(ll, "\n"))) + lines = v.linesWithRegions(lines, matches) + + v.text.SetText(colorizeYAML(v.app.Styles.Views().Yaml, strings.Join(lines, "\n"))) v.text.Highlight() if v.currentRegion < v.maxRegions { v.text.Highlight("search_" + strconv.Itoa(v.currentRegion)) diff --git a/internal/view/live_view_test.go b/internal/view/live_view_test.go new file mode 100644 index 0000000000..d3b801cc3e --- /dev/null +++ b/internal/view/live_view_test.go @@ -0,0 +1,64 @@ +package view + +import ( + "strconv" + "testing" + + "github.com/sahilm/fuzzy" + "github.com/stretchr/testify/assert" +) + +func matchTag(i int, s string) string { + return `<<<"search_` + strconv.Itoa(i) + `">>>` + s + `<<<"">>>` +} + +func TestLiveView_linesWithRegions(t *testing.T) { + uu := map[string]struct { + lines []string + matches fuzzy.Matches + e []string + }{ + "empty-lines": { + e: []string{}, + }, + "no-match": { + lines: []string{"bar"}, + e: []string{"bar"}, + }, + "single-match": { + lines: []string{"foo", "bar", "baz"}, + matches: fuzzy.Matches{ + {Index: 1, MatchedIndexes: []int{0, 3}}, + }, + e: []string{"foo", matchTag(0, "bar"), "baz"}, + }, + "multiple-matches": { + lines: []string{"foo", "bar", "baz"}, + matches: fuzzy.Matches{ + {Index: 1, MatchedIndexes: []int{0, 3}}, + {Index: 2, MatchedIndexes: []int{0, 3}}, + }, + e: []string{"foo", matchTag(0, "bar"), matchTag(1, "baz")}, + }, + "multiple-matches-same-line": { + lines: []string{"foosfoo baz", "dfbarfoos bar"}, + matches: fuzzy.Matches{ + {Index: 0, MatchedIndexes: []int{0, 3}}, + {Index: 0, MatchedIndexes: []int{4, 7}}, + {Index: 1, MatchedIndexes: []int{5, 8}}, + }, + e: []string{ + matchTag(0, "foo") + "s" + matchTag(1, "foo") + " baz", + "dfbar" + matchTag(2, "foo") + "s bar", + }, + }, + } + var v LiveView + for k := range uu { + u := uu[k] + t.Run(k, func(t *testing.T) { + t.Parallel() + assert.Equal(t, u.e, v.linesWithRegions(u.lines, u.matches)) + }) + } +} From f41c22bce2af7ce5f0d798d76d0241468044637a Mon Sep 17 00:00:00 2001 From: Cason Adams Date: Fri, 17 Mar 2023 09:30:32 -0600 Subject: [PATCH 022/130] Allowing a few hard coded colors to be configurable (#1405) * making some hard coded colors configurable via skins * more flexible colors for logo messages * correct color formatting per MR comments * no need to convert to String --------- Co-authored-by: Cason Adams --- internal/config/styles.go | 20 ++++++++++++++------ internal/ui/logo.go | 10 ++++++---- internal/ui/logo_test.go | 6 +++--- 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/internal/config/styles.go b/internal/config/styles.go index 5ae172e3e8..e20e838357 100644 --- a/internal/config/styles.go +++ b/internal/config/styles.go @@ -61,9 +61,13 @@ type ( // Body tracks body styles. Body struct { - FgColor Color `yaml:"fgColor"` - BgColor Color `yaml:"bgColor"` - LogoColor Color `yaml:"logoColor"` + FgColor Color `yaml:"fgColor"` + BgColor Color `yaml:"bgColor"` + LogoColor Color `yaml:"logoColor"` + LogoColorMsg Color `yaml:"logoColorMsg"` + LogoColorInfo Color `yaml:"logoColorInfo"` + LogoColorWarn Color `yaml:"logoColorWarn"` + LogoColorError Color `yaml:"logoColorError"` } // Dialog tracks dialog styles. @@ -330,9 +334,13 @@ func newHelp() Help { func newBody() Body { return Body{ - FgColor: "cadetblue", - BgColor: "black", - LogoColor: "orange", + FgColor: "cadetblue", + BgColor: "black", + LogoColor: "orange", + LogoColorMsg: "white", + LogoColorInfo: "green", + LogoColorWarn: "mediumvioletred", + LogoColorError: "red", } } diff --git a/internal/ui/logo.go b/internal/ui/logo.go index 80c63199d6..a8cddad04c 100644 --- a/internal/ui/logo.go +++ b/internal/ui/logo.go @@ -67,17 +67,17 @@ func (l *Logo) Reset() { // Err displays a log error state. func (l *Logo) Err(msg string) { - l.update(msg, config.NewColor("red")) + l.update(msg, l.styles.Body().LogoColorError) } // Warn displays a log warning state. func (l *Logo) Warn(msg string) { - l.update(msg, config.NewColor("mediumvioletred")) + l.update(msg, l.styles.Body().LogoColorWarn) } // Info displays a log info state. func (l *Logo) Info(msg string) { - l.update(msg, config.NewColor("green")) + l.update(msg, l.styles.Body().LogoColorInfo) } func (l *Logo) update(msg string, c config.Color) { @@ -87,7 +87,9 @@ func (l *Logo) update(msg string, c config.Color) { func (l *Logo) refreshStatus(msg string, c config.Color) { l.status.SetBackgroundColor(c.Color()) - l.status.SetText(fmt.Sprintf("[white::b]%s", msg)) + l.status.SetText( + fmt.Sprintf("[%s::b]%s", l.styles.Body().LogoColorMsg, msg), + ) } func (l *Logo) refreshLogo(c config.Color) { diff --git a/internal/ui/logo_test.go b/internal/ui/logo_test.go index 7a42c1d3be..2e3c053c69 100644 --- a/internal/ui/logo_test.go +++ b/internal/ui/logo_test.go @@ -24,17 +24,17 @@ func TestLogoStatus(t *testing.T) { "info": { "[#008000::b] ____ __.________ \n[#008000::b]| |/ _/ __ \\______\n[#008000::b]| < \\____ / ___/\n[#008000::b]| | \\ / /\\___ \\ \n[#008000::b]|____|__ \\ /____//____ >\n[#008000::b] \\/ \\/ \n", "blee", - "[white::b]blee\n", + "[#ffffff::b]blee\n", }, "warn": { "[#c71585::b] ____ __.________ \n[#c71585::b]| |/ _/ __ \\______\n[#c71585::b]| < \\____ / ___/\n[#c71585::b]| | \\ / /\\___ \\ \n[#c71585::b]|____|__ \\ /____//____ >\n[#c71585::b] \\/ \\/ \n", "blee", - "[white::b]blee\n", + "[#ffffff::b]blee\n", }, "err": { "[#ff0000::b] ____ __.________ \n[#ff0000::b]| |/ _/ __ \\______\n[#ff0000::b]| < \\____ / ___/\n[#ff0000::b]| | \\ / /\\___ \\ \n[#ff0000::b]|____|__ \\ /____//____ >\n[#ff0000::b] \\/ \\/ \n", "blee", - "[white::b]blee\n", + "[#ffffff::b]blee\n", }, } From a516775a811c2dc56f5078ecf853feaf65517265 Mon Sep 17 00:00:00 2001 From: R0CKSTAR Date: Fri, 17 Mar 2023 23:37:26 +0800 Subject: [PATCH 023/130] Convert command to lowercase in the command palette (#1432) --- internal/view/command.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/internal/view/command.go b/internal/view/command.go index c1d0da035a..ece4f10deb 100644 --- a/internal/view/command.go +++ b/internal/view/command.go @@ -114,12 +114,13 @@ func (c *Command) run(cmd, path string, clearStack bool) error { return nil } cmds := strings.Split(cmd, " ") - gvr, v, err := c.viewMetaFor(cmds[0]) + command := strings.ToLower(cmds[0]) + gvr, v, err := c.viewMetaFor(command) if err != nil { return err } - switch cmds[0] { + switch command { case "ctx", "context", "contexts": if len(cmds) == 2 { return useContext(c.app, cmds[1]) @@ -139,7 +140,7 @@ func (c *Command) run(cmd, path string, clearStack bool) error { if err := c.app.switchNS(ns); err != nil { return err } - if !c.alias.Check(cmds[0]) { + if !c.alias.Check(command) { return fmt.Errorf("`%s` Command not found", cmd) } return c.exec(cmd, gvr, c.componentFor(gvr, path, v), clearStack) From dc98d13c2a1734b522a46ca2dfe15768e60199b7 Mon Sep 17 00:00:00 2001 From: mmetc <92726601+mmetc@users.noreply.github.com> Date: Thu, 13 Apr 2023 14:50:10 +0200 Subject: [PATCH 024/130] Update setup-go action, with caching (#2054) --- .github/workflows/test.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e4e7901c86..b2ce0da1b6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -15,17 +15,17 @@ jobs: build: runs-on: ubuntu-20.04 steps: + - name: Checkout Code + uses: actions/checkout@v3.3.0 + - name: Install Go - uses: actions/setup-go@v3.5.0 + uses: actions/setup-go@v4.0.0 with: go-version: 1.19 - name: Setup GO env run: go env -w CGO_ENABLED=0 - - name: Checkout Code - uses: actions/checkout@v3.3.0 - - name: Run Tests run: make test env: From 593952ba30c1a94a532b00c6e422aa4b7486c79f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Apr 2023 06:55:11 -0600 Subject: [PATCH 025/130] Bump golang from 1.20.2-alpine3.16 to 1.20.3-alpine3.16 (#2049) Bumps golang from 1.20.2-alpine3.16 to 1.20.3-alpine3.16. --- updated-dependencies: - dependency-name: golang dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 0f9724f42a..a943bc4428 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # ----------------------------------------------------------------------------- # The base image for building the k9s binary -FROM golang:1.20.2-alpine3.16 AS build +FROM golang:1.20.3-alpine3.16 AS build WORKDIR /k9s COPY go.mod go.sum main.go Makefile ./ From 11c886f6d6c277cb5e9f60de570f7ebb8c2310c9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Apr 2023 06:56:00 -0600 Subject: [PATCH 026/130] Bump actions/checkout from 3.3.0 to 3.5.2 (#2058) Bumps [actions/checkout](https://github.com/actions/checkout) from 3.3.0 to 3.5.2. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3.3.0...v3.5.2) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b2ce0da1b6..685766b13a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-20.04 steps: - name: Checkout Code - uses: actions/checkout@v3.3.0 + uses: actions/checkout@v3.5.2 - name: Install Go uses: actions/setup-go@v4.0.0 From 5ca8abdaa319868f89e4955d1bb4f91edddc2d4f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Apr 2023 06:58:18 -0600 Subject: [PATCH 027/130] Bump github.com/docker/docker (#2044) Bumps [github.com/docker/docker](https://github.com/docker/docker) from 20.10.21+incompatible to 20.10.24+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v20.10.21...v20.10.24) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 007d35eba4..41da1e5d8f 100644 --- a/go.mod +++ b/go.mod @@ -53,7 +53,7 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/docker/cli v20.10.21+incompatible // indirect github.com/docker/distribution v2.8.1+incompatible // indirect - github.com/docker/docker v20.10.21+incompatible // indirect + github.com/docker/docker v20.10.24+incompatible // indirect github.com/docker/docker-credential-helpers v0.7.0 // indirect github.com/docker/go-connections v0.4.0 // indirect github.com/docker/go-metrics v0.0.1 // indirect diff --git a/go.sum b/go.sum index 80b580c21e..e85c3b8ed4 100644 --- a/go.sum +++ b/go.sum @@ -134,8 +134,8 @@ github.com/docker/cli v20.10.21+incompatible h1:qVkgyYUnOLQ98LtXBrwd/duVqPT2X4SH github.com/docker/cli v20.10.21+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v2.8.1+incompatible h1:Q50tZOPR6T/hjNsyc9g8/syEs6bk8XXApsHjKukMl68= github.com/docker/distribution v2.8.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v20.10.21+incompatible h1:UTLdBmHk3bEY+w8qeO5KttOhy6OmXWsl/FEet9Uswog= -github.com/docker/docker v20.10.21+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v20.10.24+incompatible h1:Ugvxm7a8+Gz6vqQYQQ2W7GYq5EUPaAiuPgIfVyI3dYE= +github.com/docker/docker v20.10.24+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.7.0 h1:xtCHsjxogADNZcdv1pKUHXryefjlVRqWqIhk/uXJp0A= github.com/docker/docker-credential-helpers v0.7.0/go.mod h1:rETQfLdHNT3foU5kuNkFR1R1V12OJRRO5lzt2D1b5X0= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= From c16246dec76603fe043e7aa1be0b32a6d9d419e0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Apr 2023 07:00:59 -0600 Subject: [PATCH 028/130] Bump alpine from 3.17.2 to 3.17.3 (#2040) Bumps alpine from 3.17.2 to 3.17.3. --- updated-dependencies: - dependency-name: alpine dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index a943bc4428..18a631f653 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,7 +12,7 @@ RUN apk --no-cache add --update make libx11-dev git gcc libc-dev curl && make bu # ----------------------------------------------------------------------------- # Build the final Docker image -FROM alpine:3.17.2 +FROM alpine:3.17.3 ARG KUBECTL_VERSION="v1.25.2" COPY --from=build /k9s/execs/k9s /bin/k9s From 0ac1430c86841b86a054d0e6b1ac652a533a701c Mon Sep 17 00:00:00 2001 From: Mike Sigsworth Date: Thu, 13 Apr 2023 07:15:21 -0600 Subject: [PATCH 029/130] Updated monokai skin with help styles, and more monokai appropriate colors (#2030) * Add help styles to monokai skin * Fixed typo, and changed several colors to be more monokai-y * Use default background --- skins/monokai.yml | 78 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 54 insertions(+), 24 deletions(-) diff --git a/skins/monokai.yml b/skins/monokai.yml index a93825085b..d2f07926e4 100644 --- a/skins/monokai.yml +++ b/skins/monokai.yml @@ -10,6 +10,8 @@ blue: &blue "#69d9ed" darkBlue: &darkBlue "#3174a2" green: &green "#a7e24c" purple: &purple "#856cc4" +yellow: &yellow "#e1df8f" +darkGray: &darkGray "#666666" # Skin... k9s: @@ -17,41 +19,60 @@ k9s: body: fgColor: *foreground bgColor: *background - logoColor: *magenta + logoColor: *purple + logoColorMsg: *foreground + logoColorInfo: *lightBlue + logoColorWarn: *orange + logoColorError: *magenta + # Command prompt styles prompt: fgColor: *foreground bgColor: *background - suggestColor: *orange + suggestColor: *darkGray + # ClusterInfoView styles. info: - fgColor: *blue - sectionColor: *lightBlue + fgColor: *magenta + sectionColor: *yellow + + # Help Menu styles + help: + fgColor: *foreground + bgColor: *background + keyColor: *green + numKeyColor: *green + sectionColor: *blue + # Dialog styles. dialog: - fgColor: *foreground + fgColor: *yellow bgColor: *background buttonFgColor: *foreground - buttonBgColor: *green + buttonBgColor: *background buttonFocusFgColor: *foreground - buttonFocusBgColor: *darkBlue - labelFgColor: *orange - fieldFgColor: *blue + buttonFocusBgColor: *purple + labelFgColor: *magenta + fieldFgColor: *darkBlue + frame: # Borders styles. border: - fgColor: *blue - focusColor: *darkBlue + fgColor: *darkGray + focusColor: *darkGray + menu: - fgColor: *lightBlue - keyColor: *green + fgColor: *foreground + keyColor: *magenta # Used for favorite namespaces numKeyColor: *green + # CrumbView attributes for history navigation. crumbs: - fgColor: *foreground + fgColor: *yellow bgColor: *backgroundOpaque - activeColor: *blue + activeColor: *purple + # Resource status and update styles status: newColor: *blue @@ -60,15 +81,18 @@ k9s: pendingColor: *orange errorColor: *magenta highlightColor: *blue - killColor: *green + killColor: *magenta completedColor: *darkBlue + # Border title styles. title: - fgColor: *foreground + fgColor: *purple bgColor: *background - highlightColor: *blue - counterColor: *lightBlue + highlightColor: *yellow + counterColor: *green filterColor: *orange + + # Specific views styles views: # Charts skins... charts: @@ -100,16 +124,20 @@ k9s: v1/pods: - *blue - *magenta + # TableView attributes. table: fgColor: *foreground bgColor: *background + cursorFgColor: *foreground + cursorBgColor: *backgroundOpaque markColor: *magenta # Header row styles. header: fgColor: *foreground bgColor: *backgroundOpaque - sorterColor: *blue + sorterColor: *magenta + # Xray view attributes. xray: fgColor: *foreground @@ -117,15 +145,17 @@ k9s: cursorColor: *blue cursorTextColor: *foreground graphicColor: *blue + # YAML info styles. yaml: - keyColor: *orange - colonColor: *orange + keyColor: *green + colonColor: *magenta valueColor: *foreground + # Logs styles. logs: fgColor: *foreground - bgColor: *backgroundOpaque + bgColor: *background indicator: fgColor: *foreground - bgColor: *darkBlue + bgColor: *backgroundOpaque From 7f67986be157bb6cd6b7922ef40f36bd0dedb887 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Apr 2023 07:56:54 -0600 Subject: [PATCH 030/130] Bump github.com/fatih/color from 1.14.1 to 1.15.0 (#2023) Bumps [github.com/fatih/color](https://github.com/fatih/color) from 1.14.1 to 1.15.0. - [Release notes](https://github.com/fatih/color/releases) - [Commits](https://github.com/fatih/color/compare/v1.14.1...v1.15.0) --- updated-dependencies: - dependency-name: github.com/fatih/color dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 41da1e5d8f..d58b7b3030 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/derailed/popeye v0.11.1 github.com/derailed/tcell/v2 v2.3.1-rc.3 github.com/derailed/tview v0.8.1 - github.com/fatih/color v1.14.1 + github.com/fatih/color v1.15.0 github.com/fsnotify/fsnotify v1.6.0 github.com/fvbommel/sortorder v1.0.2 github.com/ghodss/yaml v1.0.0 @@ -137,7 +137,7 @@ require ( golang.org/x/net v0.7.0 // indirect golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b // indirect golang.org/x/sync v0.1.0 // indirect - golang.org/x/sys v0.5.0 // indirect + golang.org/x/sys v0.6.0 // indirect golang.org/x/term v0.5.0 // indirect golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 // indirect google.golang.org/appengine v1.6.7 // indirect diff --git a/go.sum b/go.sum index e85c3b8ed4..049c947a88 100644 --- a/go.sum +++ b/go.sum @@ -165,8 +165,8 @@ github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZM github.com/fatih/camelcase v1.0.0 h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8= github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.14.1 h1:qfhVLaG5s+nCROl1zJsZRxFeYrHLqWroPOQ8BWiNb4w= -github.com/fatih/color v1.14.1/go.mod h1:2oHN61fhTpgcxD3TSWCgKDiH1+x4OiDVVGH8WlgGZGg= +github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= +github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= @@ -834,8 +834,8 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= From 8b51950c259e90cd7dd2e1e26c2192e2803b75cd Mon Sep 17 00:00:00 2001 From: Alexandru Placinta Date: Thu, 13 Apr 2023 16:03:35 +0200 Subject: [PATCH 031/130] Roles are rendered using same colorer function from skin (#2027) --- internal/render/rbac.go | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/internal/render/rbac.go b/internal/render/rbac.go index ddf2c790af..5d0f7a3cd7 100644 --- a/internal/render/rbac.go +++ b/internal/render/rbac.go @@ -4,7 +4,6 @@ import ( "fmt" "strings" - "github.com/derailed/tcell/v2" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" ) @@ -36,9 +35,7 @@ type Rbac struct { // ColorerFunc colors a resource row. func (Rbac) ColorerFunc() ColorerFunc { - return func(_ string, _ Header, _re RowEvent) tcell.Color { - return tcell.ColorMediumSpringGreen - } + return DefaultColorer } // Header returns a header row. From 6db13eaa99601e2a2647d2f945426e1f460fa2c2 Mon Sep 17 00:00:00 2001 From: SammyA Date: Sun, 7 May 2023 16:00:29 +0200 Subject: [PATCH 032/130] Fix for missing Job annotations created from CronJob (#2073) --- internal/dao/cronjob.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/dao/cronjob.go b/internal/dao/cronjob.go index b3faf365c3..9c5d5011f9 100644 --- a/internal/dao/cronjob.go +++ b/internal/dao/cronjob.go @@ -60,6 +60,7 @@ func (c *CronJob) Run(path string) error { Name: jobName + "-manual-" + rand.String(3), Namespace: ns, Labels: cj.Spec.JobTemplate.Labels, + Annotations: cj.Spec.JobTemplate.Annotations, OwnerReferences: []metav1.OwnerReference{ { APIVersion: c.gvr.GV().String(), From 842aff6689c4bf7853a6b853e58adb404eceb1c3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 7 May 2023 08:02:18 -0600 Subject: [PATCH 033/130] Bump helm.sh/helm/v3 from 3.11.1 to 3.11.3 (#2059) Bumps [helm.sh/helm/v3](https://github.com/helm/helm) from 3.11.1 to 3.11.3. - [Release notes](https://github.com/helm/helm/releases) - [Commits](https://github.com/helm/helm/compare/v3.11.1...v3.11.3) --- updated-dependencies: - dependency-name: helm.sh/helm/v3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 53 ++++++++------ go.sum | 226 +++++++++++++++++++++++++++++++++++++++------------------ 2 files changed, 184 insertions(+), 95 deletions(-) diff --git a/go.mod b/go.mod index d58b7b3030..e3a7ff25f1 100644 --- a/go.mod +++ b/go.mod @@ -21,21 +21,22 @@ require ( github.com/sahilm/fuzzy v0.1.0 github.com/spf13/cobra v1.6.1 github.com/stretchr/testify v1.8.2 - golang.org/x/text v0.7.0 + golang.org/x/text v0.9.0 gopkg.in/yaml.v2 v2.4.0 - helm.sh/helm/v3 v3.11.1 + helm.sh/helm/v3 v3.11.3 k8s.io/api v0.26.2 k8s.io/apiextensions-apiserver v0.26.1 k8s.io/apimachinery v0.26.2 k8s.io/cli-runtime v0.26.1 k8s.io/client-go v0.26.2 - k8s.io/klog/v2 v2.90.0 + k8s.io/klog/v2 v2.90.1 k8s.io/kubectl v0.26.1 k8s.io/metrics v0.26.2 sigs.k8s.io/yaml v1.3.0 ) require ( + github.com/AdaLogics/go-fuzz-headers v0.0.0-20230106234847-43070de90fa1 // indirect github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect github.com/BurntSushi/toml v1.2.1 // indirect github.com/MakeNowJust/heredoc v1.0.0 // indirect @@ -46,9 +47,9 @@ require ( github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535 // indirect github.com/aws/aws-sdk-go v1.38.49 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.1.2 // indirect + github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/chai2010/gettext-go v1.0.2 // indirect - github.com/containerd/containerd v1.6.18 // indirect + github.com/containerd/containerd v1.7.0 // indirect github.com/cyphar/filepath-securejoin v0.2.3 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/docker/cli v20.10.21+incompatible // indirect @@ -57,15 +58,16 @@ require ( github.com/docker/docker-credential-helpers v0.7.0 // indirect github.com/docker/go-connections v0.4.0 // indirect github.com/docker/go-metrics v0.0.1 // indirect - github.com/docker/go-units v0.4.0 // indirect - github.com/emicklei/go-restful/v3 v3.9.0 // indirect + github.com/docker/go-units v0.5.0 // indirect + github.com/emicklei/go-restful/v3 v3.10.1 // indirect github.com/evanphx/json-patch v5.6.0+incompatible // indirect github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d // indirect github.com/fatih/camelcase v1.0.0 // indirect github.com/gdamore/encoding v1.0.0 // indirect github.com/go-errors/errors v1.0.1 // indirect - github.com/go-gorp/gorp/v3 v3.0.2 // indirect + github.com/go-gorp/gorp/v3 v3.0.5 // indirect github.com/go-logr/logr v1.2.3 // indirect + github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/jsonpointer v0.19.5 // indirect github.com/go-openapi/jsonreference v0.20.0 // indirect github.com/go-openapi/swag v0.19.14 // indirect @@ -77,18 +79,20 @@ require ( github.com/google/go-cmp v0.5.9 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect - github.com/google/uuid v1.2.0 // indirect + github.com/google/uuid v1.3.0 // indirect github.com/gorilla/mux v1.8.0 // indirect github.com/gosuri/uitable v0.0.4 // indirect github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 // indirect - github.com/huandu/xstrings v1.3.3 // indirect - github.com/imdario/mergo v0.3.12 // indirect + github.com/hashicorp/errwrap v1.1.0 // indirect + github.com/hashicorp/go-multierror v1.1.1 // indirect + github.com/huandu/xstrings v1.4.0 // indirect + github.com/imdario/mergo v0.3.13 // indirect github.com/inconshreveable/mousetrap v1.0.1 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/jmoiron/sqlx v1.3.5 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/klauspost/compress v1.13.6 // indirect + github.com/klauspost/compress v1.16.0 // indirect github.com/kylelemons/godebug v1.1.0 // indirect github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 // indirect github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 // indirect @@ -103,7 +107,6 @@ require ( github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/moby/locker v1.0.1 // indirect github.com/moby/spdystream v0.2.0 // indirect - github.com/moby/sys/mountinfo v0.6.0 // indirect github.com/moby/term v0.0.0-20221205130635-1aeaba878587 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect @@ -113,7 +116,7 @@ require ( github.com/onsi/ginkgo v1.16.5 // indirect github.com/onsi/gomega v1.23.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc2 // indirect + github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b // indirect github.com/peterbourgon/diskv v2.0.1+incompatible // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect @@ -122,34 +125,36 @@ require ( github.com/prometheus/common v0.37.0 // indirect github.com/prometheus/procfs v0.8.0 // indirect github.com/rivo/uniseg v0.4.3 // indirect - github.com/rubenv/sql-migrate v1.2.0 // indirect + github.com/rubenv/sql-migrate v1.3.1 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect - github.com/shopspring/decimal v1.2.0 // indirect + github.com/shopspring/decimal v1.3.1 // indirect github.com/sirupsen/logrus v1.9.0 // indirect - github.com/spf13/cast v1.4.1 // indirect + github.com/spf13/cast v1.5.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect + github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect github.com/xlab/treeprint v1.1.0 // indirect + go.opentelemetry.io/otel v1.14.0 // indirect + go.opentelemetry.io/otel/trace v1.14.0 // indirect go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 // indirect golang.org/x/crypto v0.5.0 // indirect golang.org/x/net v0.7.0 // indirect - golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b // indirect + golang.org/x/oauth2 v0.4.0 // indirect golang.org/x/sync v0.1.0 // indirect golang.org/x/sys v0.6.0 // indirect golang.org/x/term v0.5.0 // indirect golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21 // indirect - google.golang.org/grpc v1.49.0 // indirect + google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 // indirect + google.golang.org/grpc v1.53.0 // indirect google.golang.org/protobuf v1.28.1 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apiserver v0.26.1 // indirect - k8s.io/component-base v0.26.1 // indirect + k8s.io/apiserver v0.26.2 // indirect + k8s.io/component-base v0.26.2 // indirect k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 // indirect - k8s.io/utils v0.0.0-20221107191617-1a15be271d1d // indirect + k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 // indirect oras.land/oras-go v1.2.2 // indirect sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 // indirect sigs.k8s.io/kustomize/api v0.12.1 // indirect diff --git a/go.sum b/go.sum index 049c947a88..071be71d0a 100644 --- a/go.sum +++ b/go.sum @@ -37,6 +37,8 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230106234847-43070de90fa1 h1:EKPd1INOIyr5hWOWhvpmQpY6tKjeG0hT1s3AMC/9fic= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230106234847-43070de90fa1/go.mod h1:VzwV+t+dZ9j/H867F1M2ziD+yLHtB46oM35FxxMJ4d0= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= @@ -46,20 +48,21 @@ github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60= github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= -github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g= github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= -github.com/Masterminds/sprig/v3 v3.2.0/go.mod h1:tWhwTbUTndesPNeF0C900vKoq283u6zp4APT9vaF3SI= +github.com/Masterminds/sprig/v3 v3.2.1/go.mod h1:UoaO7Yp8KlPnJIYWTFkMaqPUYKTfGFPhxNuwnnxkKlk= github.com/Masterminds/sprig/v3 v3.2.3 h1:eL2fZNezLomi0uOLqjQoN6BfsDD+fyLtgbJMAj9n6YA= github.com/Masterminds/sprig/v3 v3.2.3/go.mod h1:rXcFaZ2zZbLRJv/xSysmlgIM1u11eBaRMhvYXJNkGuM= github.com/Masterminds/squirrel v1.5.3 h1:YPpoceAcxuzIljlr5iWpNKaql7hLeG1KLSrhvdHpkZc= github.com/Masterminds/squirrel v1.5.3/go.mod h1:NNaOrjSoIDfDA40n7sr2tPNZRfjzjA400rg+riTZj10= -github.com/Microsoft/go-winio v0.5.2 h1:a9IhgEQBCUEk6QCdml9CiJGhAws+YwffDHEMp1VMrpA= -github.com/Microsoft/hcsshim v0.9.6 h1:VwnDOgLeoi2du6dAznfmspNqTiwczvjv4K7NxuY9jsY= +github.com/Microsoft/go-winio v0.6.0 h1:slsWYD/zyx7lCXoZVlvQrj0hPTM1HI4+v1sIda2yDvg= +github.com/Microsoft/hcsshim v0.10.0-rc.7 h1:HBytQPxcv8Oy4244zbQbe6hnOnx544eL5QPUqhJldz8= +github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d h1:UrqY+r/OJnIp5u0s1SbQ8dVfLCZJsnvazdBP5hS4iRs= +github.com/a8m/expect v1.0.0/go.mod h1:4IwSCMumY49ScypDnjNbYEjgVeqy1/U2cEs3Lat96eA= github.com/adrg/xdg v0.4.0 h1:RzRqFcjH4nE5C6oTAxhBtoE2IRyjBSa62SCbyPidvls= github.com/adrg/xdg v0.4.0/go.mod h1:N6ag73EX4wyxeaoeHctc1mas01KZgsj5tYiAIwqJE/E= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -69,8 +72,10 @@ github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= +github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535 h1:4daAzAu0S6Vi7/lbWECcX0j45yZReDZ56BQsrVBOEEY= github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= @@ -91,9 +96,11 @@ github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0 h1:nvj0OLI3YqYXe github.com/cenkalti/backoff/v4 v4.2.0 h1:HN5dHm3WBOgndBH6E8V0q2jIYIR3s9yglV8k/+MN3u4= github.com/cenkalti/backoff/v4 v4.2.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= +github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chai2010/gettext-go v1.0.2 h1:1Lwwip6Q2QGsAdl/ZKPCwTe9fe0CjlUbqj5bFNSjIRk= github.com/chai2010/gettext-go v1.0.2/go.mod h1:y+wnP2cHYaVj19NZhYKAwEMH2CI1gNHeQQ+5AjwawxA= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= @@ -103,16 +110,18 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= -github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/containerd/cgroups v1.0.4 h1:jN/mbWBEaz+T1pi5OFtnkQ+8qnmEbAr1Oo1FRm5B0dA= -github.com/containerd/containerd v1.6.18 h1:qZbsLvmyu+Vlty0/Ex5xc0z2YtKpIsb5n45mAMI+2Ns= -github.com/containerd/containerd v1.6.18/go.mod h1:1RdCUu95+gc2v9t3IL+zIlpClSmew7/0YS8O5eQZrOw= +github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= +github.com/containerd/containerd v1.7.0 h1:G/ZQr3gMZs6ZT0qPUZ15znx5QSdQdASW11nXTLTM2Pg= +github.com/containerd/containerd v1.7.0/go.mod h1:QfR7Efgb/6X2BDpTPJRvPTYDE9rsF0FsXX9J8sIs/sc= +github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg= +github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= +github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= @@ -129,6 +138,8 @@ github.com/derailed/tcell/v2 v2.3.1-rc.3 h1:9s1fmyRcSPRlwr/C9tcpJKCujbrtmPpST6dc github.com/derailed/tcell/v2 v2.3.1-rc.3/go.mod h1:nf68BEL8fjmXQHJT3xZjoZFs2uXOzyJcNAQqGUEMrFY= github.com/derailed/tview v0.8.1 h1:hvNR3LLrWEuaQbPYfBnRn7bYkxCP26K6nX9J+MGlhyw= github.com/derailed/tview v0.8.1/go.mod h1:q+odnnhO6QDPpBT+0dqaWj+X+uoJ6MJehXj9shgP+Cw= +github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/distribution/distribution/v3 v3.0.0-20221208165359-362910506bc2 h1:aBfCb7iqHmDEIp6fBvC/hQUddQfg+3qdYjwzaiP9Hnc= github.com/docker/cli v20.10.21+incompatible h1:qVkgyYUnOLQ98LtXBrwd/duVqPT2X4SHndOuGsfwyhU= github.com/docker/cli v20.10.21+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= @@ -143,20 +154,19 @@ github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5Xh github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c h1:+pKlWGMw7gf6bQ+oDZB4KHQFypsfjYlq/C4rfL7D3g8= github.com/docker/go-metrics v0.0.1 h1:AgB/0SvBxihN0X8OR4SjsblXkbMvalQ8cjmtKQ2rQV8= github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= -github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1 h1:ZClxb8laGDf5arXfYcAtECDFgAgHklGI8CxgjHnXKJ4= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153 h1:yUdfgN0XgIJw7foRItutHYUIhlcKzcSf5vDpdhQAKTc= -github.com/emicklei/go-restful/v3 v3.9.0 h1:XwGDlfxEnQZzuopoqxwSEllNcCOM9DhhFyhFIIGKwxE= -github.com/emicklei/go-restful/v3 v3.9.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/emicklei/go-restful/v3 v3.10.1 h1:rc42Y5YTp7Am7CS630D7JmhRjq4UlEUuEKfrDac4bSQ= +github.com/emicklei/go-restful/v3 v3.10.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= github.com/evanphx/json-patch v5.6.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= @@ -165,9 +175,13 @@ github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZM github.com/fatih/camelcase v1.0.0 h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8= github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= +github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= +github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= +github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= @@ -183,8 +197,8 @@ github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gorp/gorp/v3 v3.0.2 h1:ULqJXIekoqMx29FI5ekXXFoH1dT2Vc8UhnRzBg+Emz4= -github.com/go-gorp/gorp/v3 v3.0.2/go.mod h1:BJ3q1ejpV8cVALtcXvXaXyTOlMmJhWDxTmncaR6rwBY= +github.com/go-gorp/gorp/v3 v3.0.5 h1:PUjzYdYu3HBOh8LE+UUmRG2P0IRDak9XMeGNvaeq4Ow= +github.com/go-gorp/gorp/v3 v3.0.5/go.mod h1:dLEjIyyRNiXvNZ8PSmzpt1GsWAUK8kjVhEpjH8TixEw= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= @@ -194,8 +208,11 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= @@ -204,8 +221,6 @@ github.com/go-openapi/jsonreference v0.20.0/go.mod h1:Ag74Ico3lPc+zR+qjn4XBUmXym github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.14 h1:gm3vOOXfiuw5i9p5N9xJvfjvuofpyvLA9Wr6QfK5Fng= github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= -github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= -github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= @@ -221,10 +236,12 @@ github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJA github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godror/godror v0.24.2/go.mod h1:wZv/9vPiUib6tkoDl+AZ/QLf5YZgMravZ7jxH2eQWAE= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -273,7 +290,7 @@ github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -298,27 +315,35 @@ github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaU github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.2.0 h1:qJYtXnJRWmpe7m/3XlyhrsLrEURqHRM2kxzoxXqyUDs= -github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gosuri/uitable v0.0.4 h1:IG2xLKRvErL3uhY6e1BylFzG+aJiwQviDDTfOKeKTpY= github.com/gosuri/uitable v0.0.4/go.mod h1:tKR86bXuXPZazfOTG1FIzvjIdXzd0mo4Vtn16vt0PJo= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 h1:pdN6V1QBWetyv/0+wjACpqVH+eVULgEjkurDLq3goeM= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= +github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= +github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= +github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= @@ -336,13 +361,14 @@ github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/J github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= -github.com/huandu/xstrings v1.3.3 h1:/Gcsuc1x8JVbJ9/rlye4xZnVAbEkGauT8lbebqcQws4= github.com/huandu/xstrings v1.3.3/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= +github.com/huandu/xstrings v1.4.0 h1:D17IlohoQq4UcpqD7fDk80P7l+lwAmlFaBHgOipl2FU= +github.com/huandu/xstrings v1.4.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= -github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= -github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= +github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= +github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc= github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= @@ -352,6 +378,7 @@ github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGw github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/jmoiron/sqlx v1.3.5 h1:vFFPA71p1o5gAeqtEAwLU4dnX2napprKtHr7PYIcN3g= github.com/jmoiron/sqlx v1.3.5/go.mod h1:nRVWtLre0KfCLJvgxzCsLVMogSvQ1zNJtpYr2Ccp0mQ= +github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= @@ -368,10 +395,11 @@ github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7V github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/karrick/godirwalk v1.16.1 h1:DynhcF+bztK8gooS0+NDJFrdNZjJ3gzVzC545UNA9iw= github.com/karrick/godirwalk v1.16.1/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.13.6 h1:P76CopJELS0TiO2mebmnzgWaajssP/EszplttgQxcgc= -github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= +github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kortschak/utter v1.0.1/go.mod h1:vSmSjbyrlKjjsL71193LmzBOKgwePk9DH6uFaWHIInc= @@ -379,8 +407,10 @@ github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -392,13 +422,13 @@ github.com/lann/builder v0.0.0-20180802200727-47ae307949d0/go.mod h1:dXGbAdH5GtB github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 h1:P6pPBnrTSX3DEVR4fDembhRWSsG5rVo6hYhAB/ADZrk= github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0/go.mod h1:vmVJ0l/dxyfGW6FmdpVm2joNMFikkuWg0EoCKLGUMNw= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.10.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.5 h1:b6kJs+EmPFMYGkow9GiUyCyOvIwYetYJ3fSaWak/Gls= github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= @@ -412,10 +442,15 @@ github.com/markbates/oncer v1.0.0/go.mod h1:Z59JA581E9GP6w96jai+TGqafHPW+cPfRxz2 github.com/markbates/safe v1.0.1 h1:yjZkbvRM6IzKj9tlu/zMJLS0n/V351OZWRnF3QfaUxI= github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= +github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= @@ -424,20 +459,20 @@ github.com/mattn/go-oci8 v0.1.1/go.mod h1:wjDx6Xm9q7dFtHJvIlrI99JytznLw5wQ4R+9mN github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= -github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= -github.com/mattn/go-sqlite3 v1.14.14 h1:qZgc/Rwetq+MtyE18WhzjokPD93dNqLGNT3QJuLvBGw= -github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= +github.com/mattn/go-sqlite3 v1.14.15 h1:vfoHhTN1af61xCRSWzFIWzx2YskyMTwHLrExkBOjvxI= +github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= -github.com/mitchellh/cli v1.1.4/go.mod h1:vTLESy5mRhKOs9KDp0/RATawxP1UqBmdrpVRMnpcvKQ= +github.com/mitchellh/cli v1.1.5/go.mod h1:v8+iFts2sPIKUV1ltktPXMCC8fumSKFItNcD2cLtRR4= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= github.com/mitchellh/go-wordwrap v1.0.0 h1:6GlHJ/LTGMrIJbwgdqdl2eEH8o+Exx/0m8ir9Gns0u4= github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= @@ -453,8 +488,7 @@ github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg= github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc= github.com/moby/spdystream v0.2.0 h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8= github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= -github.com/moby/sys/mountinfo v0.6.0 h1:gUDhXQx58YNrpHlK4nSL+7y2pxFZkUcXqzFDKWdC0Oo= -github.com/moby/sys/mountinfo v0.6.0/go.mod h1:3bMD3Rg+zkqx8MRYPi7Pyb0Ie97QEBmdxbhnCLlSvSU= +github.com/moby/sys/mountinfo v0.6.2 h1:BzJjoreD5BMFNmD9Rus6gdd1pLuecOFPt8wC+Vygl78= github.com/moby/term v0.0.0-20221205130635-1aeaba878587 h1:HfkjXDfhgVaN5rmueG8cL8KKeFNecRCXFhaJ2qZ5SKA= github.com/moby/term v0.0.0-20221205130635-1aeaba878587/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -472,10 +506,13 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/nelsam/hel/v2 v2.3.2/go.mod h1:1ZTGfU2PFTOd5mx22i5O0Lc2GY933lQ2wb/ggy+rL3w= +github.com/nelsam/hel/v2 v2.3.3/go.mod h1:1ZTGfU2PFTOd5mx22i5O0Lc2GY933lQ2wb/ggy+rL3w= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= +github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= @@ -488,9 +525,10 @@ github.com/onsi/gomega v1.23.0 h1:/oxKu9c2HVap+F3PfKort2Hw5DEU+HGlW8n+tguWsys= github.com/onsi/gomega v1.23.0/go.mod h1:Z/NWtiqwBrwUt4/2loMmHL63EDLnYHmVbuBpDr2vQAg= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc2 h1:2zx/Stx4Wc5pIPDvIxHXvXtQFW/7XWJGmnM7r3wg034= -github.com/opencontainers/image-spec v1.1.0-rc2/go.mod h1:3OVijpioIKYWTqjiG0zfF6wvoJ4fAXGbjdZuI2NgsRQ= +github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b h1:YWuSjZCQAPM8UUBLkYUk1e+rZcvWHJmFb6i6rM44Xs8= +github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b/go.mod h1:3OVijpioIKYWTqjiG0zfF6wvoJ4fAXGbjdZuI2NgsRQ= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= @@ -506,9 +544,12 @@ github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/poy/onpar v0.0.0-20190519213022-ee068f8ea4d1 h1:oL4IBbcqwhhNWh31bjOX8C/OCy0zs9906d/VUru+bqg= -github.com/poy/onpar v0.0.0-20190519213022-ee068f8ea4d1/go.mod h1:nSbFQvMj97ZyhFRSJYtut+msi4sOY6zJDGCdSc+/rZU= +github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= +github.com/poy/onpar v0.0.0-20200406201722-06f95a1c68e8/go.mod h1:nSbFQvMj97ZyhFRSJYtut+msi4sOY6zJDGCdSc+/rZU= +github.com/poy/onpar v1.1.2 h1:QaNrNiZx0+Nar5dLgTVp5mXkyoVFIbepjyEoGSnhbAY= +github.com/poy/onpar v1.1.2/go.mod h1:6X8FLNoxyr9kkmnlqpK6LSoiOtrO6MICtWwEuWkLjzg= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= @@ -522,6 +563,8 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1: github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= +github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= @@ -530,6 +573,7 @@ github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+ github.com/prometheus/common v0.37.0 h1:ccBbHCgIiT9uSoFY0vX8H3zsNR5eLt17/RQLUvn8pXE= github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= @@ -537,19 +581,24 @@ github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1 github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= +github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rakyll/hey v0.1.4 h1:hhc8GIqHN4+rPFZvkM9lkCQGi7da0sINM83xxpFkbPA= github.com/rakyll/hey v0.1.4/go.mod h1:nAOTOo+L52KB9SZq/M6J18kxjto4yVtXQDjU2HgjUPI= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.3 h1:utMvzDsuh3suAEnhH0RdHmoPbU648o6CvXxTx4SBMOw= github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= +github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.29.0 h1:Zes4hju04hjbvkVkOhdl2HpZa+0PmVwigmo8XoORE5w= github.com/rs/zerolog v1.29.0/go.mod h1:NILgTygv/Uej1ra5XxGf82ZFSLk58MFGAUS2o6usyD0= -github.com/rubenv/sql-migrate v1.2.0 h1:fOXMPLMd41sK7Tg75SXDec15k3zg5WNV6SjuDRiNfcU= -github.com/rubenv/sql-migrate v1.2.0/go.mod h1:Z5uVnq7vrIrPmHbVFfR4YLHRZquxeHpckCnRq0P/K9Y= +github.com/rubenv/sql-migrate v1.3.1 h1:Vx+n4Du8X8VTYuXbhNxdEUoh6wiJERA0GlWocR5FrbA= +github.com/rubenv/sql-migrate v1.3.1/go.mod h1:YzG/Vh82CwyhTFXy+Mf5ahAiiEOpAlHurg+23VEzcsk= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= @@ -558,8 +607,9 @@ github.com/sahilm/fuzzy v0.1.0 h1:FzWGaw2Opqyu+794ZQ9SYifWv2EIXpwP4q8dY1kDAwI= github.com/sahilm/fuzzy v0.1.0/go.mod h1:VFvziUEIMCrT6A6tw2RFIXPXXmzXbOsSHF0DOI8ZK9Y= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0= -github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ= github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= +github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8= +github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= @@ -569,16 +619,24 @@ github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0 github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= +github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.4.1 h1:s0hze+J0196ZfEMTs80N7UlFt0BDuQ7Q+JDnHiMWKdA= -github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= +github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= +github.com/spf13/cobra v0.0.6/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= github.com/spf13/cobra v1.6.1 h1:o94oiPyS4KD1mPy2fmcYYHHfCxLqYjJOhGsCHFZtEzA= github.com/spf13/cobra v1.6.1/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= +github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -597,14 +655,19 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c= +github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= +github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xlab/treeprint v1.1.0 h1:G/1DjNkPpfZCFt9CSh6b5/nY4VimlbHF3Rh4obvtzDk= github.com/xlab/treeprint v1.1.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0= +github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -615,8 +678,7 @@ github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5t github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43 h1:+lm10QQTNSBd8DVTNGHx7o/IKu9HYDvLMffDhbyLccI= github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50 h1:hlE8//ciYMztlGpl/VA+Zm1AcTPHYkHJPbHqE6WJUXE= github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f h1:ERexzlUfuTvpE74urLSbIQW0Z/6hF9t8U4NsJLaioAY= -github.com/ziutek/mymysql v1.5.4 h1:GB0qdRGsTwQSBVYuVShFBKaXSnSnYYC2d9knnE1LHFs= -github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0= +go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= @@ -626,13 +688,19 @@ go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= -go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= +go.opentelemetry.io/otel v1.14.0 h1:/79Huy8wbf5DnIPhemGB+zEPVwnN6fuQybr/SRXa6hM= +go.opentelemetry.io/otel v1.14.0/go.mod h1:o4buv+dJzx8rohcUeRmWUZhqupFvzWis188WlggnNeU= +go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyKcFq/M= +go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8= go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 h1:+FNtrFTmVw0YZGpBGX56XDee331t6JAXeK2bcyhLOOc= go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o= +go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -685,6 +753,7 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -692,12 +761,14 @@ golang.org/x/net v0.0.0-20181017193950-04a2e542c03f/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -732,6 +803,7 @@ golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= +golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -747,8 +819,9 @@ golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b h1:clP8eMhB30EHdc0bd2Twtq6kgU7yl5ub2cQLSdrv1Dg= golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.4.0 h1:NF0gk8LVPg1Ml7SSbGyySuoxdsXitj7TvgvuRxIMc/M= +golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -768,8 +841,10 @@ golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -789,6 +864,7 @@ golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -833,12 +909,15 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= +golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -851,13 +930,15 @@ golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= -golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 h1:vVKdlvoWBphwdxWKrFZEuM0kGgGLxUOYcY4U/2Vjg44= golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -892,6 +973,7 @@ golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapK golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200313205530-4303120df7d8/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -912,6 +994,7 @@ golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -988,10 +1071,11 @@ google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21 h1:hrbNEivu7Zn1pxvHk6MBrq9iE22woVILTHqexqBxe6I= -google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 h1:DdoeryqhaXp1LtT/emMP1BRJPHHKFi5akj/nbx/zNTA= +google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= @@ -1010,9 +1094,8 @@ google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= -google.golang.org/grpc v1.49.0 h1:WTLtQzmQori5FUH25Pq4WT22oCsv8USpQ+F6rqtsmxw= -google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= +google.golang.org/grpc v1.53.0 h1:LAv2ds7cmFV/XTS3XG1NneeENYrXGmorPxsBbptIjNc= +google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -1025,8 +1108,6 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= @@ -1041,8 +1122,10 @@ gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMy gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -1055,11 +1138,12 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0= -helm.sh/helm/v3 v3.11.1 h1:cmL9fFohOoNQf+wnp2Wa0OhNFH0KFnSzEkVxi3fcc3I= -helm.sh/helm/v3 v3.11.1/go.mod h1:z/Bu/BylToGno/6dtNGuSmjRqxKq5gaH+FU0BPO+AQ8= +helm.sh/helm/v3 v3.11.3 h1:n1X5yaQTP5DYywlBOZMl2gX398Gp6YwFp/IAVj6+5D4= +helm.sh/helm/v3 v3.11.3/go.mod h1:S+sOdQc3BLvt09a9rSlKKVs9x0N/yx+No0y3qFw+FQ8= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -1073,24 +1157,24 @@ k8s.io/apiextensions-apiserver v0.26.1 h1:cB8h1SRk6e/+i3NOrQgSFij1B2S0Y0wDoNl66b k8s.io/apiextensions-apiserver v0.26.1/go.mod h1:AptjOSXDGuE0JICx/Em15PaoO7buLwTs0dGleIHixSM= k8s.io/apimachinery v0.26.2 h1:da1u3D5wfR5u2RpLhE/ZtZS2P7QvDgLZTi9wrNZl/tQ= k8s.io/apimachinery v0.26.2/go.mod h1:ats7nN1LExKHvJ9TmwootT00Yz05MuYqPXEXaVeOy5I= -k8s.io/apiserver v0.26.1 h1:6vmnAqCDO194SVCPU3MU8NcDgSqsUA62tBUSWrFXhsc= -k8s.io/apiserver v0.26.1/go.mod h1:wr75z634Cv+sifswE9HlAo5FQ7UoUauIICRlOE+5dCg= +k8s.io/apiserver v0.26.2 h1:Pk8lmX4G14hYqJd1poHGC08G03nIHVqdJMR0SD3IH3o= +k8s.io/apiserver v0.26.2/go.mod h1:GHcozwXgXsPuOJ28EnQ/jXEM9QeG6HT22YxSNmpYNh8= k8s.io/cli-runtime v0.26.1 h1:f9+bRQ1V3elQsx37KmZy5fRAh56mVLbE9A7EMdlqVdI= k8s.io/cli-runtime v0.26.1/go.mod h1:+e5Ym/ARySKscUhZ8K3hZ+ZBo/wYPIcg+7b5sFYi6Gg= k8s.io/client-go v0.26.2 h1:s1WkVujHX3kTp4Zn4yGNFK+dlDXy1bAAkIl+cFAiuYI= k8s.io/client-go v0.26.2/go.mod h1:u5EjOuSyBa09yqqyY7m3abZeovO/7D/WehVVlZ2qcqU= -k8s.io/component-base v0.26.1 h1:4ahudpeQXHZL5kko+iDHqLj/FSGAEUnSVO0EBbgDd+4= -k8s.io/component-base v0.26.1/go.mod h1:VHrLR0b58oC035w6YQiBSbtsf0ThuSwXP+p5dD/kAWU= -k8s.io/klog/v2 v2.90.0 h1:VkTxIV/FjRXn1fgNNcKGM8cfmL1Z33ZjXRTVxKCoF5M= -k8s.io/klog/v2 v2.90.0/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= +k8s.io/component-base v0.26.2 h1:IfWgCGUDzrD6wLLgXEstJKYZKAFS2kO+rBRi0p3LqcI= +k8s.io/component-base v0.26.2/go.mod h1:DxbuIe9M3IZPRxPIzhch2m1eT7uFrSBJUBuVCQEBivs= +k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw= +k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 h1:+70TFaan3hfJzs+7VK2o+OGxg8HsuBr/5f6tVAjDu6E= k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280/go.mod h1:+Axhij7bCpeqhklhUTe3xmOn6bWxolyZEeyaFpjGtl4= k8s.io/kubectl v0.26.1 h1:K8A0Jjlwg8GqrxOXxAbjY5xtmXYeYjLU96cHp2WMQ7s= k8s.io/kubectl v0.26.1/go.mod h1:miYFVzldVbdIiXMrHZYmL/EDWwJKM+F0sSsdxsATFPo= k8s.io/metrics v0.26.2 h1:2gUvUWWnHPdE2tyA5DvyHC8HGryr+izhY9i5dzLP06s= k8s.io/metrics v0.26.2/go.mod h1:PX1wm9REV9hSGuw9GcXTFNDgab1KRXck3mNeiLYbRho= -k8s.io/utils v0.0.0-20221107191617-1a15be271d1d h1:0Smp/HP1OH4Rvhe+4B8nWGERtlqAGSftbSbbmm45oFs= -k8s.io/utils v0.0.0-20221107191617-1a15be271d1d/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 h1:kmDqav+P+/5e1i9tFfHq1qcF3sOrDp+YEkVDAHu7Jwk= +k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= oras.land/oras-go v1.2.2 h1:0E9tOHUfrNH7TCDk5KU0jVBEzCqbfdyuVfGmJ7ZeRPE= oras.land/oras-go v1.2.2/go.mod h1:Apa81sKoZPpP7CDciE006tSZ0x3Q3+dOoBcMZ/aNxvw= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= From c3a93d8db2354106fe8ebb3c0c83de04ab022911 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 7 May 2023 08:08:13 -0600 Subject: [PATCH 034/130] Bump github.com/rs/zerolog from 1.29.0 to 1.29.1 (#2060) Bumps [github.com/rs/zerolog](https://github.com/rs/zerolog) from 1.29.0 to 1.29.1. - [Release notes](https://github.com/rs/zerolog/releases) - [Commits](https://github.com/rs/zerolog/compare/v1.29.0...v1.29.1) --- updated-dependencies: - dependency-name: github.com/rs/zerolog dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index e3a7ff25f1..6be5329eb1 100644 --- a/go.mod +++ b/go.mod @@ -17,7 +17,7 @@ require ( github.com/mattn/go-runewidth v0.0.14 github.com/petergtz/pegomock v2.9.0+incompatible github.com/rakyll/hey v0.1.4 - github.com/rs/zerolog v1.29.0 + github.com/rs/zerolog v1.29.1 github.com/sahilm/fuzzy v0.1.0 github.com/spf13/cobra v1.6.1 github.com/stretchr/testify v1.8.2 diff --git a/go.sum b/go.sum index 071be71d0a..76a5545f50 100644 --- a/go.sum +++ b/go.sum @@ -120,7 +120,7 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -595,8 +595,8 @@ github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6po github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.29.0 h1:Zes4hju04hjbvkVkOhdl2HpZa+0PmVwigmo8XoORE5w= -github.com/rs/zerolog v1.29.0/go.mod h1:NILgTygv/Uej1ra5XxGf82ZFSLk58MFGAUS2o6usyD0= +github.com/rs/zerolog v1.29.1 h1:cO+d60CHkknCbvzEWxP0S9K6KqyTjrCNUy1LdQLCGPc= +github.com/rs/zerolog v1.29.1/go.mod h1:Le6ESbR7hc+DP6Lt1THiV8CQSdkkNrd3R0XbEgp3ZBU= github.com/rubenv/sql-migrate v1.3.1 h1:Vx+n4Du8X8VTYuXbhNxdEUoh6wiJERA0GlWocR5FrbA= github.com/rubenv/sql-migrate v1.3.1/go.mod h1:YzG/Vh82CwyhTFXy+Mf5ahAiiEOpAlHurg+23VEzcsk= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= From 005b10ea9b4bed109e09f4ee24c16584f6f3a847 Mon Sep 17 00:00:00 2001 From: "Kohei Ota (inductor)" Date: Sun, 7 May 2023 23:12:53 +0900 Subject: [PATCH 035/130] Unify all go version to 1.20 (#2069) --- .github/workflows/test.yml | 3 ++- .golangci.yml | 8 ++++---- go.mod | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 685766b13a..f832449b5e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -21,7 +21,8 @@ jobs: - name: Install Go uses: actions/setup-go@v4.0.0 with: - go-version: 1.19 + go-version-file: go.mod + cache-dependency-path: go.sum - name: Setup GO env run: go env -w CGO_ENABLED=0 diff --git a/.golangci.yml b/.golangci.yml index 4837e925b5..a13a58d5c3 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -365,7 +365,7 @@ linters-settings: gosimple: # Select the Go version to target. The default is '1.13'. - go: "1.15" + go: "1.20" # https://staticcheck.io/docs/options#checks checks: ["all"] @@ -515,13 +515,13 @@ linters-settings: staticcheck: # Select the Go version to target. The default is '1.13'. - go: "1.15" + 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.15" + go: "1.20" # https://staticcheck.io/docs/options#checks checks: ["all", "-ST1000", "-ST1003", "-ST1016", "-ST1020", "-ST1021", "-ST1022"] @@ -616,7 +616,7 @@ linters-settings: unused: # Select the Go version to target. The default is '1.13'. - go: "1.15" + go: "1.20" whitespace: multi-if: false # Enforces newlines (or comments) after every multi-line if statement diff --git a/go.mod b/go.mod index 6be5329eb1..0764334376 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/derailed/k9s -go 1.19 +go 1.20 require ( github.com/adrg/xdg v0.4.0 From 5657b3cd725034201028656222f685e700c8c462 Mon Sep 17 00:00:00 2001 From: tyzbit <3319104+tyzbit@users.noreply.github.com> Date: Sun, 7 May 2023 10:15:11 -0400 Subject: [PATCH 036/130] fix: (views) use saved context view when switching (#2045) * fix: (views) use saved context view when switching * fix: (app) remove unnecessary variable --- README.md | 4 ++-- internal/view/app.go | 10 ++++------ internal/view/context.go | 4 ++-- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index ded9d85971..2cbaa1f25d 100644 --- a/README.md +++ b/README.md @@ -260,8 +260,8 @@ K9s uses aliases to navigate most K8s resources. | Fuzzy find a resource given a filter | `/`-f filter⏎ | | | Bails out of view/command/filter mode | `` | | | Key mapping to describe, view, edit, view logs,... | `d`,`v`, `e`, `l`,... | | -| To view and switch to another Kubernetes context | `:`ctx⏎ | | -| To view and switch to another Kubernetes context | `:`ctx context-name⏎ | | +| To view and switch to another Kubernetes context (Pod view) | `:`ctx⏎ | | +| To view and switch directl to another Kubernetes context (Last used view) | `:`ctx context-name⏎ | | | To view and switch to another Kubernetes namespace | `:`ns⏎ | | | To view all saved resources | `:`screendump or sd⏎ | | | To delete a resource (TAB and ENTER to confirm) | `ctrl-d` | | diff --git a/internal/view/app.go b/internal/view/app.go index da4cab6c2e..9840f87c93 100644 --- a/internal/view/app.go +++ b/internal/view/app.go @@ -398,7 +398,7 @@ func (a *App) isValidNS(ns string) (bool, error) { return true, nil } -func (a *App) switchContext(name string, loadPods bool) error { +func (a *App) switchContext(name string) error { log.Debug().Msgf("--> Switching Context %q--%q", name, a.Config.ActiveView()) a.Halt() defer a.Resume() @@ -412,10 +412,8 @@ func (a *App) switchContext(name string, loadPods bool) error { if e := a.command.Reset(true); e != nil { return e } - v := a.Config.ActiveView() - if v == "" || isContextCmd(v) || loadPods { - v = "pod" - a.Config.SetActiveView(v) + if a.Config.ActiveView() == "" || isContextCmd(a.Config.ActiveView()) { + a.Config.SetActiveView("pod") } a.Config.Reset() a.Config.K9s.CurrentContext = name @@ -433,7 +431,7 @@ func (a *App) switchContext(name string, loadPods bool) error { a.Flash().Infof("Switching context to %s", name) a.ReloadStyles(name) - a.gotoResource(v, "", true) + a.gotoResource(a.Config.ActiveView(), "", true) a.clusterModel.Reset(a.factory) } diff --git a/internal/view/context.go b/internal/view/context.go index 77b5da16d6..2514b473ee 100644 --- a/internal/view/context.go +++ b/internal/view/context.go @@ -119,6 +119,6 @@ func useContext(app *App, name string) error { log.Error().Err(err).Msgf("Context switch failed") return err } - - return app.switchContext(name, true) + + return app.switchContext(name) } From 03f0d5a00e5135627f627b2809cba994539082af Mon Sep 17 00:00:00 2001 From: Narad Kumar Singh Date: Sun, 7 May 2023 19:45:31 +0530 Subject: [PATCH 037/130] Create narsingh.yml (#2067) For enhanced and clear view --- skins/narsingh.yml | 82 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 skins/narsingh.yml diff --git a/skins/narsingh.yml b/skins/narsingh.yml new file mode 100644 index 0000000000..e7d0e454fc --- /dev/null +++ b/skins/narsingh.yml @@ -0,0 +1,82 @@ +k9s: +# General K9s styles + body: + fgColor: "#97979b" + bgColor: "#282a36" + logoColor: "#5af78e" + prompt: + fgColor: "#97979b" + bgColor: "#282a36" + suggestColor: "#5af78e" + info: + fgColor: white + sectionColor: "#5af78e" + dialog: + fgColor: "#97979b" + bgColor: "#282a36" + buttonFgColor: "#97979b" + buttonBgColor: "#282a36" + buttonFocusFgColor: "#97979b" + buttonFocusBgColor: "#5af78e" + labelFgColor: "#97979b" + fieldFgColor: "#5af78e" + frame: + border: + fgColor: "#5af78e" + focusColor: "#5af78e" + menu: + fgColor: white + keyColor: "#57c7ff" + numKeyColor: "#ff6ac1" + crumbs: + fgColor: "#282a36" + bgColor: white + activeColor: "#f3f99d" + status: + newColor: "#eff0eb" + modifyColor: "#5af78e" + addColor: "#57c7ff" + errorColor: "#ff5c57" + highlightColor: "#f3f99d" + killColor: mediumpurple + completedColor: gray + title: + fgColor: "#5af78e" + bgColor: "#282a36" + highlightColor: white + counterColor: white + filterColor: "#57c7ff" + views: + # Charts skins... + charts: + bgColor: default + defaultDialColors: + - "#57c7ff" + - "#ff5c57" + defaultChartColors: + - "#57c7ff" + - "#ff5c57" + table: + fgColor: "#57c7ff" + bgColor: "#282a36" + markColor: darkgoldenrod + header: + fgColor: white + bgColor: "#282a36" + sorterColor: orange + xray: + fgColor: "#57c7ff" + bgColor: "#282a36" + cursorColor: "#5af78e" + graphicColor: darkgoldenrod + showIcons: false + yaml: + keyColor: "#ff5c57" + colonColor: white + valueColor: "#f3f99d" + logs: + fgColor: white + bgColor: "#282a36" + indicator: + fgColor: white + bgColor: "#282a36" From 465c947517fc8f09e47645a4ec641b1bcaad84df Mon Sep 17 00:00:00 2001 From: Mike <10135646+mikesmithgh@users.noreply.github.com> Date: Sun, 7 May 2023 10:18:10 -0400 Subject: [PATCH 038/130] feat: allow customization of log indicator toggles closes #2024 (#2041) --- README.md | 7 ++++++- internal/config/styles.go | 12 ++++++++---- internal/view/log_indicator.go | 25 +++++++++++++++---------- 3 files changed, 29 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 2cbaa1f25d..03c5f80571 100644 --- a/README.md +++ b/README.md @@ -866,8 +866,13 @@ k9s: valueColor: royalblue # Logs styles. logs: - fgColor: white + fgColor: lightskyblue bgColor: black + indicator: + fgColor: dodgerblue + bgColor: black + toggleOnColor: limegreen + toggleOffColor: gray ``` --- diff --git a/internal/config/styles.go b/internal/config/styles.go index e20e838357..a5fa6b691e 100644 --- a/internal/config/styles.go +++ b/internal/config/styles.go @@ -121,8 +121,10 @@ type ( // LogIndicator tracks log view indicator. LogIndicator struct { - FgColor Color `yaml:"fgColor"` - BgColor Color `yaml:"bgColor"` + FgColor Color `yaml:"fgColor"` + BgColor Color `yaml:"bgColor"` + ToggleOnColor Color `yaml:"toggleOnColor"` + ToggleOffColor Color `yaml:"toggleOffColor"` } // Yaml tracks yaml styles. @@ -367,8 +369,10 @@ func newLog() Log { func newLogIndicator() LogIndicator { return LogIndicator{ - FgColor: "dodgerblue", - BgColor: "black", + FgColor: "dodgerblue", + BgColor: "black", + ToggleOnColor: "limegreen", + ToggleOffColor: "gray", } } diff --git a/internal/view/log_indicator.go b/internal/view/log_indicator.go index ff360b589f..f640aceff1 100644 --- a/internal/view/log_indicator.go +++ b/internal/view/log_indicator.go @@ -1,6 +1,7 @@ package view import ( + "fmt" "sync/atomic" "github.com/derailed/k9s/internal/config" @@ -47,6 +48,7 @@ func NewLogIndicator(cfg *config.Config, styles *config.Styles, allContainers bo func (l *LogIndicator) StylesChanged(styles *config.Styles) { l.SetBackgroundColor(styles.K9s.Views.Log.Indicator.BgColor.Color()) l.SetTextColor(styles.K9s.Views.Log.Indicator.FgColor.Color()) + l.Refresh() } // AutoScroll reports the current scrolling status. @@ -111,36 +113,39 @@ func (l *LogIndicator) reset() { func (l *LogIndicator) Refresh() { l.reset() + toggleOnFormat := "[::b]%s:[" + string(l.styles.K9s.Views.Log.Indicator.ToggleOnColor) + "::b]On[-::] %s" + toggleOffFormat := "[::b]%s:[" + string(l.styles.K9s.Views.Log.Indicator.ToggleOffColor) + "::d]Off[-::]%s" + if l.shouldDisplayAllContainers { if l.allContainers { - l.indicator = append(l.indicator, "[::b]AllContainers:[limegreen::b]On[-::] "+spacer...) + l.indicator = append(l.indicator, fmt.Sprintf(toggleOnFormat, "AllContainers", spacer)...) } else { - l.indicator = append(l.indicator, "[::b]AllContainers:[gray::d]Off[-::]"+spacer...) + l.indicator = append(l.indicator, fmt.Sprintf(toggleOffFormat, "AllContainers", spacer)...) } } if l.AutoScroll() { - l.indicator = append(l.indicator, "[::b]Autoscroll:[limegreen::b]On[-::] "+spacer...) + l.indicator = append(l.indicator, fmt.Sprintf(toggleOnFormat, "Autoscroll", spacer)...) } else { - l.indicator = append(l.indicator, "[::b]Autoscroll:[gray::d]Off[-::]"+spacer...) + l.indicator = append(l.indicator, fmt.Sprintf(toggleOffFormat, "Autoscroll", spacer)...) } if l.FullScreen() { - l.indicator = append(l.indicator, "[::b]FullScreen:[limegreen::b]On[-::] "+spacer...) + l.indicator = append(l.indicator, fmt.Sprintf(toggleOnFormat, "FullScreen", spacer)...) } else { - l.indicator = append(l.indicator, "[::b]FullScreen:[gray::d]Off[-::]"+spacer...) + l.indicator = append(l.indicator, fmt.Sprintf(toggleOffFormat, "FullScreen", spacer)...) } if l.Timestamp() { - l.indicator = append(l.indicator, "[::b]Timestamps:[limegreen::b]On[-::] "+spacer...) + l.indicator = append(l.indicator, fmt.Sprintf(toggleOnFormat, "Timestamps", spacer)...) } else { - l.indicator = append(l.indicator, "[::b]Timestamps:[gray::d]Off[-::]"+spacer...) + l.indicator = append(l.indicator, fmt.Sprintf(toggleOffFormat, "Timestamps", spacer)...) } if l.TextWrap() { - l.indicator = append(l.indicator, "[::b]Wrap:[limegreen::b]On[-::] "...) + l.indicator = append(l.indicator, fmt.Sprintf(toggleOnFormat, "Wrap", "")...) } else { - l.indicator = append(l.indicator, "[::b]Wrap:[gray::d]Off[-::]"...) + l.indicator = append(l.indicator, fmt.Sprintf(toggleOffFormat, "Wrap", "")...) } _, _ = l.Write(l.indicator) From f4543e9bd2f9e2db922d12ba23363f6f7db38f9c Mon Sep 17 00:00:00 2001 From: Fernand Galiana Date: Sun, 7 May 2023 10:54:29 -0600 Subject: [PATCH 039/130] Rel v0.27.4 (#2075) * Update dependencies * Update k9s skins * Update release docs --- Makefile | 2 +- README.md | 2 + change_logs/release_v0.27.4.md | 74 ++++++++++++++++++++++++++++++++ go.mod | 32 +++++++------- go.sum | 77 ++++++++++++++++------------------ internal/client/config.go | 12 +++++- internal/config/config.go | 15 ++++--- internal/model/cmd_buff.go | 6 ++- internal/model/fish_buff.go | 3 ++ internal/view/context.go | 25 ++++++----- internal/view/log_indicator.go | 30 +++++++------ skins/axual.yml | 9 +++- skins/black_and_wtf.yml | 8 +++- skins/dracula.yml | 6 +++ skins/gruvbox-dark.yml | 7 +++- skins/gruvbox-light.yml | 9 +++- skins/in_the_navy.yml | 7 +++- skins/kiss.yml | 9 +++- skins/monokai.yml | 11 +++-- skins/narsingh.yml | 9 +++- skins/nightfox.yml | 7 ++++ skins/nord.yml | 8 ++++ skins/one_dark.yml | 9 +++- skins/red.yml | 7 ++++ skins/rose_pine.yml | 6 +++ skins/snazzy.yml | 7 ++++ skins/solarized_dark.yml | 11 ++++- skins/solarized_light.yml | 10 ++++- skins/stock.yml | 7 ++++ skins/transparent.yml | 7 ++++ 30 files changed, 330 insertions(+), 102 deletions(-) create mode 100644 change_logs/release_v0.27.4.md diff --git a/Makefile b/Makefile index 3a6c7e0e8f..098d42e459 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ DATE ?= $(shell TZ=UTC date -j -f "%s" ${SOURCE_DATE_EPOCH} +"%Y-%m-%dT%H: else DATE ?= $(shell date -u -d @${SOURCE_DATE_EPOCH} +"%Y-%m-%dT%H:%M:%SZ") endif -VERSION ?= v0.27.3 +VERSION ?= v0.27.4 IMG_NAME := derailed/k9s IMAGE := ${IMG_NAME}:${VERSION} diff --git a/README.md b/README.md index 03c5f80571..9078a8dd3a 100644 --- a/README.md +++ b/README.md @@ -913,6 +913,8 @@ to make this project a reality! * email fernand@imhotep.io * twitter [@kitesurfer](https://twitter.com/kitesurfer?lang=en) +* [Aleksei Romanenko](https://github.com/slimus) + We always enjoy hearing from folks who benefit from our work! ## Contributions Guideline diff --git a/change_logs/release_v0.27.4.md b/change_logs/release_v0.27.4.md new file mode 100644 index 0000000000..6d63b6c6e9 --- /dev/null +++ b/change_logs/release_v0.27.4.md @@ -0,0 +1,74 @@ + + +# Release v0.27.4 + +## Notes + +Thank you to all that contributed with flushing out issues and enhancements for K9s! I'll try to mark some of these issues as fixed. But if you don't mind grab the latest rev and see if we're happier with some of the fixes! If you've filed an issue please help me verify and close. Your support, kindness and awesome suggestions to make K9s better are, as ever, very much noted and appreciated! Also big thanks to all that have allocated their own time to help others on both slack and on this repo!! + +As you may know, K9s is not pimped out by corps with deep pockets, thus if you feel K9s is helping your Kubernetes journey, please consider joining our [sponsorship program](https://github.com/sponsors/derailed) and/or make some noise on social! [@kitesurfer](https://twitter.com/kitesurfer) + +On Slack? Please join us [K9slackers](https://join.slack.com/t/k9sers/shared_invite/enQtOTA5MDEyNzI5MTU0LWQ1ZGI3MzliYzZhZWEyNzYxYzA3NjE0YTk1YmFmNzViZjIyNzhkZGI0MmJjYzhlNjdlMGJhYzE2ZGU1NjkyNTM) + +--- +## Core Team... + +Please help me welcome Aleksei Romanenko(https://github.com/slimus) to the K9s contributor team!! +Alex is very knowledgeable in this space, kind and a great human being! +He has been instrumental with issues, prs and fielding questions in forums and slack. + +🎉 Welcome Alex!!🎉 + +--- + +## A Word From Our Sponsors... + +To all the good folks below that opted to `pay it forward` and join our sponsorship program, I salute you!! + +* [Jon Walton](https://github.com/jon-walton) +* [gmbnomis](https://github.com/gmbnomis) +* [Alex Viscreanu](https://github.com/aexvir) +* [Björn Petersen](https://github.com/BjoernPetersen) +* [Tanner Watson](https://github.com/tannerwatson) +* [Jabunovoty](https://github.com/jabunovoty) +* [Joey Guerra](https://github.com/joeyguerra) +* [Materialize Inc](https://github.com/MaterializeInc) +* [Kijana Woodard](https://github.com/kijanawoodard) +* [Tom Saleeba](https://github.com/tomsaleeba) +* [William Alexander](https://github.com/carpetfuz) +* [Süddeutsche Zeitung](https://github.com/sueddeutsche) + +> Sponsorship cancellations since the last release: `12` ;( + +--- + +## Maintenance Release + +--- + +## Resolved Issues + +* [Issue #2072](https://github.com/derailed/k9s/issues/2072) Triggered Job from cronjob is missing annotations +* [Issue #2024](https://github.com/derailed/k9s/issues/2024) Allow customization of log indicators with skin theme +* [Issue #1971](https://github.com/derailed/k9s/issues/1971) Zip binary for windows + +--- + +## Contributed PRs + +Please give `Big Thanks!` and `ATTA Girls/Boys!` to all the fine contributors for making K9s better for all of us!! + +* [PR #2073](https://github.com/derailed/k9s/pull/2073) Fix for missing Job annotations created from Cronjob +* [PR #2069](https://github.com/derailed/k9s/pull/2069) Unify all go version to 1.20 +* [PR #2067](https://github.com/derailed/k9s/pull/2067) Create narsingh skin +* [PR #2054](https://github.com/derailed/k9s/pull/2054) Update setup-go action, with caching +* [PR #2045](https://github.com/derailed/k9s/pull/2045) Fix: (views) use saved context view when switching +* [PR #2041](https://github.com/derailed/k9s/pull/2041) Feat: allow customization of log indicator toggles +* [PR #2030](https://github.com/derailed/k9s/pull/2030) Updated monokai skin with help styles, and more monokai appropriate colors +* [PR #2027](https://github.com/derailed/k9s/pull/2027) Roles are rendered using same colorer function from skin +* [PR #2045](https://github.com/derailed/k9s/pull/2045) Fix: (views) use saved context view when switching\ +* [PR #2011](https://github.com/derailed/k9s/pull/2011) Fix #2007: Remove debug command + +--- + + © 2023 Imhotep Software LLC. All materials licensed under [Apache v2.0](http://www.apache.org/licenses/LICENSE-2.0) diff --git a/go.mod b/go.mod index 0764334376..5954f3c596 100644 --- a/go.mod +++ b/go.mod @@ -21,14 +21,14 @@ require ( github.com/sahilm/fuzzy v0.1.0 github.com/spf13/cobra v1.6.1 github.com/stretchr/testify v1.8.2 - golang.org/x/text v0.9.0 + golang.org/x/text v0.8.0 gopkg.in/yaml.v2 v2.4.0 - helm.sh/helm/v3 v3.11.3 - k8s.io/api v0.26.2 + helm.sh/helm/v3 v3.11.1 + k8s.io/api v0.27.0 k8s.io/apiextensions-apiserver v0.26.1 - k8s.io/apimachinery v0.26.2 + k8s.io/apimachinery v0.27.0 k8s.io/cli-runtime v0.26.1 - k8s.io/client-go v0.26.2 + k8s.io/client-go v0.27.0 k8s.io/klog/v2 v2.90.1 k8s.io/kubectl v0.26.1 k8s.io/metrics v0.26.2 @@ -68,12 +68,12 @@ require ( github.com/go-gorp/gorp/v3 v3.0.5 // indirect github.com/go-logr/logr v1.2.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-openapi/jsonpointer v0.19.5 // indirect - github.com/go-openapi/jsonreference v0.20.0 // indirect - github.com/go-openapi/swag v0.19.14 // indirect + github.com/go-openapi/jsonpointer v0.19.6 // indirect + github.com/go-openapi/jsonreference v0.20.1 // indirect + github.com/go-openapi/swag v0.22.3 // indirect github.com/gobwas/glob v0.2.3 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/protobuf v1.5.2 // indirect + github.com/golang/protobuf v1.5.3 // indirect github.com/google/btree v1.0.1 // indirect github.com/google/gnostic v0.5.7-v3refs // indirect github.com/google/go-cmp v0.5.9 // indirect @@ -83,8 +83,6 @@ require ( github.com/gorilla/mux v1.8.0 // indirect github.com/gosuri/uitable v0.0.4 // indirect github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 // indirect - github.com/hashicorp/errwrap v1.1.0 // indirect - github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/huandu/xstrings v1.4.0 // indirect github.com/imdario/mergo v0.3.13 // indirect github.com/inconshreveable/mousetrap v1.0.1 // indirect @@ -99,7 +97,7 @@ require ( github.com/lib/pq v1.10.7 // indirect github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect - github.com/mailru/easyjson v0.7.6 // indirect + github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-isatty v0.0.17 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect @@ -114,7 +112,7 @@ require ( github.com/morikuni/aec v1.0.0 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/onsi/ginkgo v1.16.5 // indirect - github.com/onsi/gomega v1.23.0 // indirect + github.com/onsi/gomega v1.27.4 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b // indirect github.com/peterbourgon/diskv v2.0.1+incompatible // indirect @@ -139,11 +137,11 @@ require ( go.opentelemetry.io/otel/trace v1.14.0 // indirect go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 // indirect golang.org/x/crypto v0.5.0 // indirect - golang.org/x/net v0.7.0 // indirect + golang.org/x/net v0.8.0 // indirect golang.org/x/oauth2 v0.4.0 // indirect golang.org/x/sync v0.1.0 // indirect golang.org/x/sys v0.6.0 // indirect - golang.org/x/term v0.5.0 // indirect + golang.org/x/term v0.6.0 // indirect golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 // indirect @@ -153,10 +151,10 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/apiserver v0.26.2 // indirect k8s.io/component-base v0.26.2 // indirect - k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 // indirect + k8s.io/kube-openapi v0.0.0-20230308215209-15aac26d736a // indirect k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 // indirect oras.land/oras-go v1.2.2 // indirect - sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 // indirect + sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/kustomize/api v0.12.1 // indirect sigs.k8s.io/kustomize/kyaml v0.13.9 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect diff --git a/go.sum b/go.sum index 76a5545f50..4a59894ab9 100644 --- a/go.sum +++ b/go.sum @@ -158,7 +158,6 @@ github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4 github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1 h1:ZClxb8laGDf5arXfYcAtECDFgAgHklGI8CxgjHnXKJ4= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153 h1:yUdfgN0XgIJw7foRItutHYUIhlcKzcSf5vDpdhQAKTc= github.com/emicklei/go-restful/v3 v3.10.1 h1:rc42Y5YTp7Am7CS630D7JmhRjq4UlEUuEKfrDac4bSQ= github.com/emicklei/go-restful/v3 v3.10.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -213,17 +212,16 @@ github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= -github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonreference v0.20.0 h1:MYlu0sBgChmCfJxxUKZ8g1cPWFOB37YSZqewK7OKeyA= -github.com/go-openapi/jsonreference v0.20.0/go.mod h1:Ag74Ico3lPc+zR+qjn4XBUmXymS4zJbYVCZmcgkasdo= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.14 h1:gm3vOOXfiuw5i9p5N9xJvfjvuofpyvLA9Wr6QfK5Fng= -github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= +github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE= +github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= +github.com/go-openapi/jsonreference v0.20.1 h1:FBLnyygC4/IZZr893oiomc9XaghoveYTrLC1F86HID8= +github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= +github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= +github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/gobuffalo/logger v1.0.6 h1:nnZNpxYo0zx+Aj9RfMPBm+x9zAU2OayFh/xrAWi34HU= github.com/gobuffalo/logger v1.0.6/go.mod h1:J31TBEHR1QLV2683OXTAItYIg8pv2JMHnF/quuAbMjs= @@ -270,8 +268,9 @@ github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/gomodule/redigo v1.8.2 h1:H5XSIre1MB5NbPYFp+i1NBbb5qN1W8Y8YAQoAYbkm8k= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= @@ -310,6 +309,7 @@ github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= @@ -336,13 +336,11 @@ github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFb github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= -github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= @@ -431,10 +429,8 @@ github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.5 h1:b6kJs+EmPFMYGkow9GiUyCyOvIwYetYJ3fSaWak/Gls= github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA= -github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= +github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/markbates/errx v1.1.0 h1:QDFeR+UP95dO12JgW+tgi2UVfo0V8YBHiUIOaeBPiEI= github.com/markbates/errx v1.1.0/go.mod h1:PLa46Oex9KNbVDZhKel8v1OT7hD5JZ2eI7AHhA0wswc= github.com/markbates/oncer v1.0.0 h1:E83IaVAHygyndzPimgUYJjbshhDTALZyXxvk9FOlQRY= @@ -508,7 +504,6 @@ github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRW github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nelsam/hel/v2 v2.3.2/go.mod h1:1ZTGfU2PFTOd5mx22i5O0Lc2GY933lQ2wb/ggy+rL3w= github.com/nelsam/hel/v2 v2.3.3/go.mod h1:1ZTGfU2PFTOd5mx22i5O0Lc2GY933lQ2wb/ggy+rL3w= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= @@ -518,11 +513,11 @@ github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= -github.com/onsi/ginkgo/v2 v2.4.0 h1:+Ig9nvqgS5OBSACXNk15PLdp0U9XPYROt9CFzVdFGIs= +github.com/onsi/ginkgo/v2 v2.9.1 h1:zie5Ly042PD3bsCvsSOPvRnFwyo3rKe64TJlD6nu0mk= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.23.0 h1:/oxKu9c2HVap+F3PfKort2Hw5DEU+HGlW8n+tguWsys= -github.com/onsi/gomega v1.23.0/go.mod h1:Z/NWtiqwBrwUt4/2loMmHL63EDLnYHmVbuBpDr2vQAg= +github.com/onsi/gomega v1.27.4 h1:Z2AnStgsdSayCMDiCU42qIz+HLqEPcgiOCXjAU/w+8E= +github.com/onsi/gomega v1.27.4/go.mod h1:riYq/GJKh8hhoM01HN6Vmuy93AarCXCBGpvFDK3q3fQ= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b h1:YWuSjZCQAPM8UUBLkYUk1e+rZcvWHJmFb6i6rM44Xs8= @@ -592,8 +587,8 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.29.1 h1:cO+d60CHkknCbvzEWxP0S9K6KqyTjrCNUy1LdQLCGPc= github.com/rs/zerolog v1.29.1/go.mod h1:Le6ESbR7hc+DP6Lt1THiV8CQSdkkNrd3R0XbEgp3ZBU= @@ -652,6 +647,7 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= @@ -804,8 +800,8 @@ golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= -golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= -golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -918,8 +914,8 @@ golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9sn golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= -golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= -golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw= +golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -931,8 +927,8 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -994,7 +990,7 @@ golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= +golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1114,7 +1110,6 @@ gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLks gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= @@ -1142,8 +1137,8 @@ gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0= -helm.sh/helm/v3 v3.11.3 h1:n1X5yaQTP5DYywlBOZMl2gX398Gp6YwFp/IAVj6+5D4= -helm.sh/helm/v3 v3.11.3/go.mod h1:S+sOdQc3BLvt09a9rSlKKVs9x0N/yx+No0y3qFw+FQ8= +helm.sh/helm/v3 v3.11.1 h1:cmL9fFohOoNQf+wnp2Wa0OhNFH0KFnSzEkVxi3fcc3I= +helm.sh/helm/v3 v3.11.1/go.mod h1:z/Bu/BylToGno/6dtNGuSmjRqxKq5gaH+FU0BPO+AQ8= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -1151,24 +1146,24 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -k8s.io/api v0.26.2 h1:dM3cinp3PGB6asOySalOZxEG4CZ0IAdJsrYZXE/ovGQ= -k8s.io/api v0.26.2/go.mod h1:1kjMQsFE+QHPfskEcVNgL3+Hp88B80uj0QtSOlj8itU= +k8s.io/api v0.27.0 h1:2owttiA8Oa+J3idFeq8TSnNpm4y6AOGPI3PDbIpp2cE= +k8s.io/api v0.27.0/go.mod h1:Wl+QRvQlh+T8SK5f4F6YBhhyH6hrFO08nl74xZb1MUE= k8s.io/apiextensions-apiserver v0.26.1 h1:cB8h1SRk6e/+i3NOrQgSFij1B2S0Y0wDoNl66bn8RMI= k8s.io/apiextensions-apiserver v0.26.1/go.mod h1:AptjOSXDGuE0JICx/Em15PaoO7buLwTs0dGleIHixSM= -k8s.io/apimachinery v0.26.2 h1:da1u3D5wfR5u2RpLhE/ZtZS2P7QvDgLZTi9wrNZl/tQ= -k8s.io/apimachinery v0.26.2/go.mod h1:ats7nN1LExKHvJ9TmwootT00Yz05MuYqPXEXaVeOy5I= +k8s.io/apimachinery v0.27.0 h1:vEyy/PVMbPMCPutrssCVHCf0JNZ0Px+YqPi82K2ALlk= +k8s.io/apimachinery v0.27.0/go.mod h1:5ikh59fK3AJ287GUvpUsryoMFtH9zj/ARfWCo3AyXTM= k8s.io/apiserver v0.26.2 h1:Pk8lmX4G14hYqJd1poHGC08G03nIHVqdJMR0SD3IH3o= k8s.io/apiserver v0.26.2/go.mod h1:GHcozwXgXsPuOJ28EnQ/jXEM9QeG6HT22YxSNmpYNh8= k8s.io/cli-runtime v0.26.1 h1:f9+bRQ1V3elQsx37KmZy5fRAh56mVLbE9A7EMdlqVdI= k8s.io/cli-runtime v0.26.1/go.mod h1:+e5Ym/ARySKscUhZ8K3hZ+ZBo/wYPIcg+7b5sFYi6Gg= -k8s.io/client-go v0.26.2 h1:s1WkVujHX3kTp4Zn4yGNFK+dlDXy1bAAkIl+cFAiuYI= -k8s.io/client-go v0.26.2/go.mod h1:u5EjOuSyBa09yqqyY7m3abZeovO/7D/WehVVlZ2qcqU= +k8s.io/client-go v0.27.0 h1:DyZS1fJkv73tEy7rWv4VF6NwGeJ7SKvNaLRXZBYLA+4= +k8s.io/client-go v0.27.0/go.mod h1:XVEmpNnM+4JYO3EENoFV/ZDv3KxKVJUnzGo70avk+C4= k8s.io/component-base v0.26.2 h1:IfWgCGUDzrD6wLLgXEstJKYZKAFS2kO+rBRi0p3LqcI= k8s.io/component-base v0.26.2/go.mod h1:DxbuIe9M3IZPRxPIzhch2m1eT7uFrSBJUBuVCQEBivs= k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw= k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 h1:+70TFaan3hfJzs+7VK2o+OGxg8HsuBr/5f6tVAjDu6E= -k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280/go.mod h1:+Axhij7bCpeqhklhUTe3xmOn6bWxolyZEeyaFpjGtl4= +k8s.io/kube-openapi v0.0.0-20230308215209-15aac26d736a h1:gmovKNur38vgoWfGtP5QOGNOA7ki4n6qNYoFAgMlNvg= +k8s.io/kube-openapi v0.0.0-20230308215209-15aac26d736a/go.mod h1:y5VtZWM9sHHc2ZodIH/6SHzXj+TPU5USoA8lcIeKEKY= k8s.io/kubectl v0.26.1 h1:K8A0Jjlwg8GqrxOXxAbjY5xtmXYeYjLU96cHp2WMQ7s= k8s.io/kubectl v0.26.1/go.mod h1:miYFVzldVbdIiXMrHZYmL/EDWwJKM+F0sSsdxsATFPo= k8s.io/metrics v0.26.2 h1:2gUvUWWnHPdE2tyA5DvyHC8HGryr+izhY9i5dzLP06s= @@ -1180,8 +1175,8 @@ oras.land/oras-go v1.2.2/go.mod h1:Apa81sKoZPpP7CDciE006tSZ0x3Q3+dOoBcMZ/aNxvw= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 h1:iXTIw73aPyC+oRdyqqvVJuloN1p0AC/kzH07hu3NE+k= -sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= +sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= +sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= sigs.k8s.io/kustomize/api v0.12.1 h1:7YM7gW3kYBwtKvoY216ZzY+8hM+lV53LUayghNRJ0vM= sigs.k8s.io/kustomize/api v0.12.1/go.mod h1:y3JUhimkZkR6sbLNwfJHxvo1TCLwuwm14sCYnkH6S1s= sigs.k8s.io/kustomize/kyaml v0.13.9 h1:Qz53EAaFFANyNgyOEJbT/yoIHygK40/ZcvU3rgry2Tk= diff --git a/internal/client/config.go b/internal/client/config.go index 9ec5fdd33e..bb6d63f954 100644 --- a/internal/client/config.go +++ b/internal/client/config.go @@ -149,8 +149,18 @@ func (c *Config) RenameContext(old string, new string) error { if err != nil { return err } + if err := clientcmd.ModifyConfig(acc, cfg, true); err != nil { + return err + } + current, err := c.CurrentContextName() + if err != nil { + return err + } + if current == old { + return c.SwitchContext(new) + } - return clientcmd.ModifyConfig(acc, cfg, true) + return nil } // ContextNames fetch all available contexts. diff --git a/internal/config/config.go b/internal/config/config.go index 8c13c6fd8c..d6ed48f627 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -87,18 +87,23 @@ func (c *Config) Refine(flags *genericclioptions.ConfigFlags, k9sFlags *Flags, c } context, ok := cc[c.K9s.CurrentContext] if !ok { - return fmt.Errorf("The specified context %q does not exists in kubeconfig", c.K9s.CurrentContext) + return fmt.Errorf("the specified context %q does not exists in kubeconfig", c.K9s.CurrentContext) } c.K9s.CurrentCluster = context.Cluster c.K9s.ActivateCluster(context.Namespace) var ns = client.DefaultNamespace - if k9sFlags != nil && IsBoolSet(k9sFlags.AllNamespaces) { + switch { + case k9sFlags != nil && IsBoolSet(k9sFlags.AllNamespaces): ns = client.NamespaceAll - } else if isSet(flags.Namespace) { + case isSet(flags.Namespace): ns = *flags.Namespace - } else { - ns = context.Namespace + default: + if nss := context.Namespace; nss != "" { + ns = nss + } else if nss == "" { + ns = c.K9s.ActiveCluster().Namespace.Active + } } if err := c.SetActiveNamespace(ns); err != nil { diff --git a/internal/model/cmd_buff.go b/internal/model/cmd_buff.go index 06b59d0080..2a35947b96 100644 --- a/internal/model/cmd_buff.go +++ b/internal/model/cmd_buff.go @@ -61,7 +61,11 @@ func (c *CmdBuff) InCmdMode() bool { c.mx.RLock() defer c.mx.RUnlock() - return c.active || len(c.buff) > 0 + if !c.active { + return false + } + + return len(c.buff) > 0 } // IsActive checks if command buffer is active. diff --git a/internal/model/fish_buff.go b/internal/model/fish_buff.go index ab92f4de4b..77098df946 100644 --- a/internal/model/fish_buff.go +++ b/internal/model/fish_buff.go @@ -70,6 +70,9 @@ func (f *FishBuff) NextSuggestion() (string, bool) { // ClearSuggestions clear out all suggestions. func (f *FishBuff) ClearSuggestions() { + if len(f.suggestions) > 0 { + f.suggestions = f.suggestions[:0] + } f.suggestionIndex = -1 } diff --git a/internal/view/context.go b/internal/view/context.go index 2514b473ee..fd57b741e4 100644 --- a/internal/view/context.go +++ b/internal/view/context.go @@ -2,6 +2,7 @@ package view import ( "errors" + "fmt" "github.com/derailed/k9s/internal/client" "github.com/derailed/k9s/internal/dao" @@ -62,21 +63,25 @@ func (c *Context) renameDialogCallback(form *tview.Form, contextName string) err return nil } -func (c *Context) showRenameModal(a *App, name string, ok func(form *tview.Form, contextName string)(error)) { +func (c *Context) showRenameModal(a *App, name string, ok func(form *tview.Form, contextName string) error) { p := a.Content.Pages f := c.makeStyledForm() f.AddInputField(inputField, name, 0, nil, nil). - AddButton("OK", func() { - if err := ok(f, name); err != nil { - c.App().Flash().Err(err) - return - } - p.RemovePage(renamePage) - }). - AddButton("Cancel", func() { + AddButton("OK", func() { + if err := ok(f, name); err != nil { + c.App().Flash().Err(err) + return + } + p.RemovePage(renamePage) + }). + AddButton("Cancel", func() { + p.RemovePage(renamePage) + }) + m := tview.NewModalForm("", f) + m.SetText(fmt.Sprintf("Rename context %q?", name)) + m.SetDoneFunc(func(int, string) { p.RemovePage(renamePage) }) - m := tview.NewModalForm("", f) p.AddPage(renamePage, m, false, false) p.ShowPage(renamePage) } diff --git a/internal/view/log_indicator.go b/internal/view/log_indicator.go index f640aceff1..bd6859103b 100644 --- a/internal/view/log_indicator.go +++ b/internal/view/log_indicator.go @@ -6,6 +6,7 @@ import ( "github.com/derailed/k9s/internal/config" "github.com/derailed/tview" + "github.com/rs/zerolog/log" ) const spacer = " " @@ -113,40 +114,45 @@ func (l *LogIndicator) reset() { func (l *LogIndicator) Refresh() { l.reset() - toggleOnFormat := "[::b]%s:[" + string(l.styles.K9s.Views.Log.Indicator.ToggleOnColor) + "::b]On[-::] %s" - toggleOffFormat := "[::b]%s:[" + string(l.styles.K9s.Views.Log.Indicator.ToggleOffColor) + "::d]Off[-::]%s" + var ( + toggleFmt = "[::b]%s:[" + toggleOnFmt = toggleFmt + string(l.styles.K9s.Views.Log.Indicator.ToggleOnColor) + "::b]On[-::] %s" + toggleOffFmt = toggleFmt + string(l.styles.K9s.Views.Log.Indicator.ToggleOffColor) + "::d]Off[-::]%s" + ) if l.shouldDisplayAllContainers { if l.allContainers { - l.indicator = append(l.indicator, fmt.Sprintf(toggleOnFormat, "AllContainers", spacer)...) + l.indicator = append(l.indicator, fmt.Sprintf(toggleOnFmt, "AllContainers", spacer)...) } else { - l.indicator = append(l.indicator, fmt.Sprintf(toggleOffFormat, "AllContainers", spacer)...) + l.indicator = append(l.indicator, fmt.Sprintf(toggleOffFmt, "AllContainers", spacer)...) } } if l.AutoScroll() { - l.indicator = append(l.indicator, fmt.Sprintf(toggleOnFormat, "Autoscroll", spacer)...) + l.indicator = append(l.indicator, fmt.Sprintf(toggleOnFmt, "Autoscroll", spacer)...) } else { - l.indicator = append(l.indicator, fmt.Sprintf(toggleOffFormat, "Autoscroll", spacer)...) + l.indicator = append(l.indicator, fmt.Sprintf(toggleOffFmt, "Autoscroll", spacer)...) } if l.FullScreen() { - l.indicator = append(l.indicator, fmt.Sprintf(toggleOnFormat, "FullScreen", spacer)...) + l.indicator = append(l.indicator, fmt.Sprintf(toggleOnFmt, "FullScreen", spacer)...) } else { - l.indicator = append(l.indicator, fmt.Sprintf(toggleOffFormat, "FullScreen", spacer)...) + l.indicator = append(l.indicator, fmt.Sprintf(toggleOffFmt, "FullScreen", spacer)...) } if l.Timestamp() { - l.indicator = append(l.indicator, fmt.Sprintf(toggleOnFormat, "Timestamps", spacer)...) + l.indicator = append(l.indicator, fmt.Sprintf(toggleOnFmt, "Timestamps", spacer)...) } else { - l.indicator = append(l.indicator, fmt.Sprintf(toggleOffFormat, "Timestamps", spacer)...) + l.indicator = append(l.indicator, fmt.Sprintf(toggleOffFmt, "Timestamps", spacer)...) } if l.TextWrap() { - l.indicator = append(l.indicator, fmt.Sprintf(toggleOnFormat, "Wrap", "")...) + l.indicator = append(l.indicator, fmt.Sprintf(toggleOnFmt, "Wrap", "")...) } else { - l.indicator = append(l.indicator, fmt.Sprintf(toggleOffFormat, "Wrap", "")...) + l.indicator = append(l.indicator, fmt.Sprintf(toggleOffFmt, "Wrap", "")...) } + log.Debug().Msgf("INDICATOR: %q", l.indicator) + _, _ = l.Write(l.indicator) } diff --git a/skins/axual.yml b/skins/axual.yml index 16c50f4710..bc7b8701df 100644 --- a/skins/axual.yml +++ b/skins/axual.yml @@ -1,5 +1,8 @@ +# ----------------------------------------------------------------------------- # Axual Skin contributed by [@JayKus](jimmy@axual.com) -# Style +# ----------------------------------------------------------------------------- + +# Styles... blue: &blue "#113851" red: &red "#D7595F" yellow: &yellow "#F2BF40" @@ -7,7 +10,7 @@ cyan: &cyan "#47B0AB" grey: &grey "#A99688" light: &light "#F1EFE4" -# Skin +# Skin... k9s: # General K9s styles body: @@ -108,6 +111,8 @@ k9s: indicator: fgColor: *red bgColor: *blue + toggleOnColor: *green + toggleOffColor: *grey # Chart drawing charts: diff --git a/skins/black_and_wtf.yml b/skins/black_and_wtf.yml index f117a24881..2b903ad78a 100644 --- a/skins/black_and_wtf.yml +++ b/skins/black_and_wtf.yml @@ -1,3 +1,7 @@ +# ----------------------------------------------------------------------------- +# BlackAndWtf skin +# ----------------------------------------------------------------------------- + # Styles... fg: &fg "white" bg: &bg "black" @@ -11,7 +15,7 @@ err: &err "pink" slate: &slate "slategray" gray: &gray "gray" -# Skin +# Skin... k9s: body: fgColor: *fg @@ -85,6 +89,8 @@ k9s: indicator: fgColor: *ghost bgColor: *bg + toggleOnColor: *mark + toggleOffColor: gray charts: bgColor: default defaultDialColors: diff --git a/skins/dracula.yml b/skins/dracula.yml index 4bc48b0074..41ca3b0a29 100644 --- a/skins/dracula.yml +++ b/skins/dracula.yml @@ -1,3 +1,7 @@ +# ----------------------------------------------------------------------------- +# Dracula skin +# ----------------------------------------------------------------------------- + # Styles... foreground: &foreground "#f8f8f2" background: &background "#282a36" @@ -107,3 +111,5 @@ k9s: indicator: fgColor: *foreground bgColor: *purple + toggleOnColor: *green + toggleOffColor: *blue \ No newline at end of file diff --git a/skins/gruvbox-dark.yml b/skins/gruvbox-dark.yml index 99d6961593..d3bd8e4c92 100644 --- a/skins/gruvbox-dark.yml +++ b/skins/gruvbox-dark.yml @@ -1,4 +1,9 @@ -# K9s Gruvbox Dark Skin Contributed by [@indiebrain](https://github.com/indiebrain) +# ----------------------------------------------------------------------------- +# K9s Gruvbox Dark Skin +# Author: [@indiebrain](https://github.com/indiebrain) +# ----------------------------------------------------------------------------- + +# Styles... foreground: &foreground "#ebdbb2" background: &background "#272727" current_line: ¤t_line "#ebdbb2" diff --git a/skins/gruvbox-light.yml b/skins/gruvbox-light.yml index 216b70497b..65bc8c308a 100644 --- a/skins/gruvbox-light.yml +++ b/skins/gruvbox-light.yml @@ -1,4 +1,9 @@ -# K9s Gruvbox Light Skin Contributed by [@indiebrain](https://github.com/indiebrain) +# ----------------------------------------------------------------------------- +# K9s Gruvbox Light Skin +# Author: [@indiebrain](https://github.com/indiebrain) +# ----------------------------------------------------------------------------- + +# Styles... foreground: &foreground "#3c3735" background: &background "#fbf1c7" current_line: ¤t_line "#ebdbb2" @@ -98,3 +103,5 @@ k9s: indicator: fgColor: *foreground bgColor: *background + toggleOnColor: *magenta + toggleOffColor: *blue diff --git a/skins/in_the_navy.yml b/skins/in_the_navy.yml index 7a3dbba882..2b6f4ad452 100644 --- a/skins/in_the_navy.yml +++ b/skins/in_the_navy.yml @@ -1,5 +1,8 @@ -# Styles... +# ----------------------------------------------------------------------------- +# In the Navy +# ----------------------------------------------------------------------------- +# Styles... fg: &fg "dodgerblue" bg: &bg "white" blue: &blue "blue" @@ -101,3 +104,5 @@ k9s: indicator: fgColor: *dark bgColor: *bg + toggleOnColor: *steel + toggleOffColor: *blue diff --git a/skins/kiss.yml b/skins/kiss.yml index 771ca9e0c9..f8ba7a7d0d 100644 --- a/skins/kiss.yml +++ b/skins/kiss.yml @@ -1,4 +1,9 @@ -# K9s Kiss Skin Contributed by [@beejeebus](justin.p.randell@gmail.com) +# ----------------------------------------------------------------------------- +# K9s Kiss Skin +# Author: [@beejeebus](justin.p.randell@gmail.com) +# ----------------------------------------------------------------------------- + +# Skin... k9s: body: fgColor: default @@ -66,3 +71,5 @@ k9s: indicator: fgColor: default bgColor: default + toggleOnColor: default + toggleOffColor: default diff --git a/skins/monokai.yml b/skins/monokai.yml index d2f07926e4..91aaf50281 100644 --- a/skins/monokai.yml +++ b/skins/monokai.yml @@ -1,4 +1,7 @@ -# monokai.yml +# ----------------------------------------------------------------------------- +# Monokai skin +# ----------------------------------------------------------------------------- + # Styles... foreground: &foreground "#ffffff" background: &background "default" @@ -24,7 +27,7 @@ k9s: logoColorInfo: *lightBlue logoColorWarn: *orange logoColorError: *magenta - + # Command prompt styles prompt: fgColor: *foreground @@ -60,7 +63,7 @@ k9s: border: fgColor: *darkGray focusColor: *darkGray - + menu: fgColor: *foreground keyColor: *magenta @@ -159,3 +162,5 @@ k9s: indicator: fgColor: *foreground bgColor: *backgroundOpaque + toggleOnColor: *green + toggleOffColor: *magenta diff --git a/skins/narsingh.yml b/skins/narsingh.yml index e7d0e454fc..d2aa74d877 100644 --- a/skins/narsingh.yml +++ b/skins/narsingh.yml @@ -1,5 +1,10 @@ +# ----------------------------------------------------------------------------- +# Narsingh skin +# ----------------------------------------------------------------------------- + +# Skin... k9s: -# General K9s styles + # General K9s styles body: fgColor: "#97979b" bgColor: "#282a36" @@ -80,3 +85,5 @@ k9s: indicator: fgColor: white bgColor: "#282a36" + toggleOnColor: "#ff5c57" + toggleOffColor: "#f3f99d" diff --git a/skins/nightfox.yml b/skins/nightfox.yml index f072b47b41..6d144c69b6 100644 --- a/skins/nightfox.yml +++ b/skins/nightfox.yml @@ -1,6 +1,10 @@ +# ----------------------------------------------------------------------------- # K9s Nightfox Theme # Based on the Nightfox.nvim color scheme: # https://github.com/EdenEast/nightfox.nvim +# ----------------------------------------------------------------------------- + +# Styles... foreground: &foreground "#cdcecf" background: &background "#192330" current_line: ¤t_line "#2b3b51" @@ -13,6 +17,7 @@ magenta: &magenta "#9d79d6" blue: &blue "#719cd6" red: &red "#c94f6d" +# Skin... k9s: body: fgColor: *foreground @@ -94,3 +99,5 @@ k9s: indicator: fgColor: *foreground bgColor: *selection + toggleOnColor: *margenta + toggleOffColor: *blue diff --git a/skins/nord.yml b/skins/nord.yml index 9092f42d9c..eb498b59db 100644 --- a/skins/nord.yml +++ b/skins/nord.yml @@ -1,3 +1,8 @@ +# ----------------------------------------------------------------------------- +# Nord skin +# ----------------------------------------------------------------------------- + +# Styles... foreground: &foreground "#DADEE8" background: &background "#30343F" current_line: ¤t_line "#383D4A" @@ -11,6 +16,7 @@ magenta: &magenta "#B48EAD" red: &red "#BF616A" yellow: &yellow "#EBCB8B" +# Skin... k9s: # General K9s styles body: @@ -105,6 +111,8 @@ k9s: indicator: fgColor: *foreground bgColor: *magenta + toggleOnColor: *magenta + toggleOffColor: *blue help: fgColor: *foreground bgColor: *background diff --git a/skins/one_dark.yml b/skins/one_dark.yml index 809fd782a5..fc9b096410 100644 --- a/skins/one_dark.yml +++ b/skins/one_dark.yml @@ -1,4 +1,8 @@ -# OneDark presets +# ----------------------------------------------------------------------------- +# OneDark Skin +# ----------------------------------------------------------------------------- + +# Styles... foreground: &foreground "#abb2bf" background: &background "#282c34" black: &black "#080808" @@ -11,6 +15,7 @@ red: &red "#e06370" yellow: &yellow "#e5c07b" yellow_bright: &yellow_bright "#d19a66" +# Skin... k9s: body: fgColor: *foreground @@ -100,6 +105,8 @@ k9s: indicator: fgColor: *blue bgColor: *background + toggleOnColor: *red + toggleOffColor: *grey help: fgColor: *grey bgColor: *background diff --git a/skins/red.yml b/skins/red.yml index 7b977cff37..19605231be 100644 --- a/skins/red.yml +++ b/skins/red.yml @@ -1,3 +1,8 @@ +# ----------------------------------------------------------------------------- +# Red skin +# ----------------------------------------------------------------------------- + +# Skin... k9s: body: fgColor: red @@ -80,3 +85,5 @@ k9s: indicator: fgColor: red bgColor: black + toggleOnColor: red + toggleOffColor: white diff --git a/skins/rose_pine.yml b/skins/rose_pine.yml index 51b1171142..f66aa81dad 100644 --- a/skins/rose_pine.yml +++ b/skins/rose_pine.yml @@ -1,3 +1,7 @@ +# ----------------------------------------------------------------------------- +# Rose Pine skin +# ----------------------------------------------------------------------------- + # Styles... foreground: &foreground "#e0def4" background: &background "#191724" @@ -107,3 +111,5 @@ k9s: indicator: fgColor: *foreground bgColor: *purple + toggleOnColor: *pink + toggleOffColor: *purple diff --git a/skins/snazzy.yml b/skins/snazzy.yml index 03decefa35..826d5e594e 100644 --- a/skins/snazzy.yml +++ b/skins/snazzy.yml @@ -1,3 +1,8 @@ +# ----------------------------------------------------------------------------- +# Snazzy skin +# ----------------------------------------------------------------------------- + +# Skin... k9s: body: fgColor: "#97979b" @@ -79,3 +84,5 @@ k9s: indicator: fgColor: white bgColor: "#282a36" + toggleOnColor: "#ff5c57" + toggleOffColor: white diff --git a/skins/solarized_dark.yml b/skins/solarized_dark.yml index e249c16a5f..575406d8ad 100644 --- a/skins/solarized_dark.yml +++ b/skins/solarized_dark.yml @@ -1,4 +1,10 @@ -# Based on K9s Solarized Dark Skin Contributed by [@danmikita](danmikita@gmail.com) +# ----------------------------------------------------------------------------- +# Solarized Dark Skin +# Based on: K9s Solarized Dark Skin +# Author: [@danmikita](danmikita@gmail.com) +# ----------------------------------------------------------------------------- + +# Styles... foreground: &foreground "#839495" background: &background "#002833" current_line: ¤t_line "#003440" @@ -11,6 +17,7 @@ magenta: &magenta "#d33582" blue: &blue "#2aa198" red: &red "#dc312e" +# Skin... k9s: body: fgColor: *foreground @@ -92,3 +99,5 @@ k9s: indicator: fgColor: *foreground bgColor: *selection + toggleOnColor: *magenta + toggleOffColor: *blue diff --git a/skins/solarized_light.yml b/skins/solarized_light.yml index f20d3c6518..95a18117cb 100644 --- a/skins/solarized_light.yml +++ b/skins/solarized_light.yml @@ -1,4 +1,9 @@ -# K9s Solarized Light Skin Contributed by [@leg100](louisgarman@gmail.com) +# ----------------------------------------------------------------------------- +# Solarized Light Skin +# Author: [@leg100](louisgarman@gmail.com) +# ----------------------------------------------------------------------------- + +# Styles... foreground: &foreground "#657b83" background: &background "#fdf6e3" current_line: ¤t_line "#eee8d5" @@ -12,6 +17,7 @@ magenta: &magenta "#d33682" blue: &blue "#268bd2" red: &red "#dc322f" +# Skin... k9s: body: fgColor: *foreground @@ -94,3 +100,5 @@ k9s: indicator: fgColor: *foreground bgColor: *selection + toggleOnColor: *magenta + toggleOffColor: *blue diff --git a/skins/stock.yml b/skins/stock.yml index a89df7557b..89b8b9d51a 100644 --- a/skins/stock.yml +++ b/skins/stock.yml @@ -1,3 +1,8 @@ +# ----------------------------------------------------------------------------- +# Stock skin +# ----------------------------------------------------------------------------- + +# Skin... k9s: body: fgColor: dodgerblue @@ -81,3 +86,5 @@ k9s: indicator: fgColor: dodgerblue bgColor: black + toggleOnColor: papayawhip + toggleOffColor: steelblue diff --git a/skins/transparent.yml b/skins/transparent.yml index 917dbc24eb..be0a72e081 100644 --- a/skins/transparent.yml +++ b/skins/transparent.yml @@ -1,4 +1,9 @@ +# ----------------------------------------------------------------------------- +# Transparent skin # Preserve your terminal session background color +# ----------------------------------------------------------------------------- + +# Skin... k9s: body: bgColor: default @@ -32,6 +37,8 @@ k9s: bgColor: default indicator: bgColor: default + toggleOnColor: default + toggleOffColor: default yaml: colonColor: default valueColor: default From a8e0942d7eca4fc7c9dbff698d3b0a4e5a7bf235 Mon Sep 17 00:00:00 2001 From: Yann Defretin Date: Tue, 9 May 2023 17:36:29 +0200 Subject: [PATCH 040/130] Fix typo introduced in #2045 (#2082) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9078a8dd3a..753e3bc7ed 100644 --- a/README.md +++ b/README.md @@ -261,7 +261,7 @@ K9s uses aliases to navigate most K8s resources. | Bails out of view/command/filter mode | `` | | | Key mapping to describe, view, edit, view logs,... | `d`,`v`, `e`, `l`,... | | | To view and switch to another Kubernetes context (Pod view) | `:`ctx⏎ | | -| To view and switch directl to another Kubernetes context (Last used view) | `:`ctx context-name⏎ | | +| To view and switch directly to another Kubernetes context (Last used view) | `:`ctx context-name⏎ | | | To view and switch to another Kubernetes namespace | `:`ns⏎ | | | To view all saved resources | `:`screendump or sd⏎ | | | To delete a resource (TAB and ENTER to confirm) | `ctrl-d` | | From 15857b6e1505f5ea05a7e8b20c5614fe5d2e04e9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 20 May 2023 08:10:02 -0600 Subject: [PATCH 041/130] Bump golang from 1.20.3-alpine3.16 to 1.20.4-alpine3.16 (#2078) Bumps golang from 1.20.3-alpine3.16 to 1.20.4-alpine3.16. --- updated-dependencies: - dependency-name: golang dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 18a631f653..0e73ba423a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # ----------------------------------------------------------------------------- # The base image for building the k9s binary -FROM golang:1.20.3-alpine3.16 AS build +FROM golang:1.20.4-alpine3.16 AS build WORKDIR /k9s COPY go.mod go.sum main.go Makefile ./ From 288a9d0e87cce579a3393cbec14881404045c09b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 20 May 2023 08:10:36 -0600 Subject: [PATCH 042/130] Bump actions/setup-go from 4.0.0 to 4.0.1 (#2092) Bumps [actions/setup-go](https://github.com/actions/setup-go) from 4.0.0 to 4.0.1. - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](https://github.com/actions/setup-go/compare/v4.0.0...v4.0.1) --- updated-dependencies: - dependency-name: actions/setup-go dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f832449b5e..e3ba126662 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,7 +19,7 @@ jobs: uses: actions/checkout@v3.5.2 - name: Install Go - uses: actions/setup-go@v4.0.0 + uses: actions/setup-go@v4.0.1 with: go-version-file: go.mod cache-dependency-path: go.sum From 91cac5e97979078e23fead74787b88c8c015eedd Mon Sep 17 00:00:00 2001 From: tyzbit <3319104+tyzbit@users.noreply.github.com> Date: Sun, 21 May 2023 11:06:37 -0400 Subject: [PATCH 043/130] fix: (config) only respect the --command flag once (#2096) We want to switch to the command specified by the flag, but only at startup. Afterwards, we should be interactive and favor the user's command choices over the startup commandline switch. --- internal/config/config.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/internal/config/config.go b/internal/config/config.go index d6ed48f627..3a10544cfa 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -191,6 +191,10 @@ func (c *Config) ActiveView() string { cmd := cl.View.Active if c.K9s.manualCommand != nil && *c.K9s.manualCommand != "" { cmd = *c.K9s.manualCommand + // We reset the manualCommand property because + // the command-line switch should only be considered once, + // on startup. + *c.K9s.manualCommand = "" } return cmd From d383788859eac52a73b0bf98faf97a34f1bb5e63 Mon Sep 17 00:00:00 2001 From: Jayson Wang Date: Sun, 28 May 2023 21:02:17 +0800 Subject: [PATCH 044/130] Fix the wrong/redundant icon in the prompt bar (#2105) --- internal/model/cmd_buff.go | 28 ++++++++-------------------- internal/ui/prompt.go | 1 + 2 files changed, 9 insertions(+), 20 deletions(-) diff --git a/internal/model/cmd_buff.go b/internal/model/cmd_buff.go index 2a35947b96..ba4db4b392 100644 --- a/internal/model/cmd_buff.go +++ b/internal/model/cmd_buff.go @@ -38,7 +38,7 @@ type ( type CmdBuff struct { buff []rune suggestion string - listeners []BuffWatcher + listeners map[BuffWatcher]struct{} hotKey rune kind BufferKind active bool @@ -52,7 +52,7 @@ func NewCmdBuff(key rune, kind BufferKind) *CmdBuff { hotKey: key, kind: kind, buff: make([]rune, 0, maxBuff), - listeners: []BuffWatcher{}, + listeners: make(map[BuffWatcher]struct{}), } } @@ -221,7 +221,7 @@ func (c *CmdBuff) Empty() bool { func (c *CmdBuff) AddListener(w BuffWatcher) { c.mx.Lock() { - c.listeners = append(c.listeners, w) + c.listeners[w] = struct{}{} } c.mx.Unlock() } @@ -229,36 +229,24 @@ func (c *CmdBuff) AddListener(w BuffWatcher) { // RemoveListener removes a listener. func (c *CmdBuff) RemoveListener(l BuffWatcher) { c.mx.Lock() - defer c.mx.Unlock() - - victim := -1 - for i, lis := range c.listeners { - if l == lis { - victim = i - break - } - } - if victim == -1 { - return - } - - c.listeners = append(c.listeners[:victim], c.listeners[victim+1:]...) + delete(c.listeners, l) + c.mx.Unlock() } func (c *CmdBuff) fireBufferCompleted(t, s string) { - for _, l := range c.listeners { + for l := range c.listeners { l.BufferCompleted(t, s) } } func (c *CmdBuff) fireBufferChanged(t, s string) { - for _, l := range c.listeners { + for l := range c.listeners { l.BufferChanged(t, s) } } func (c *CmdBuff) fireActive(b bool) { - for _, l := range c.listeners { + for l := range c.listeners { l.BufferActive(b, c.GetKind()) } } diff --git a/internal/ui/prompt.go b/internal/ui/prompt.go index 4283793cb9..dedbdfeb2e 100644 --- a/internal/ui/prompt.go +++ b/internal/ui/prompt.go @@ -182,6 +182,7 @@ func (p *Prompt) InCmdMode() bool { } func (p *Prompt) activate() { + p.Clear() p.SetCursorIndex(len(p.model.GetText())) p.write(p.model.GetText(), p.model.GetSuggestion()) p.model.Notify(false) From 8af2bea737dcdd326db865bacc1354a563fadd8a Mon Sep 17 00:00:00 2001 From: Alex Barbato Date: Sun, 28 May 2023 09:03:30 -0400 Subject: [PATCH 045/130] Update carvel.yml to include contexts (#2103) Adding context to the example carvel file --- plugins/carvel.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/carvel.yml b/plugins/carvel.yml index 4dd172dc7f..02c6478ee9 100644 --- a/plugins/carvel.yml +++ b/plugins/carvel.yml @@ -10,7 +10,7 @@ plugin: background: false args: - -c - - "export FORCE_COLOR=1;kapp inspect -a $NAME.app --namespace $NAMESPACE --color --tty |& less -R" + - "export FORCE_COLOR=1;kapp inspect -a $NAME.app --namespace $NAMESPACE --kubeconfig-context $CONTEXT --color --tty |& less -R" kctrl-app-status: shortCut: Shift-Q confirm: false @@ -21,7 +21,7 @@ plugin: background: false args: - -c - - "export FORCE_COLOR=1;kctrl app status -a $NAME --namespace $NAMESPACE --color --tty |& less -R" + - "export FORCE_COLOR=1;kctrl app status -a $NAME --namespace $NAMESPACE --kubeconfig-context $CONTEXT --color --tty |& less -R" kctrl-app-pause: shortCut: Shift-T confirm: false @@ -32,7 +32,7 @@ plugin: background: false args: - -c - - "export FORCE_COLOR=1;kctrl app pause -a $NAME --namespace $NAMESPACE --yes --color --tty |& less -R" + - "export FORCE_COLOR=1;kctrl app pause -a $NAME --namespace $NAMESPACE --kubeconfig-context $CONTEXT --yes --color --tty |& less -R" kctrl-app-kick: shortCut: Shift-Z confirm: false @@ -43,5 +43,5 @@ plugin: background: false args: - -c - - "export FORCE_COLOR=1;kctrl app kick -a $NAME --namespace $NAMESPACE --yes --color --tty |& less -R" + - "export FORCE_COLOR=1;kctrl app kick -a $NAME --namespace $NAMESPACE --kubeconfig-context $CONTEXT --yes --color --tty |& less -R" From 4d5554443e7fc45627a9e4cbcfd5144d79b7379c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 28 May 2023 07:04:10 -0600 Subject: [PATCH 046/130] Bump k8s.io/client-go from 0.27.0 to 0.27.2 (#2101) Bumps [k8s.io/client-go](https://github.com/kubernetes/client-go) from 0.27.0 to 0.27.2. - [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md) - [Commits](https://github.com/kubernetes/client-go/compare/v0.27.0...v0.27.2) --- updated-dependencies: - dependency-name: k8s.io/client-go dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 5954f3c596..33101619f7 100644 --- a/go.mod +++ b/go.mod @@ -24,11 +24,11 @@ require ( golang.org/x/text v0.8.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.11.1 - k8s.io/api v0.27.0 + k8s.io/api v0.27.2 k8s.io/apiextensions-apiserver v0.26.1 - k8s.io/apimachinery v0.27.0 + k8s.io/apimachinery v0.27.2 k8s.io/cli-runtime v0.26.1 - k8s.io/client-go v0.27.0 + k8s.io/client-go v0.27.2 k8s.io/klog/v2 v2.90.1 k8s.io/kubectl v0.26.1 k8s.io/metrics v0.26.2 @@ -151,7 +151,7 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/apiserver v0.26.2 // indirect k8s.io/component-base v0.26.2 // indirect - k8s.io/kube-openapi v0.0.0-20230308215209-15aac26d736a // indirect + k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f // indirect k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 // indirect oras.land/oras-go v1.2.2 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect diff --git a/go.sum b/go.sum index 4a59894ab9..a62ee15c51 100644 --- a/go.sum +++ b/go.sum @@ -1146,24 +1146,24 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -k8s.io/api v0.27.0 h1:2owttiA8Oa+J3idFeq8TSnNpm4y6AOGPI3PDbIpp2cE= -k8s.io/api v0.27.0/go.mod h1:Wl+QRvQlh+T8SK5f4F6YBhhyH6hrFO08nl74xZb1MUE= +k8s.io/api v0.27.2 h1:+H17AJpUMvl+clT+BPnKf0E3ksMAzoBBg7CntpSuADo= +k8s.io/api v0.27.2/go.mod h1:ENmbocXfBT2ADujUXcBhHV55RIT31IIEvkntP6vZKS4= k8s.io/apiextensions-apiserver v0.26.1 h1:cB8h1SRk6e/+i3NOrQgSFij1B2S0Y0wDoNl66bn8RMI= k8s.io/apiextensions-apiserver v0.26.1/go.mod h1:AptjOSXDGuE0JICx/Em15PaoO7buLwTs0dGleIHixSM= -k8s.io/apimachinery v0.27.0 h1:vEyy/PVMbPMCPutrssCVHCf0JNZ0Px+YqPi82K2ALlk= -k8s.io/apimachinery v0.27.0/go.mod h1:5ikh59fK3AJ287GUvpUsryoMFtH9zj/ARfWCo3AyXTM= +k8s.io/apimachinery v0.27.2 h1:vBjGaKKieaIreI+oQwELalVG4d8f3YAMNpWLzDXkxeg= +k8s.io/apimachinery v0.27.2/go.mod h1:XNfZ6xklnMCOGGFNqXG7bUrQCoR04dh/E7FprV6pb+E= k8s.io/apiserver v0.26.2 h1:Pk8lmX4G14hYqJd1poHGC08G03nIHVqdJMR0SD3IH3o= k8s.io/apiserver v0.26.2/go.mod h1:GHcozwXgXsPuOJ28EnQ/jXEM9QeG6HT22YxSNmpYNh8= k8s.io/cli-runtime v0.26.1 h1:f9+bRQ1V3elQsx37KmZy5fRAh56mVLbE9A7EMdlqVdI= k8s.io/cli-runtime v0.26.1/go.mod h1:+e5Ym/ARySKscUhZ8K3hZ+ZBo/wYPIcg+7b5sFYi6Gg= -k8s.io/client-go v0.27.0 h1:DyZS1fJkv73tEy7rWv4VF6NwGeJ7SKvNaLRXZBYLA+4= -k8s.io/client-go v0.27.0/go.mod h1:XVEmpNnM+4JYO3EENoFV/ZDv3KxKVJUnzGo70avk+C4= +k8s.io/client-go v0.27.2 h1:vDLSeuYvCHKeoQRhCXjxXO45nHVv2Ip4Fe0MfioMrhE= +k8s.io/client-go v0.27.2/go.mod h1:tY0gVmUsHrAmjzHX9zs7eCjxcBsf8IiNe7KQ52biTcQ= k8s.io/component-base v0.26.2 h1:IfWgCGUDzrD6wLLgXEstJKYZKAFS2kO+rBRi0p3LqcI= k8s.io/component-base v0.26.2/go.mod h1:DxbuIe9M3IZPRxPIzhch2m1eT7uFrSBJUBuVCQEBivs= k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw= k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/kube-openapi v0.0.0-20230308215209-15aac26d736a h1:gmovKNur38vgoWfGtP5QOGNOA7ki4n6qNYoFAgMlNvg= -k8s.io/kube-openapi v0.0.0-20230308215209-15aac26d736a/go.mod h1:y5VtZWM9sHHc2ZodIH/6SHzXj+TPU5USoA8lcIeKEKY= +k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f h1:2kWPakN3i/k81b0gvD5C5FJ2kxm1WrQFanWchyKuqGg= +k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f/go.mod h1:byini6yhqGC14c3ebc/QwanvYwhuMWF6yz2F8uwW8eg= k8s.io/kubectl v0.26.1 h1:K8A0Jjlwg8GqrxOXxAbjY5xtmXYeYjLU96cHp2WMQ7s= k8s.io/kubectl v0.26.1/go.mod h1:miYFVzldVbdIiXMrHZYmL/EDWwJKM+F0sSsdxsATFPo= k8s.io/metrics v0.26.2 h1:2gUvUWWnHPdE2tyA5DvyHC8HGryr+izhY9i5dzLP06s= From e8955ea9fce0008df71c316332582ac6c9cd7c95 Mon Sep 17 00:00:00 2001 From: Jan Dittrich Date: Sun, 28 May 2023 15:24:47 +0200 Subject: [PATCH 047/130] Add get-all plugin specific for namespace view (#2091) --- plugins/get-all.yml | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/plugins/get-all.yml b/plugins/get-all.yml index 20001d0eea..b6b1c46036 100644 --- a/plugins/get-all.yml +++ b/plugins/get-all.yml @@ -1,6 +1,17 @@ plugin: #get all resources in a namespace using the krew get-all plugin - get-all: + get-all-namespace: + shortCut: g + confirm: false + description: get-all + scopes: + - namespaces + command: sh + background: false + args: + - -c + - "kubectl get-all -n $NAME | less" + get-all-other: shortCut: g confirm: false description: get-all @@ -10,4 +21,4 @@ plugin: background: false args: - -c - - "kubectl get-all -n $NAMESPACE | less" \ No newline at end of file + - "kubectl get-all -n $NAMESPACE | less" From 96e4f5483073a92d7e77ae6d704d0fa286bd051e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 28 May 2023 07:25:34 -0600 Subject: [PATCH 048/130] Bump alpine from 3.17.3 to 3.18.0 (#2093) Bumps alpine from 3.17.3 to 3.18.0. --- updated-dependencies: - dependency-name: alpine dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 0e73ba423a..c0af552229 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,7 +12,7 @@ RUN apk --no-cache add --update make libx11-dev git gcc libc-dev curl && make bu # ----------------------------------------------------------------------------- # Build the final Docker image -FROM alpine:3.17.3 +FROM alpine:3.18.0 ARG KUBECTL_VERSION="v1.25.2" COPY --from=build /k9s/execs/k9s /bin/k9s From 65e6153d0c6a68b62bfa7b4272e5d17bb267f9a0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 28 May 2023 08:03:38 -0600 Subject: [PATCH 049/130] Bump k8s.io/cli-runtime from 0.26.1 to 0.27.2 (#2102) Bumps [k8s.io/cli-runtime](https://github.com/kubernetes/cli-runtime) from 0.26.1 to 0.27.2. - [Commits](https://github.com/kubernetes/cli-runtime/compare/v0.26.1...v0.27.2) --- updated-dependencies: - dependency-name: k8s.io/cli-runtime dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 33101619f7..ce2bbed4e4 100644 --- a/go.mod +++ b/go.mod @@ -27,7 +27,7 @@ require ( k8s.io/api v0.27.2 k8s.io/apiextensions-apiserver v0.26.1 k8s.io/apimachinery v0.27.2 - k8s.io/cli-runtime v0.26.1 + k8s.io/cli-runtime v0.27.2 k8s.io/client-go v0.27.2 k8s.io/klog/v2 v2.90.1 k8s.io/kubectl v0.26.1 @@ -64,7 +64,7 @@ require ( github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d // indirect github.com/fatih/camelcase v1.0.0 // indirect github.com/gdamore/encoding v1.0.0 // indirect - github.com/go-errors/errors v1.0.1 // indirect + github.com/go-errors/errors v1.4.2 // indirect github.com/go-gorp/gorp/v3 v3.0.5 // indirect github.com/go-logr/logr v1.2.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect @@ -155,7 +155,7 @@ require ( k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 // indirect oras.land/oras-go v1.2.2 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect - sigs.k8s.io/kustomize/api v0.12.1 // indirect - sigs.k8s.io/kustomize/kyaml v0.13.9 // indirect + sigs.k8s.io/kustomize/api v0.13.2 // indirect + sigs.k8s.io/kustomize/kyaml v0.14.1 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect ) diff --git a/go.sum b/go.sum index a62ee15c51..f18bc07a18 100644 --- a/go.sum +++ b/go.sum @@ -191,8 +191,8 @@ github.com/gdamore/encoding v1.0.0 h1:+7OoQ1Bc6eTm5niUzBa0Ctsh6JbMW6Ra+YNuAtDBdk github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w= -github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= +github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= +github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -1154,8 +1154,8 @@ k8s.io/apimachinery v0.27.2 h1:vBjGaKKieaIreI+oQwELalVG4d8f3YAMNpWLzDXkxeg= k8s.io/apimachinery v0.27.2/go.mod h1:XNfZ6xklnMCOGGFNqXG7bUrQCoR04dh/E7FprV6pb+E= k8s.io/apiserver v0.26.2 h1:Pk8lmX4G14hYqJd1poHGC08G03nIHVqdJMR0SD3IH3o= k8s.io/apiserver v0.26.2/go.mod h1:GHcozwXgXsPuOJ28EnQ/jXEM9QeG6HT22YxSNmpYNh8= -k8s.io/cli-runtime v0.26.1 h1:f9+bRQ1V3elQsx37KmZy5fRAh56mVLbE9A7EMdlqVdI= -k8s.io/cli-runtime v0.26.1/go.mod h1:+e5Ym/ARySKscUhZ8K3hZ+ZBo/wYPIcg+7b5sFYi6Gg= +k8s.io/cli-runtime v0.27.2 h1:9HI8gfReNujKXt16tGOAnb8b4NZ5E+e0mQQHKhFGwYw= +k8s.io/cli-runtime v0.27.2/go.mod h1:9UecpyPDTkhiYY4d9htzRqN+rKomJgyb4wi0OfrmCjw= k8s.io/client-go v0.27.2 h1:vDLSeuYvCHKeoQRhCXjxXO45nHVv2Ip4Fe0MfioMrhE= k8s.io/client-go v0.27.2/go.mod h1:tY0gVmUsHrAmjzHX9zs7eCjxcBsf8IiNe7KQ52biTcQ= k8s.io/component-base v0.26.2 h1:IfWgCGUDzrD6wLLgXEstJKYZKAFS2kO+rBRi0p3LqcI= @@ -1177,10 +1177,10 @@ rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= -sigs.k8s.io/kustomize/api v0.12.1 h1:7YM7gW3kYBwtKvoY216ZzY+8hM+lV53LUayghNRJ0vM= -sigs.k8s.io/kustomize/api v0.12.1/go.mod h1:y3JUhimkZkR6sbLNwfJHxvo1TCLwuwm14sCYnkH6S1s= -sigs.k8s.io/kustomize/kyaml v0.13.9 h1:Qz53EAaFFANyNgyOEJbT/yoIHygK40/ZcvU3rgry2Tk= -sigs.k8s.io/kustomize/kyaml v0.13.9/go.mod h1:QsRbD0/KcU+wdk0/L0fIp2KLnohkVzs6fQ85/nOXac4= +sigs.k8s.io/kustomize/api v0.13.2 h1:kejWfLeJhUsTGioDoFNJET5LQe/ajzXhJGYoU+pJsiA= +sigs.k8s.io/kustomize/api v0.13.2/go.mod h1:DUp325VVMFVcQSq+ZxyDisA8wtldwHxLZbr1g94UHsw= +sigs.k8s.io/kustomize/kyaml v0.14.1 h1:c8iibius7l24G2wVAGZn/Va2wNys03GXLjYVIcFVxKA= +sigs.k8s.io/kustomize/kyaml v0.14.1/go.mod h1:AN1/IpawKilWD7V+YvQwRGUvuUOOWpjsHu6uHwonSF4= sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE= sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E= sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= From f809963b888fd41c544e088d4da88a427673fcd4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 28 May 2023 08:04:20 -0600 Subject: [PATCH 050/130] Bump github.com/docker/distribution (#2088) Bumps [github.com/docker/distribution](https://github.com/docker/distribution) from 2.8.1+incompatible to 2.8.2+incompatible. - [Release notes](https://github.com/docker/distribution/releases) - [Commits](https://github.com/docker/distribution/compare/v2.8.1...v2.8.2) --- updated-dependencies: - dependency-name: github.com/docker/distribution dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index ce2bbed4e4..ed2bd87f9d 100644 --- a/go.mod +++ b/go.mod @@ -53,7 +53,7 @@ require ( github.com/cyphar/filepath-securejoin v0.2.3 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/docker/cli v20.10.21+incompatible // indirect - github.com/docker/distribution v2.8.1+incompatible // indirect + github.com/docker/distribution v2.8.2+incompatible // indirect github.com/docker/docker v20.10.24+incompatible // indirect github.com/docker/docker-credential-helpers v0.7.0 // indirect github.com/docker/go-connections v0.4.0 // indirect diff --git a/go.sum b/go.sum index f18bc07a18..6935dc0f11 100644 --- a/go.sum +++ b/go.sum @@ -143,8 +143,8 @@ github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8 github.com/distribution/distribution/v3 v3.0.0-20221208165359-362910506bc2 h1:aBfCb7iqHmDEIp6fBvC/hQUddQfg+3qdYjwzaiP9Hnc= github.com/docker/cli v20.10.21+incompatible h1:qVkgyYUnOLQ98LtXBrwd/duVqPT2X4SHndOuGsfwyhU= github.com/docker/cli v20.10.21+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= -github.com/docker/distribution v2.8.1+incompatible h1:Q50tZOPR6T/hjNsyc9g8/syEs6bk8XXApsHjKukMl68= -github.com/docker/distribution v2.8.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= +github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/docker v20.10.24+incompatible h1:Ugvxm7a8+Gz6vqQYQQ2W7GYq5EUPaAiuPgIfVyI3dYE= github.com/docker/docker v20.10.24+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.7.0 h1:xtCHsjxogADNZcdv1pKUHXryefjlVRqWqIhk/uXJp0A= From defc9a801d4d8b6850514ab1343d1f2bfbd05d1b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 28 May 2023 08:04:38 -0600 Subject: [PATCH 051/130] Bump github.com/cenkalti/backoff/v4 from 4.2.0 to 4.2.1 (#2081) Bumps [github.com/cenkalti/backoff/v4](https://github.com/cenkalti/backoff) from 4.2.0 to 4.2.1. - [Commits](https://github.com/cenkalti/backoff/compare/v4.2.0...v4.2.1) --- updated-dependencies: - dependency-name: github.com/cenkalti/backoff/v4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index ed2bd87f9d..4bedea9c8f 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.20 require ( github.com/adrg/xdg v0.4.0 github.com/atotto/clipboard v0.1.4 - github.com/cenkalti/backoff/v4 v4.2.0 + github.com/cenkalti/backoff/v4 v4.2.1 github.com/derailed/popeye v0.11.1 github.com/derailed/tcell/v2 v2.3.1-rc.3 github.com/derailed/tview v0.8.1 diff --git a/go.sum b/go.sum index 6935dc0f11..f44ab63d12 100644 --- a/go.sum +++ b/go.sum @@ -93,8 +93,8 @@ github.com/bshuster-repo/logrus-logstash-hook v1.0.0 h1:e+C0SB5R1pu//O4MQ3f9cFuP github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd h1:rFt+Y/IK1aEZkEHchZRSq9OQbsSzIT/OrI8YFFmRIng= github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b h1:otBG+dV+YK+Soembjv71DPz3uX/V/6MMlSyD9JBQ6kQ= github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0 h1:nvj0OLI3YqYXer/kZD8Ri1aaunCxIEsOst1BVJswV0o= -github.com/cenkalti/backoff/v4 v4.2.0 h1:HN5dHm3WBOgndBH6E8V0q2jIYIR3s9yglV8k/+MN3u4= -github.com/cenkalti/backoff/v4 v4.2.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= +github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= From ac0cfd758758005e165b2f3583efcf431a02d919 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 28 May 2023 08:04:55 -0600 Subject: [PATCH 052/130] Bump github.com/fvbommel/sortorder from 1.0.2 to 1.1.0 (#2080) Bumps [github.com/fvbommel/sortorder](https://github.com/fvbommel/sortorder) from 1.0.2 to 1.1.0. - [Commits](https://github.com/fvbommel/sortorder/compare/v1.0.2...v1.1.0) --- updated-dependencies: - dependency-name: github.com/fvbommel/sortorder dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 4bedea9c8f..f7eb469352 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/derailed/tview v0.8.1 github.com/fatih/color v1.15.0 github.com/fsnotify/fsnotify v1.6.0 - github.com/fvbommel/sortorder v1.0.2 + github.com/fvbommel/sortorder v1.1.0 github.com/ghodss/yaml v1.0.0 github.com/mattn/go-colorable v0.1.13 github.com/mattn/go-runewidth v0.0.14 diff --git a/go.sum b/go.sum index f44ab63d12..92c78d5420 100644 --- a/go.sum +++ b/go.sum @@ -185,8 +185,8 @@ github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMo github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= -github.com/fvbommel/sortorder v1.0.2 h1:mV4o8B2hKboCdkJm+a7uX/SIpZob4JzUpc5GGnM45eo= -github.com/fvbommel/sortorder v1.0.2/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0= +github.com/fvbommel/sortorder v1.1.0 h1:fUmoe+HLsBTctBDoaBwpQo5N+nrCp8g/BjKb/6ZQmYw= +github.com/fvbommel/sortorder v1.1.0/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0= github.com/gdamore/encoding v1.0.0 h1:+7OoQ1Bc6eTm5niUzBa0Ctsh6JbMW6Ra+YNuAtDBdko= github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= From c4ef6006bd05f251ee4f2f4f81e94227209d65e3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 3 Jun 2023 07:49:00 -0600 Subject: [PATCH 053/130] Bump github.com/stretchr/testify from 1.8.2 to 1.8.3 (#2111) Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.2 to 1.8.3. - [Release notes](https://github.com/stretchr/testify/releases) - [Commits](https://github.com/stretchr/testify/compare/v1.8.2...v1.8.3) --- updated-dependencies: - dependency-name: github.com/stretchr/testify dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index f7eb469352..db3cc34b60 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/rs/zerolog v1.29.1 github.com/sahilm/fuzzy v0.1.0 github.com/spf13/cobra v1.6.1 - github.com/stretchr/testify v1.8.2 + github.com/stretchr/testify v1.8.3 golang.org/x/text v0.8.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.11.1 diff --git a/go.sum b/go.sum index 92c78d5420..3342c16fed 100644 --- a/go.sum +++ b/go.sum @@ -648,8 +648,8 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= -github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gtY= +github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= From 25a99d3f3ad48632df40139aaf2a92775c5da77b Mon Sep 17 00:00:00 2001 From: Daniel Vedsmand Date: Wed, 14 Jun 2023 15:59:20 +0200 Subject: [PATCH 054/130] fix: add correct flags when deleting resources from Dir (#2124) --- internal/view/dir.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/internal/view/dir.go b/internal/view/dir.go index ce3a18858c..a16f91372e 100644 --- a/internal/view/dir.go +++ b/internal/view/dir.go @@ -229,13 +229,23 @@ func (d *Dir) delCmd(evt *tcell.EventKey) *tcell.EventKey { return evt } + opts := []string{"-f"} + msgRessource := "manifest" + if containsDir(sel) { + opts = append(opts, "-R") + } + if isKustomized(sel) { + opts = []string{"-k"} + msgRessource = "kustomization" + } + d.Stop() defer d.Start() - msg := fmt.Sprintf("Delete resource(s) in manifest %s", sel) + msg := fmt.Sprintf("Delete resource(s) in %s %s", msgRessource, sel) dialog.ShowConfirm(d.App().Styles.Dialog(), d.App().Content.Pages, "Confirm Delete", msg, func() { args := make([]string, 0, 10) args = append(args, "delete") - args = append(args, "-f") + args = append(args, opts...) args = append(args, sel) res, err := runKu(d.App(), shellOpts{clear: false, args: args}) if err != nil { From 248f7bc56ca76217ede62f13fbb8337b94823bd1 Mon Sep 17 00:00:00 2001 From: Aleksei Romanenko Date: Wed, 14 Jun 2023 09:00:30 -0500 Subject: [PATCH 055/130] Add instruction how to install k9s through winget (#2117) --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 753e3bc7ed..d00c08fe1b 100644 --- a/README.md +++ b/README.md @@ -75,6 +75,11 @@ K9s is available on Linux, macOS and Windows platforms. pkg install k9s ``` +* Via [Winget](https://github.com/microsoft/winget-cli) for Windows + ```shell + winget install k9s + ``` + * Via [Scoop](https://scoop.sh) for Windows ```shell From 5a0a8f12e4cd2137badf8e2063c0ab3e3ff2f5cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D1=82=D0=B0=D0=BD=D0=B8=D1=81=D0=BB=D0=B0=D0=B2?= Date: Wed, 14 Jun 2023 17:02:27 +0300 Subject: [PATCH 056/130] Fix for styles (#2112) * Show correct error when loading skins. * Fix wrong color reference for dracula theme --- internal/ui/config.go | 14 ++++++++++++-- skins/dracula.yml | 2 +- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/internal/ui/config.go b/internal/ui/config.go index 23a6c195ca..c655be0f2d 100644 --- a/internal/ui/config.go +++ b/internal/ui/config.go @@ -2,7 +2,9 @@ package ui import ( "context" + "errors" "fmt" + "os" "path/filepath" "github.com/derailed/k9s/internal/config" @@ -131,14 +133,22 @@ func (c *Configurator) RefreshStyles(context string) { c.Styles.Reset() } if err := c.Styles.Load(clusterSkins); err != nil { - log.Warn().Msgf("No context specific skin file found -- %s", clusterSkins) + if errors.Is(err, os.ErrNotExist) { + log.Warn().Msgf("No context specific skin file found -- %s", clusterSkins) + } else { + log.Error().Msgf("Failed to parse context specific skin file -- %s. %s.", clusterSkins, err) + } } else { c.updateStyles(clusterSkins) return } if err := c.Styles.Load(config.K9sStylesFile); err != nil { - log.Warn().Msgf("No skin file found -- %s. Loading stock skins.", config.K9sStylesFile) + if errors.Is(err, os.ErrNotExist) { + log.Warn().Msgf("No skin file found -- %s. Loading stock skins.", config.K9sStylesFile) + } else { + log.Error().Msgf("Failed to parse skin file -- %s. %s. Loading stock skins.", config.K9sStylesFile, err) + } c.updateStyles("") return } diff --git a/skins/dracula.yml b/skins/dracula.yml index 41ca3b0a29..6df70e8a2f 100644 --- a/skins/dracula.yml +++ b/skins/dracula.yml @@ -112,4 +112,4 @@ k9s: fgColor: *foreground bgColor: *purple toggleOnColor: *green - toggleOffColor: *blue \ No newline at end of file + toggleOffColor: *cyan \ No newline at end of file From 37dbb198a02dd737d2477a51f67c2c425df2a2b5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Jun 2023 08:02:51 -0600 Subject: [PATCH 057/130] Bump helm.sh/helm/v3 from 3.11.1 to 3.12.0 (#2116) Bumps [helm.sh/helm/v3](https://github.com/helm/helm) from 3.11.1 to 3.12.0. - [Release notes](https://github.com/helm/helm/releases) - [Commits](https://github.com/helm/helm/compare/v3.11.1...v3.12.0) --- updated-dependencies: - dependency-name: helm.sh/helm/v3 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 16 +++++++++------- go.sum | 36 ++++++++++++++++++++---------------- 2 files changed, 29 insertions(+), 23 deletions(-) diff --git a/go.mod b/go.mod index db3cc34b60..170dd0f3fb 100644 --- a/go.mod +++ b/go.mod @@ -21,17 +21,17 @@ require ( github.com/sahilm/fuzzy v0.1.0 github.com/spf13/cobra v1.6.1 github.com/stretchr/testify v1.8.3 - golang.org/x/text v0.8.0 + golang.org/x/text v0.9.0 gopkg.in/yaml.v2 v2.4.0 - helm.sh/helm/v3 v3.11.1 + helm.sh/helm/v3 v3.12.0 k8s.io/api v0.27.2 - k8s.io/apiextensions-apiserver v0.26.1 + k8s.io/apiextensions-apiserver v0.27.1 k8s.io/apimachinery v0.27.2 k8s.io/cli-runtime v0.27.2 k8s.io/client-go v0.27.2 k8s.io/klog/v2 v2.90.1 - k8s.io/kubectl v0.26.1 - k8s.io/metrics v0.26.2 + k8s.io/kubectl v0.27.1 + k8s.io/metrics v0.27.1 sigs.k8s.io/yaml v1.3.0 ) @@ -83,6 +83,8 @@ require ( github.com/gorilla/mux v1.8.0 // indirect github.com/gosuri/uitable v0.0.4 // indirect github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 // indirect + github.com/hashicorp/errwrap v1.1.0 // indirect + github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/huandu/xstrings v1.4.0 // indirect github.com/imdario/mergo v0.3.13 // indirect github.com/inconshreveable/mousetrap v1.0.1 // indirect @@ -149,8 +151,8 @@ require ( google.golang.org/protobuf v1.28.1 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apiserver v0.26.2 // indirect - k8s.io/component-base v0.26.2 // indirect + k8s.io/apiserver v0.27.1 // indirect + k8s.io/component-base v0.27.1 // indirect k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f // indirect k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 // indirect oras.land/oras-go v1.2.2 // indirect diff --git a/go.sum b/go.sum index 3342c16fed..42c8a92710 100644 --- a/go.sum +++ b/go.sum @@ -179,6 +179,7 @@ github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYF github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= +github.com/foxcpp/go-mockdns v1.0.0 h1:7jBqxd3WDWwi/6WhDvacvH1XsN3rOLXyHM1uhvIx6FI= github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= @@ -336,11 +337,13 @@ github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFb github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= @@ -462,6 +465,7 @@ github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5 github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/miekg/dns v1.1.25 h1:dFwPR6SfLtrSwgDcIq2bcU/gVutB4sNApq2HBdqcakg= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/cli v1.1.5/go.mod h1:v8+iFts2sPIKUV1ltktPXMCC8fumSKFItNcD2cLtRR4= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= @@ -749,7 +753,7 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= +golang.org/x/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -927,8 +931,8 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= -golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1136,9 +1140,9 @@ gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gotest.tools/v3 v3.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0= -helm.sh/helm/v3 v3.11.1 h1:cmL9fFohOoNQf+wnp2Wa0OhNFH0KFnSzEkVxi3fcc3I= -helm.sh/helm/v3 v3.11.1/go.mod h1:z/Bu/BylToGno/6dtNGuSmjRqxKq5gaH+FU0BPO+AQ8= +gotest.tools/v3 v3.4.0 h1:ZazjZUfuVeZGLAmlKKuyv3IKP5orXcwtOwDQH6YVr6o= +helm.sh/helm/v3 v3.12.0 h1:rOq2TPVzg5jt4q5ermAZGZFxNW2uQhKjRhBneAutMEM= +helm.sh/helm/v3 v3.12.0/go.mod h1:8K/469yxjUMu6BaD2EagCitkPjELUL/l2AgCO142G94= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -1148,26 +1152,26 @@ honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9 honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= k8s.io/api v0.27.2 h1:+H17AJpUMvl+clT+BPnKf0E3ksMAzoBBg7CntpSuADo= k8s.io/api v0.27.2/go.mod h1:ENmbocXfBT2ADujUXcBhHV55RIT31IIEvkntP6vZKS4= -k8s.io/apiextensions-apiserver v0.26.1 h1:cB8h1SRk6e/+i3NOrQgSFij1B2S0Y0wDoNl66bn8RMI= -k8s.io/apiextensions-apiserver v0.26.1/go.mod h1:AptjOSXDGuE0JICx/Em15PaoO7buLwTs0dGleIHixSM= +k8s.io/apiextensions-apiserver v0.27.1 h1:Hp7B3KxKHBZ/FxmVFVpaDiXI6CCSr49P1OJjxKO6o4g= +k8s.io/apiextensions-apiserver v0.27.1/go.mod h1:8jEvRDtKjVtWmdkhOqE84EcNWJt/uwF8PC4627UZghY= k8s.io/apimachinery v0.27.2 h1:vBjGaKKieaIreI+oQwELalVG4d8f3YAMNpWLzDXkxeg= k8s.io/apimachinery v0.27.2/go.mod h1:XNfZ6xklnMCOGGFNqXG7bUrQCoR04dh/E7FprV6pb+E= -k8s.io/apiserver v0.26.2 h1:Pk8lmX4G14hYqJd1poHGC08G03nIHVqdJMR0SD3IH3o= -k8s.io/apiserver v0.26.2/go.mod h1:GHcozwXgXsPuOJ28EnQ/jXEM9QeG6HT22YxSNmpYNh8= +k8s.io/apiserver v0.27.1 h1:phY+BtXjjzd+ta3a4kYbomC81azQSLa1K8jo9RBw7Lg= +k8s.io/apiserver v0.27.1/go.mod h1:UGrOjLY2KsieA9Fw6lLiTObxTb8Z1xEba4uqSuMY0WU= k8s.io/cli-runtime v0.27.2 h1:9HI8gfReNujKXt16tGOAnb8b4NZ5E+e0mQQHKhFGwYw= k8s.io/cli-runtime v0.27.2/go.mod h1:9UecpyPDTkhiYY4d9htzRqN+rKomJgyb4wi0OfrmCjw= k8s.io/client-go v0.27.2 h1:vDLSeuYvCHKeoQRhCXjxXO45nHVv2Ip4Fe0MfioMrhE= k8s.io/client-go v0.27.2/go.mod h1:tY0gVmUsHrAmjzHX9zs7eCjxcBsf8IiNe7KQ52biTcQ= -k8s.io/component-base v0.26.2 h1:IfWgCGUDzrD6wLLgXEstJKYZKAFS2kO+rBRi0p3LqcI= -k8s.io/component-base v0.26.2/go.mod h1:DxbuIe9M3IZPRxPIzhch2m1eT7uFrSBJUBuVCQEBivs= +k8s.io/component-base v0.27.1 h1:kEB8p8lzi4gCs5f2SPU242vOumHJ6EOsOnDM3tTuDTM= +k8s.io/component-base v0.27.1/go.mod h1:UGEd8+gxE4YWoigz5/lb3af3Q24w98pDseXcXZjw+E0= k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw= k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f h1:2kWPakN3i/k81b0gvD5C5FJ2kxm1WrQFanWchyKuqGg= k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f/go.mod h1:byini6yhqGC14c3ebc/QwanvYwhuMWF6yz2F8uwW8eg= -k8s.io/kubectl v0.26.1 h1:K8A0Jjlwg8GqrxOXxAbjY5xtmXYeYjLU96cHp2WMQ7s= -k8s.io/kubectl v0.26.1/go.mod h1:miYFVzldVbdIiXMrHZYmL/EDWwJKM+F0sSsdxsATFPo= -k8s.io/metrics v0.26.2 h1:2gUvUWWnHPdE2tyA5DvyHC8HGryr+izhY9i5dzLP06s= -k8s.io/metrics v0.26.2/go.mod h1:PX1wm9REV9hSGuw9GcXTFNDgab1KRXck3mNeiLYbRho= +k8s.io/kubectl v0.27.1 h1:9T5c5KdpburYiW8XKQSH0Uly1kMNE90aGSnbYUZNdcA= +k8s.io/kubectl v0.27.1/go.mod h1:QsAkSmrRsKTPlAFzF8kODGDl4p35BIwQnc9XFhkcsy8= +k8s.io/metrics v0.27.1 h1:qIASSok+9dhKPrfAZmFreIdpgBgKTfXwkM9CQ+tNM90= +k8s.io/metrics v0.27.1/go.mod h1:5sYmQTC3aeL/24kkJ5fYECVuIz0xhO6oipfGJ81JC1Y= k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 h1:kmDqav+P+/5e1i9tFfHq1qcF3sOrDp+YEkVDAHu7Jwk= k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= oras.land/oras-go v1.2.2 h1:0E9tOHUfrNH7TCDk5KU0jVBEzCqbfdyuVfGmJ7ZeRPE= From 152ace0f375425f3d4662e95ffcdb920a875872c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Jun 2023 08:03:16 -0600 Subject: [PATCH 058/130] Bump github.com/spf13/cobra from 1.6.1 to 1.7.0 (#2110) Bumps [github.com/spf13/cobra](https://github.com/spf13/cobra) from 1.6.1 to 1.7.0. - [Release notes](https://github.com/spf13/cobra/releases) - [Commits](https://github.com/spf13/cobra/compare/v1.6.1...v1.7.0) --- updated-dependencies: - dependency-name: github.com/spf13/cobra dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 170dd0f3fb..2fb7f9705e 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/rakyll/hey v0.1.4 github.com/rs/zerolog v1.29.1 github.com/sahilm/fuzzy v0.1.0 - github.com/spf13/cobra v1.6.1 + github.com/spf13/cobra v1.7.0 github.com/stretchr/testify v1.8.3 golang.org/x/text v0.9.0 gopkg.in/yaml.v2 v2.4.0 @@ -87,7 +87,7 @@ require ( github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/huandu/xstrings v1.4.0 // indirect github.com/imdario/mergo v0.3.13 // indirect - github.com/inconshreveable/mousetrap v1.0.1 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/jmoiron/sqlx v1.3.5 // indirect github.com/josharian/intern v1.0.0 // indirect diff --git a/go.sum b/go.sum index 42c8a92710..d8fac28044 100644 --- a/go.sum +++ b/go.sum @@ -371,8 +371,8 @@ github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc= -github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= @@ -628,8 +628,8 @@ github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= github.com/spf13/cobra v0.0.6/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= -github.com/spf13/cobra v1.6.1 h1:o94oiPyS4KD1mPy2fmcYYHHfCxLqYjJOhGsCHFZtEzA= -github.com/spf13/cobra v1.6.1/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= +github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= +github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= From 957f70f77511e2904b0db5d7bd2e2837927bad6c Mon Sep 17 00:00:00 2001 From: Jayson Wang Date: Sun, 18 Jun 2023 21:48:33 +0800 Subject: [PATCH 059/130] Correctly display the numbers in the Ready column of the pods view (#2137) --- internal/render/pod.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/render/pod.go b/internal/render/pod.go index bfbb8c1759..984a9da92c 100644 --- a/internal/render/pod.go +++ b/internal/render/pod.go @@ -5,7 +5,6 @@ import ( "strconv" "strings" - "github.com/derailed/k9s/internal/client" "github.com/derailed/tcell/v2" "github.com/derailed/tview" v1 "k8s.io/api/core/v1" @@ -14,6 +13,8 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" mv1beta1 "k8s.io/metrics/pkg/apis/metrics/v1beta1" + + "github.com/derailed/k9s/internal/client" ) // Pod renders a K8s Pod to screen. @@ -106,7 +107,7 @@ func (p Pod) Render(o interface{}, ns string, row *Row) error { po.Namespace, po.ObjectMeta.Name, "●", - strconv.Itoa(cr) + "/" + strconv.Itoa(len(ss)), + strconv.Itoa(cr) + "/" + strconv.Itoa(len(po.Spec.Containers)), strconv.Itoa(rc), phase, toMc(c.cpu), From dc06addd27ac8be25fce19875d6f6b2d53d627dd Mon Sep 17 00:00:00 2001 From: Jayson Wang Date: Sun, 18 Jun 2023 22:02:52 +0800 Subject: [PATCH 060/130] Remove unsupported key binding on users view (#2134) --- internal/view/user.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/view/user.go b/internal/view/user.go index aaa06a32ee..ab7d9bea50 100644 --- a/internal/view/user.go +++ b/internal/view/user.go @@ -3,10 +3,11 @@ package view import ( "context" + "github.com/derailed/tcell/v2" + "github.com/derailed/k9s/internal" "github.com/derailed/k9s/internal/client" "github.com/derailed/k9s/internal/ui" - "github.com/derailed/tcell/v2" ) // User presents a user viewer. @@ -24,7 +25,7 @@ func NewUser(gvr client.GVR) ResourceViewer { } func (u *User) bindKeys(aa ui.KeyActions) { - aa.Delete(ui.KeyShiftA, ui.KeyShiftP, tcell.KeyCtrlSpace, ui.KeySpace) + aa.Delete(ui.KeyShiftA, ui.KeyShiftP, tcell.KeyCtrlSpace, ui.KeySpace, tcell.KeyCtrlD, ui.KeyE) aa.Add(ui.KeyActions{ tcell.KeyEnter: ui.NewKeyAction("Rules", u.policyCmd, true), ui.KeyShiftK: ui.NewKeyAction("Sort Kind", u.GetTable().SortColCmd("KIND", true), false), From 2d2746af3c65d62dbc97523a8d5bd85e893549c5 Mon Sep 17 00:00:00 2001 From: guangwu Date: Wed, 12 Jul 2023 22:04:12 +0800 Subject: [PATCH 061/130] chore: pkg imported more than once (#2151) --- internal/dao/registry.go | 3 +-- internal/dao/rs.go | 7 +++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/internal/dao/registry.go b/internal/dao/registry.go index f8bfc7c262..64638842c2 100644 --- a/internal/dao/registry.go +++ b/internal/dao/registry.go @@ -9,7 +9,6 @@ import ( "github.com/derailed/k9s/internal/client" "github.com/rs/zerolog/log" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" @@ -134,7 +133,7 @@ func (m *Meta) AllGVRs() client.GVRs { } // IsCRD checks if resource represents a CRD -func IsCRD(r v1.APIResource) bool { +func IsCRD(r metav1.APIResource) bool { for _, c := range r.Categories { if c == CRD { return true diff --git a/internal/dao/rs.go b/internal/dao/rs.go index 9da0a84fe0..6e1ddca3ee 100644 --- a/internal/dao/rs.go +++ b/internal/dao/rs.go @@ -8,7 +8,6 @@ import ( "github.com/derailed/k9s/internal/client" appsv1 "k8s.io/api/apps/v1" - v1 "k8s.io/api/apps/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" @@ -23,7 +22,7 @@ type ReplicaSet struct { } // Load returns a given instance. -func (r *ReplicaSet) Load(f Factory, path string) (*v1.ReplicaSet, error) { +func (r *ReplicaSet) Load(f Factory, path string) (*appsv1.ReplicaSet, error) { o, err := f.Get("apps/v1/replicasets", path, true, labels.Everything()) if err != nil { return nil, err @@ -38,7 +37,7 @@ func (r *ReplicaSet) Load(f Factory, path string) (*v1.ReplicaSet, error) { return &rs, nil } -func getRSRevision(rs *v1.ReplicaSet) (int64, error) { +func getRSRevision(rs *appsv1.ReplicaSet) (int64, error) { revision := rs.ObjectMeta.Annotations["deployment.kubernetes.io/revision"] if rs.Status.Replicas != 0 { return 0, errors.New("can not rollback current replica") @@ -51,7 +50,7 @@ func getRSRevision(rs *v1.ReplicaSet) (int64, error) { return int64(vers), nil } -func controllerInfo(rs *v1.ReplicaSet) (string, string, string, error) { +func controllerInfo(rs *appsv1.ReplicaSet) (string, string, string, error) { for _, ref := range rs.ObjectMeta.OwnerReferences { if ref.Controller == nil { continue From c1e16e338ab652d9d17d5e9580c31df7f538a793 Mon Sep 17 00:00:00 2001 From: Guillaume Berche Date: Wed, 12 Jul 2023 16:14:05 +0200 Subject: [PATCH 062/130] feat: plugin for adding an ephemeral debug container (#2147) * docs: refactor plugins table * feat: plugin for adding an ephemeral debug container Uses https://github.com/nicolaka/netshoot container --- plugins/README.md | 24 +++++++++++++++--------- plugins/debug-container.yml | 14 ++++++++++++++ 2 files changed, 29 insertions(+), 9 deletions(-) create mode 100644 plugins/debug-container.yml diff --git a/plugins/README.md b/plugins/README.md index c247da9994..88b5e3ea22 100644 --- a/plugins/README.md +++ b/plugins/README.md @@ -2,12 +2,18 @@ K9s plugins extend the tool to provide additional functionality via actions to further help you observe or administer your Kubernetes clusters. -| Plugin-Name | Description | Available on Views | Shortcut | Kubectl plugin, external dependencies | -|--------------------|----------------------------------|--------------------|----------|---------------------------------------------------------------------------------------| -| log_stern.yml | View resource logs using stern | pods | Ctrl-l | | -| log_jq.yml | View resource logs using jq | pods | Ctrl-j | kubectl-plugins/kubectl-jq | -| job_suspend.yml | Suspends a running cronjob | cronjobs | Ctrl-s | | -| dive.yml | Dive image layers | containers | d | [Dive](https://github.com/wagoodman/dive) | -| k3d_root_shell.yml | Root shell to k3d container | containers | Shift-s | [jq](https://stedolan.github.io/jq/) | -| get-all.yml | get all resources in a namespace | all | g | [Krew](https://krew.sigs.k8s.io/), [ketall](https://github.com/corneliusweig/ketall/) | -| log_full.yml | get full logs from pod/container | pods/containers | Ctrl-l | | +Following is an example of some of plugin files in this directory. Other files are not listed in this table. + +| Plugin-Name | Description | Available on Views | Shortcut | Kubectl plugin, external dependencies | +|--------------------|------------------------------------------------------------------|--------------------|----------|---------------------------------------------------------------------------------------| +| debug-container.yml| Add [ephemeral debug container][1]
([nicolaka/netshoot][2]) | containers | Shift-d | | +| dive.yml | Dive image layers | containers | d | [Dive](https://github.com/wagoodman/dive) | +| get-all.yml | get all resources in a namespace | all | g | [Krew](https://krew.sigs.k8s.io/), [ketall](https://github.com/corneliusweig/ketall/) | +| job_suspend.yml | Suspends a running cronjob | cronjobs | Ctrl-s | | +| k3d_root_shell.yml | Root shell to k3d container | containers | Shift-s | [jq](https://stedolan.github.io/jq/) | +| log_stern.yml | View resource logs using stern | pods | Ctrl-l | | +| log_jq.yml | View resource logs using jq | pods | Ctrl-j | kubectl-plugins/kubectl-jq | +| log_full.yml | get full logs from pod/container | pods/containers | Ctrl-l | | + +[1]: https://kubernetes.io/docs/tasks/debug/debug-application/debug-running-pod/#ephemeral-container +[2]: https://github.dcom/nicolaka/netshoot \ No newline at end of file diff --git a/plugins/debug-container.yml b/plugins/debug-container.yml new file mode 100644 index 0000000000..2040cefcf3 --- /dev/null +++ b/plugins/debug-container.yml @@ -0,0 +1,14 @@ +plugin: + #--- Create debug container for selected pod in current namespace + # See https://kubernetes.io/docs/tasks/debug/debug-application/debug-running-pod/#ephemeral-container + debug: + shortCut: Shift-D + description: Add debug container + scopes: + - containers + command: bash + background: false + confirm: true + args: + - -c + - "kubectl debug -it -n=$NAMESPACE $POD --target=$NAME --image=nicolaka/netshoot:v0.11 --share-processes -- bash" \ No newline at end of file From f42f19bbceb4714983c1acfb699557a479d2946b Mon Sep 17 00:00:00 2001 From: Vlad Fratila Date: Wed, 26 Jul 2023 21:39:37 +0300 Subject: [PATCH 063/130] Add namespace for rolebinding on a clusterrole (#2170) * add namespace for rolebinding on a clusterrole Signed-off-by: Vlad Fratila * remove unused function Signed-off-by: Vlad Fratila --------- Signed-off-by: Vlad Fratila --- internal/dao/rbac_policy.go | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/internal/dao/rbac_policy.go b/internal/dao/rbac_policy.go index c88da803cb..a7f86543e2 100644 --- a/internal/dao/rbac_policy.go +++ b/internal/dao/rbac_policy.go @@ -88,21 +88,20 @@ func (p *Policy) loadClusterRoleBinding(kind, name string) (render.Policies, err } func (p *Policy) loadRoleBinding(kind, name string) (render.Policies, error) { - ss, err := p.fetchRoleBindingSubjects(kind, name) + rbsMap, err := p.fetchRoleBindingNamespaces(kind, name) if err != nil { return nil, err } - crs, err := p.fetchClusterRoles() if err != nil { return nil, err } rows := make(render.Policies, 0, len(crs)) for _, cr := range crs { - if !inList(ss, "ClusterRole:"+cr.Name) { - continue + if rbNs, ok := rbsMap["ClusterRole:"+cr.Name]; ok { + log.Debug().Msgf("Loading rules for clusterrole %q:%q", rbNs, cr.Name) + rows = append(rows, parseRules(rbNs, "CR:"+cr.Name, cr.Rules)...) } - rows = append(rows, parseRules("*", "CR:"+cr.Name, cr.Rules)...) } ros, err := p.fetchRoles() @@ -110,7 +109,7 @@ func (p *Policy) loadRoleBinding(kind, name string) (render.Policies, error) { return nil, err } for _, ro := range ros { - if !inList(ss, "Role:"+ro.Name) { + if _, ok := rbsMap["Role:"+ro.Name]; !ok { continue } log.Debug().Msgf("Loading rules for role %q:%q", ro.Namespace, ro.Name) @@ -156,19 +155,19 @@ func fetchRoleBindings(f Factory) ([]rbacv1.RoleBinding, error) { return rbs, nil } -func (p *Policy) fetchRoleBindingSubjects(kind, name string) ([]string, error) { +func (p *Policy) fetchRoleBindingNamespaces(kind, name string) (map[string]string, error) { rbs, err := fetchRoleBindings(p.Factory) if err != nil { return nil, err } ns, n := client.Namespaced(name) - ss := make([]string, 0, len(rbs)) + ss := make(map[string]string, len(rbs)) for _, rb := range rbs { for _, s := range rb.Subjects { s := s if isSameSubject(kind, ns, n, &s) { - ss = append(ss, rb.RoleRef.Kind+":"+rb.RoleRef.Name) + ss[rb.RoleRef.Kind+":"+rb.RoleRef.Name] = rb.Namespace } } } From 55c1905eb167f0bab4a48b48572579e128d3dad5 Mon Sep 17 00:00:00 2001 From: Thomas Dy Date: Thu, 27 Jul 2023 03:40:03 +0900 Subject: [PATCH 064/130] Only apply keyConv to mnemonic in menus (#2161) This fixes an issue where namespaces with "alt" in the name get replaced by "opt" when running on macOS. --- internal/ui/menu.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/ui/menu.go b/internal/ui/menu.go index 4e2082f097..41c02b8400 100644 --- a/internal/ui/menu.go +++ b/internal/ui/menu.go @@ -148,7 +148,7 @@ func (m *Menu) buildMenuTable(hh model.MenuHints, table []model.MenuHints, colCo func (m *Menu) layout(table []model.MenuHints, mm []int, out [][]string) { for r := range table { for c := range table[r] { - out[r][c] = keyConv(m.formatMenu(table[r][c], mm[c])) + out[r][c] = m.formatMenu(table[r][c], mm[c]) } } } From 8af2956d61b59bb96e08b0997465cc25b8520282 Mon Sep 17 00:00:00 2001 From: Adam Sranko <43452028+eiachh@users.noreply.github.com> Date: Wed, 26 Jul 2023 20:46:19 +0200 Subject: [PATCH 065/130] Changed checksums extension to checksums.sha256 (#2153) --- .goreleaser.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.goreleaser.yml b/.goreleaser.yml index 735d2d2768..e19e0d4d67 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -37,7 +37,7 @@ archives: - goos: windows format: zip checksum: - name_template: "checksums.txt" + name_template: "checksums.sha256" snapshot: name_template: "{{ .Tag }}-next" changelog: From 062e7ef4396dc9eeb60e6e98a244df5e20270396 Mon Sep 17 00:00:00 2001 From: Felix Geyer Date: Wed, 26 Jul 2023 20:46:35 +0200 Subject: [PATCH 066/130] Show the default container as the first entry (#2158) * Switch to new default-container pod annotation kubectl.kubernetes.io/default-logs-container has been deprecated and removed in kubectl, see https://github.com/kubernetes/kubernetes/commit/3a9c6f2a2f59cb05fc505f66afe2bd923a0d9f58 * Show the default container as the first entry In container selections show the default container as the first entry of the list. --- internal/dao/pod.go | 16 ++++++++-------- internal/dao/pod_test.go | 8 ++++---- internal/view/dp.go | 2 +- internal/view/pod.go | 22 ++++++++++++++++------ internal/view/sts.go | 2 +- 5 files changed, 30 insertions(+), 20 deletions(-) diff --git a/internal/dao/pod.go b/internal/dao/pod.go index 6b616347a0..dfa111f9bf 100644 --- a/internal/dao/pod.go +++ b/internal/dao/pod.go @@ -33,9 +33,9 @@ var ( ) const ( - logRetryCount = 20 - logRetryWait = 1 * time.Second - defaultLogContainerAnnotation = "kubectl.kubernetes.io/default-logs-container" + logRetryCount = 20 + logRetryWait = 1 * time.Second + defaultContainerAnnotation = "kubectl.kubernetes.io/default-container" ) // Pod represents a pod resource. @@ -197,7 +197,7 @@ func (p *Pod) TailLogs(ctx context.Context, opts *LogOptions) ([]LogChan, error) } outs := make([]LogChan, 0, coCounts) - if co, ok := GetDefaultLogContainer(po.ObjectMeta, po.Spec); ok && !opts.AllContainers { + if co, ok := GetDefaultContainer(po.ObjectMeta, po.Spec); ok && !opts.AllContainers { opts.DefaultContainer = co return append(outs, tailLogs(ctx, p, opts)), nil } @@ -486,16 +486,16 @@ func (p *Pod) isControlled(path string) (string, bool, error) { return "", false, nil } -// GetDefaultLogContainer returns a container name if specified in an annotation. -func GetDefaultLogContainer(m metav1.ObjectMeta, spec v1.PodSpec) (string, bool) { - defaultContainer, ok := m.Annotations[defaultLogContainerAnnotation] +// GetDefaultContainer returns a container name if specified in an annotation. +func GetDefaultContainer(m metav1.ObjectMeta, spec v1.PodSpec) (string, bool) { + defaultContainer, ok := m.Annotations[defaultContainerAnnotation] if ok { for _, container := range spec.Containers { if container.Name == defaultContainer { return defaultContainer, true } } - log.Warn().Msg(defaultContainer + " container not found. " + defaultLogContainerAnnotation + " annotation will be ignored") + log.Warn().Msg(defaultContainer + " container not found. " + defaultContainerAnnotation + " annotation will be ignored") } return "", false diff --git a/internal/dao/pod_test.go b/internal/dao/pod_test.go index 9bb0d76edf..cec9b794b9 100644 --- a/internal/dao/pod_test.go +++ b/internal/dao/pod_test.go @@ -8,7 +8,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) -func TestGetDefaultLogContainer(t *testing.T) { +func TestGetDefaultContainer(t *testing.T) { uu := map[string]struct { po *v1.Pod wantContainer string @@ -26,7 +26,7 @@ func TestGetDefaultLogContainer(t *testing.T) { "container_not_present": { po: &v1.Pod{ ObjectMeta: metav1.ObjectMeta{ - Annotations: map[string]string{"kubectl.kubernetes.io/default-logs-container": "container1"}, + Annotations: map[string]string{"kubectl.kubernetes.io/default-container": "container1"}, }, }, wantContainer: "", @@ -35,7 +35,7 @@ func TestGetDefaultLogContainer(t *testing.T) { "container_found": { po: &v1.Pod{ ObjectMeta: metav1.ObjectMeta{ - Annotations: map[string]string{"kubectl.kubernetes.io/default-logs-container": "container1"}, + Annotations: map[string]string{"kubectl.kubernetes.io/default-container": "container1"}, }, Spec: v1.PodSpec{ Containers: []v1.Container{{Name: "container1"}}, @@ -48,7 +48,7 @@ func TestGetDefaultLogContainer(t *testing.T) { for k := range uu { u := uu[k] t.Run(k, func(t *testing.T) { - container, ok := GetDefaultLogContainer(u.po.ObjectMeta, u.po.Spec) + container, ok := GetDefaultContainer(u.po.ObjectMeta, u.po.Spec) assert.Equal(t, u.wantContainer, container) assert.Equal(t, u.wantOk, ok) }) diff --git a/internal/view/dp.go b/internal/view/dp.go index 8bbfcfde46..6ea1fb2648 100644 --- a/internal/view/dp.go +++ b/internal/view/dp.go @@ -59,7 +59,7 @@ func (d *Deploy) logOptions(prev bool) (*dao.LogOptions, error) { co, dco string allCos bool ) - if c, ok := dao.GetDefaultLogContainer(sts.Spec.Template.ObjectMeta, sts.Spec.Template.Spec); ok { + if c, ok := dao.GetDefaultContainer(sts.Spec.Template.ObjectMeta, sts.Spec.Template.Spec); ok { co, dco = c, c } else if len(cc) == 1 { co = cc[0].Name diff --git a/internal/view/pod.go b/internal/view/pod.go index 531f16d83e..38fb80bec8 100644 --- a/internal/view/pod.go +++ b/internal/view/pod.go @@ -15,6 +15,7 @@ import ( "github.com/fatih/color" "github.com/rs/zerolog/log" v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" @@ -95,7 +96,7 @@ func (p *Pod) logOptions(prev bool) (*dao.LogOptions, error) { return nil, err } - cc, cfg := fetchContainers(pod.Spec, true), p.App().Config.K9s.Logger + cc, cfg := fetchContainers(pod.ObjectMeta, pod.Spec, true), p.App().Config.K9s.Logger opts := dao.LogOptions{ Path: path, Lines: int64(cfg.TailCount), @@ -104,7 +105,7 @@ func (p *Pod) logOptions(prev bool) (*dao.LogOptions, error) { ShowTimestamp: cfg.ShowTime, Previous: prev, } - if c, ok := dao.GetDefaultLogContainer(pod.ObjectMeta, pod.Spec); ok { + if c, ok := dao.GetDefaultContainer(pod.ObjectMeta, pod.Spec); ok { opts.Container, opts.DefaultContainer = c, c } else if len(cc) == 1 { opts.Container = cc[0] @@ -261,7 +262,7 @@ func containerShellin(a *App, comp model.Component, path, co string) error { if err != nil { return err } - cc := fetchContainers(pod.Spec, false) + cc := fetchContainers(pod.ObjectMeta, pod.Spec, false) if len(cc) == 1 { resumeShellIn(a, comp, path, cc[0]) return nil @@ -305,7 +306,7 @@ func containerAttachIn(a *App, comp model.Component, path, co string) error { if err != nil { return err } - cc := fetchContainers(pod.Spec, false) + cc := fetchContainers(pod.ObjectMeta, pod.Spec, false) if len(cc) == 1 { resumeAttachIn(a, comp, path, cc[0]) return nil @@ -363,10 +364,19 @@ func buildShellArgs(cmd, path, co string, kcfg *string) []string { return args } -func fetchContainers(spec v1.PodSpec, allContainers bool) []string { +func fetchContainers(meta metav1.ObjectMeta, spec v1.PodSpec, allContainers bool) []string { nn := make([]string, 0, len(spec.Containers)+len(spec.InitContainers)) + + // put the default container as the first entry + defaultContainer, hasDefaultContainer := dao.GetDefaultContainer(meta, spec) + if hasDefaultContainer { + nn = append(nn, defaultContainer) + } + for _, c := range spec.Containers { - nn = append(nn, c.Name) + if !hasDefaultContainer || c.Name != defaultContainer { + nn = append(nn, c.Name) + } } if !allContainers { return nn diff --git a/internal/view/sts.go b/internal/view/sts.go index 5ddc4ef3e6..e1feffab26 100644 --- a/internal/view/sts.go +++ b/internal/view/sts.go @@ -48,7 +48,7 @@ func (s *StatefulSet) logOptions(prev bool) (*dao.LogOptions, error) { co, dco string allCos bool ) - if c, ok := dao.GetDefaultLogContainer(sts.Spec.Template.ObjectMeta, sts.Spec.Template.Spec); ok { + if c, ok := dao.GetDefaultContainer(sts.Spec.Template.ObjectMeta, sts.Spec.Template.Spec); ok { co, dco = c, c } else if len(cc) == 1 { co = cc[0].Name From 310da3363618f982eaf6f3f9d777a8f1faadb739 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Jul 2023 12:46:54 -0600 Subject: [PATCH 067/130] Bump k8s.io/cli-runtime from 0.27.2 to 0.27.4 (#2174) Bumps [k8s.io/cli-runtime](https://github.com/kubernetes/cli-runtime) from 0.27.2 to 0.27.4. - [Commits](https://github.com/kubernetes/cli-runtime/compare/v0.27.2...v0.27.4) --- updated-dependencies: - dependency-name: k8s.io/cli-runtime dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 8 ++++---- go.sum | 18 +++++++++--------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/go.mod b/go.mod index 2fb7f9705e..5bffae5c28 100644 --- a/go.mod +++ b/go.mod @@ -24,11 +24,11 @@ require ( golang.org/x/text v0.9.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.12.0 - k8s.io/api v0.27.2 + k8s.io/api v0.27.4 k8s.io/apiextensions-apiserver v0.27.1 - k8s.io/apimachinery v0.27.2 - k8s.io/cli-runtime v0.27.2 - k8s.io/client-go v0.27.2 + k8s.io/apimachinery v0.27.4 + k8s.io/cli-runtime v0.27.4 + k8s.io/client-go v0.27.4 k8s.io/klog/v2 v2.90.1 k8s.io/kubectl v0.27.1 k8s.io/metrics v0.27.1 diff --git a/go.sum b/go.sum index d8fac28044..6d3a4ec284 100644 --- a/go.sum +++ b/go.sum @@ -592,7 +592,7 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= +github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.29.1 h1:cO+d60CHkknCbvzEWxP0S9K6KqyTjrCNUy1LdQLCGPc= github.com/rs/zerolog v1.29.1/go.mod h1:Le6ESbR7hc+DP6Lt1THiV8CQSdkkNrd3R0XbEgp3ZBU= @@ -1150,18 +1150,18 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -k8s.io/api v0.27.2 h1:+H17AJpUMvl+clT+BPnKf0E3ksMAzoBBg7CntpSuADo= -k8s.io/api v0.27.2/go.mod h1:ENmbocXfBT2ADujUXcBhHV55RIT31IIEvkntP6vZKS4= +k8s.io/api v0.27.4 h1:0pCo/AN9hONazBKlNUdhQymmnfLRbSZjd5H5H3f0bSs= +k8s.io/api v0.27.4/go.mod h1:O3smaaX15NfxjzILfiln1D8Z3+gEYpjEpiNA/1EVK1Y= k8s.io/apiextensions-apiserver v0.27.1 h1:Hp7B3KxKHBZ/FxmVFVpaDiXI6CCSr49P1OJjxKO6o4g= k8s.io/apiextensions-apiserver v0.27.1/go.mod h1:8jEvRDtKjVtWmdkhOqE84EcNWJt/uwF8PC4627UZghY= -k8s.io/apimachinery v0.27.2 h1:vBjGaKKieaIreI+oQwELalVG4d8f3YAMNpWLzDXkxeg= -k8s.io/apimachinery v0.27.2/go.mod h1:XNfZ6xklnMCOGGFNqXG7bUrQCoR04dh/E7FprV6pb+E= +k8s.io/apimachinery v0.27.4 h1:CdxflD4AF61yewuid0fLl6bM4a3q04jWel0IlP+aYjs= +k8s.io/apimachinery v0.27.4/go.mod h1:XNfZ6xklnMCOGGFNqXG7bUrQCoR04dh/E7FprV6pb+E= k8s.io/apiserver v0.27.1 h1:phY+BtXjjzd+ta3a4kYbomC81azQSLa1K8jo9RBw7Lg= k8s.io/apiserver v0.27.1/go.mod h1:UGrOjLY2KsieA9Fw6lLiTObxTb8Z1xEba4uqSuMY0WU= -k8s.io/cli-runtime v0.27.2 h1:9HI8gfReNujKXt16tGOAnb8b4NZ5E+e0mQQHKhFGwYw= -k8s.io/cli-runtime v0.27.2/go.mod h1:9UecpyPDTkhiYY4d9htzRqN+rKomJgyb4wi0OfrmCjw= -k8s.io/client-go v0.27.2 h1:vDLSeuYvCHKeoQRhCXjxXO45nHVv2Ip4Fe0MfioMrhE= -k8s.io/client-go v0.27.2/go.mod h1:tY0gVmUsHrAmjzHX9zs7eCjxcBsf8IiNe7KQ52biTcQ= +k8s.io/cli-runtime v0.27.4 h1:Zb0eci+58eHZNnoHhjRFc7W88s8dlG12VtIl3Nv2Hto= +k8s.io/cli-runtime v0.27.4/go.mod h1:k9Z1xiZq2xNplQmehpDquLgc+rE+pubpO1cK4al4Mlw= +k8s.io/client-go v0.27.4 h1:vj2YTtSJ6J4KxaC88P4pMPEQECWMY8gqPqsTgUKzvjk= +k8s.io/client-go v0.27.4/go.mod h1:ragcly7lUlN0SRPk5/ZkGnDjPknzb37TICq07WhI6Xc= k8s.io/component-base v0.27.1 h1:kEB8p8lzi4gCs5f2SPU242vOumHJ6EOsOnDM3tTuDTM= k8s.io/component-base v0.27.1/go.mod h1:UGEd8+gxE4YWoigz5/lb3af3Q24w98pDseXcXZjw+E0= k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw= From e7dc4ae0e7aa633dd3871c766bd01acf9f157161 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Jul 2023 12:48:49 -0600 Subject: [PATCH 068/130] Bump alpine from 3.18.0 to 3.18.2 (#2142) Bumps alpine from 3.18.0 to 3.18.2. --- updated-dependencies: - dependency-name: alpine dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index c0af552229..6b66455257 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,7 +12,7 @@ RUN apk --no-cache add --update make libx11-dev git gcc libc-dev curl && make bu # ----------------------------------------------------------------------------- # Build the final Docker image -FROM alpine:3.18.0 +FROM alpine:3.18.2 ARG KUBECTL_VERSION="v1.25.2" COPY --from=build /k9s/execs/k9s /bin/k9s From 6f7437429194b1db905d57b0785dd1bb0f4eb23f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 5 Aug 2023 08:39:38 -0600 Subject: [PATCH 069/130] Bump golang.org/x/text from 0.9.0 to 0.11.0 (#2182) Bumps [golang.org/x/text](https://github.com/golang/text) from 0.9.0 to 0.11.0. - [Release notes](https://github.com/golang/text/releases) - [Commits](https://github.com/golang/text/compare/v0.9.0...v0.11.0) --- updated-dependencies: - dependency-name: golang.org/x/text dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 5bffae5c28..9f475c13de 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/sahilm/fuzzy v0.1.0 github.com/spf13/cobra v1.7.0 github.com/stretchr/testify v1.8.3 - golang.org/x/text v0.9.0 + golang.org/x/text v0.11.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.12.0 k8s.io/api v0.27.4 diff --git a/go.sum b/go.sum index 6d3a4ec284..a28d93609a 100644 --- a/go.sum +++ b/go.sum @@ -931,8 +931,8 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4= +golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= From c67093807b3c5fc7ce3f02640b16a2186f969b4f Mon Sep 17 00:00:00 2001 From: Yarek T Date: Sat, 5 Aug 2023 15:43:27 +0100 Subject: [PATCH 070/130] Focus command bar if active on startup (#2179) If the command bar was activated with `:` before or during the splash delay, the main page would steal focus from it, breaking the UI. This patch re-focuses the command bar if its active after switching focus to the main page. Fixes issue #2178 --- internal/view/app.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/internal/view/app.go b/internal/view/app.go index 9840f87c93..7c99521aa4 100644 --- a/internal/view/app.go +++ b/internal/view/app.go @@ -466,6 +466,10 @@ func (a *App) Run() error { <-time.After(splashDelay) a.QueueUpdateDraw(func() { a.Main.SwitchToPage("main") + // if command bar is already active, focus it + if a.CmdBuff().IsActive() { + a.SetFocus(a.Prompt()) + } }) }() From 12b1d28c9d3fea7f1143d4d6b96d4906c3feb2e9 Mon Sep 17 00:00:00 2001 From: Kyle Huggins Date: Sat, 5 Aug 2023 09:44:37 -0500 Subject: [PATCH 071/130] feat(alias): add `qa` for quit (#2188) This adds an additional alias for "quit". `qa` is muscle memory for vimmers, and fits in well alongside `q` and `q!`. Resolves #856 --- internal/config/alias.go | 2 +- internal/view/command.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/config/alias.go b/internal/config/alias.go index 626ee19172..8dddf782be 100644 --- a/internal/config/alias.go +++ b/internal/config/alias.go @@ -143,7 +143,7 @@ func (a *Aliases) loadDefaultAliases() { a.Alias["np"] = "networking.k8s.io/v1/networkpolicies" a.declare("help", "h", "?") - a.declare("quit", "q", "q!", "Q") + a.declare("quit", "q", "q!", "qa", "Q") a.declare("aliases", "alias", "a") a.declare("popeye", "pop") a.declare("helm", "charts", "chart", "hm") diff --git a/internal/view/command.go b/internal/view/command.go index ece4f10deb..55dae27be9 100644 --- a/internal/view/command.go +++ b/internal/view/command.go @@ -180,7 +180,7 @@ func (c *Command) specialCmd(cmd, path string) bool { case "cow": c.app.cowCmd(path) return true - case "q", "q!", "Q", "quit": + case "q", "q!", "qa", "Q", "quit": c.app.BailOut() return true case "?", "h", "help": From cd98cdc9b0c308a828cca8fee9b1ae4f465859c7 Mon Sep 17 00:00:00 2001 From: Pawan Kumar <39653409+dheeth@users.noreply.github.com> Date: Sat, 5 Aug 2023 20:14:53 +0530 Subject: [PATCH 072/130] feat: Added support for arm in dockerfile (#2180) * Added support for arm in dockerfile * Removed echo statement * Capitalised arch variable --- Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 6b66455257..4a964168c3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,7 +18,8 @@ ARG KUBECTL_VERSION="v1.25.2" COPY --from=build /k9s/execs/k9s /bin/k9s RUN apk add --update ca-certificates \ && apk add --update -t deps curl vim \ - && curl -L https://storage.googleapis.com/kubernetes-release/release/${KUBECTL_VERSION}/bin/linux/amd64/kubectl -o /usr/local/bin/kubectl \ + && TARGET_ARCH=$(arch | sed s/aarch64/arm64/ | sed s/x86_64/amd64/) \ + && curl -L https://storage.googleapis.com/kubernetes-release/release/${KUBECTL_VERSION}/bin/linux/${TARGET_ARCH}/kubectl -o /usr/local/bin/kubectl \ && chmod +x /usr/local/bin/kubectl \ && apk del --purge deps \ && rm /var/cache/apk/* From 0002fef5e33ec556d8c48659392ffa30bca8172b Mon Sep 17 00:00:00 2001 From: Guillaume Berche Date: Sat, 5 Aug 2023 16:55:15 +0200 Subject: [PATCH 073/130] Update flux.yml with shortcuts for helm repo and oci repos (#2141) --- plugins/flux.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/plugins/flux.yml b/plugins/flux.yml index 454069a613..d997e387f6 100644 --- a/plugins/flux.yml +++ b/plugins/flux.yml @@ -47,6 +47,28 @@ plugin: args: - -c - "flux --context $CONTEXT reconcile helmrelease -n $NAMESPACE $NAME |& less" + reconcile-helm-repo: + shortCut: Shift-Z + description: Flux reconcile + scopes: + - helmrepositories + command: bash + background: false + confirm: false + args: + - -c + - "flux reconcile source helm --context $CONTEXT -n $NAMESPACE $NAME |& less" + reconcile-oci-repo: + shortCut: Shift-Z + description: Flux reconcile + scopes: + - ocirepositories + command: bash + background: false + confirm: false + args: + - -c + - "flux reconcile source oci --context $CONTEXT -n $NAMESPACE $NAME |& less" reconcile-ks: shortCut: Shift-R confirm: false From 255589d7e4fb996869def0da9d90bfc19bd16de1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 12 Aug 2023 09:02:24 -0600 Subject: [PATCH 074/130] Bump alpine from 3.18.2 to 3.18.3 (#2192) Bumps alpine from 3.18.2 to 3.18.3. --- updated-dependencies: - dependency-name: alpine dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4a964168c3..0a445411dd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,7 +12,7 @@ RUN apk --no-cache add --update make libx11-dev git gcc libc-dev curl && make bu # ----------------------------------------------------------------------------- # Build the final Docker image -FROM alpine:3.18.2 +FROM alpine:3.18.3 ARG KUBECTL_VERSION="v1.25.2" COPY --from=build /k9s/execs/k9s /bin/k9s From 2729cb7b97c2aaba49fbd2897312b0286608d206 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 12 Aug 2023 09:04:13 -0600 Subject: [PATCH 075/130] Bump golang.org/x/text from 0.11.0 to 0.12.0 (#2191) Bumps [golang.org/x/text](https://github.com/golang/text) from 0.11.0 to 0.12.0. - [Release notes](https://github.com/golang/text/releases) - [Commits](https://github.com/golang/text/compare/v0.11.0...v0.12.0) --- updated-dependencies: - dependency-name: golang.org/x/text dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 9f475c13de..3258ed82b8 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/sahilm/fuzzy v0.1.0 github.com/spf13/cobra v1.7.0 github.com/stretchr/testify v1.8.3 - golang.org/x/text v0.11.0 + golang.org/x/text v0.12.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.12.0 k8s.io/api v0.27.4 diff --git a/go.sum b/go.sum index a28d93609a..46dc82146e 100644 --- a/go.sum +++ b/go.sum @@ -931,8 +931,8 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4= -golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc= +golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= From 44340618f5a6f348ceb20c284f70a6bf73fa7157 Mon Sep 17 00:00:00 2001 From: graelo <84066822+graelo@users.noreply.github.com> Date: Sat, 12 Aug 2023 17:08:07 +0200 Subject: [PATCH 076/130] chore(skins): add solarized-16 (dark/light) (#2176) --- skins/solarized-16.yml | 128 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 skins/solarized-16.yml diff --git a/skins/solarized-16.yml b/skins/solarized-16.yml new file mode 100644 index 0000000000..fa758dad37 --- /dev/null +++ b/skins/solarized-16.yml @@ -0,0 +1,128 @@ +# K9s Solarized Skin Contributed by [@graelo](graelo@grael.cc) +# +# The table below is extracted from +# and joined with both the ascii standard names from +# and the solarized color names from +# +# "black": ColorBlack, black base02 +# "maroon": ColorMaroon, red red +# "green": ColorGreen, green green +# "olive": ColorOlive, yellow yellow +# "navy": ColorNavy, blue blue +# "purple": ColorPurple, magenta magenta +# "teal": ColorTeal, cyan cyan +# "silver": ColorSilver, white base2 +# "gray": ColorGray, brightblack base03 +# "red": ColorRed, brightred orange +# "lime": ColorLime, brightgreen base01 +# "yellow": ColorYellow, brightyellow base00 +# "blue": ColorBlue, brightblue base0 +# "fuchsia": ColorFuchsia, brightmagenta violet +# "aqua": ColorAqua, brightcyan base1 +# "white": ColorWhite, brightwhite base3 + +base03: &base03 gray # base03 brightblack +base02: &base02 black # base02 black +base01: &base01 lime # base01 brightgreen +base00: &base00 yellow # base00 brightyellow +base0: &base0 blue # base0 brightblue +base1: &base1 aqua # base1 brightcyan +base2: &base2 silver # base2 white +base3: &base3 white # base3 brightwhite +yellow: &yellow olive # accent yellow #b58900 +orange: &orange red # accent orange #cb4b16 +red: &red maroon # accent red #dc322f +magenta: &magenta purple # accent magenta #d33682 +violet: &violet fuchsia # accent violet #6c71c4 +blue: &blue navy # accent blue #268bd2 +cyan: &cyan teal # accent cyan #2aa198 +green: &green green # accent green #859900 + +background: &background default # transparent +foreground: &foreground yellow # base00 +current_line: ¤t_line white # base2 +selection: &selection silver # base2 +comment: &comment aqua # base1 + +k9s: + body: + fgColor: *foreground + bgColor: *background + logoColor: *magenta + prompt: + fgColor: *foreground + bgColor: *background + suggestColor: *orange + info: + fgColor: *blue + sectionColor: *foreground + dialog: + fgColor: *foreground + bgColor: *background + buttonFgColor: *foreground + buttonBgColor: *magenta + buttonFocusFgColor: *base2 + buttonFocusBgColor: *cyan + labelFgColor: *orange + fieldFgColor: *foreground + frame: + border: + fgColor: *selection + focusColor: *foreground + menu: + fgColor: *foreground + keyColor: *blue + numKeyColor: *green + crumbs: + fgColor: *base2 + bgColor: *base0 + activeColor: *blue + status: + newColor: *base00 + modifyColor: *blue + addColor: *yellow + errorColor: *red + highlightColor: *orange + killColor: *violet + completedColor: *green + title: + fgColor: *foreground + bgColor: *background + highlightColor: *blue + counterColor: *magenta + filterColor: *magenta + views: + charts: + bgColor: default + defaultDialColors: + - *blue + - *red + defaultChartColors: + - *blue + - *red + table: + fgColor: *foreground + bgColor: *background + cursorFgColor: *base2 + cursorBgColor: *background + markColor: *magenta + header: + fgColor: *foreground + bgColor: *background + sorterColor: *magenta + xray: + fgColor: *foreground + bgColor: *background + cursorColor: *current_line + graphicColor: *blue + showIcons: false + yaml: + keyColor: *green + colonColor: *base02 + valueColor: *foreground + logs: + fgColor: *foreground + bgColor: *background + indicator: + fgColor: *foreground + bgColor: *selection From b5961a5febb6ec3d25936ab8cc50d6f37d8ac642 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 12 Aug 2023 09:08:39 -0600 Subject: [PATCH 077/130] Bump k8s.io/metrics from 0.27.1 to 0.27.4 (#2172) Bumps [k8s.io/metrics](https://github.com/kubernetes/metrics) from 0.27.1 to 0.27.4. - [Commits](https://github.com/kubernetes/metrics/compare/v0.27.1...v0.27.4) --- updated-dependencies: - dependency-name: k8s.io/metrics dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 3258ed82b8..78df2931b8 100644 --- a/go.mod +++ b/go.mod @@ -31,7 +31,7 @@ require ( k8s.io/client-go v0.27.4 k8s.io/klog/v2 v2.90.1 k8s.io/kubectl v0.27.1 - k8s.io/metrics v0.27.1 + k8s.io/metrics v0.27.4 sigs.k8s.io/yaml v1.3.0 ) diff --git a/go.sum b/go.sum index 46dc82146e..403b2e2e1e 100644 --- a/go.sum +++ b/go.sum @@ -1170,8 +1170,8 @@ k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f h1:2kWPakN3i/k81b0gvD5C5F k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f/go.mod h1:byini6yhqGC14c3ebc/QwanvYwhuMWF6yz2F8uwW8eg= k8s.io/kubectl v0.27.1 h1:9T5c5KdpburYiW8XKQSH0Uly1kMNE90aGSnbYUZNdcA= k8s.io/kubectl v0.27.1/go.mod h1:QsAkSmrRsKTPlAFzF8kODGDl4p35BIwQnc9XFhkcsy8= -k8s.io/metrics v0.27.1 h1:qIASSok+9dhKPrfAZmFreIdpgBgKTfXwkM9CQ+tNM90= -k8s.io/metrics v0.27.1/go.mod h1:5sYmQTC3aeL/24kkJ5fYECVuIz0xhO6oipfGJ81JC1Y= +k8s.io/metrics v0.27.4 h1:2s04bods7rA507iouGbxD55YrKNlFjLYzm30noOl9Sk= +k8s.io/metrics v0.27.4/go.mod h1:kRvfhFC7wCQEFvu6H92uiV7v05z3Ty/vtluYT5D2Xpk= k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 h1:kmDqav+P+/5e1i9tFfHq1qcF3sOrDp+YEkVDAHu7Jwk= k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= oras.land/oras-go v1.2.2 h1:0E9tOHUfrNH7TCDk5KU0jVBEzCqbfdyuVfGmJ7ZeRPE= From e8f2450edc9ab9f0bfa2dd3c361b935ed77fbc73 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Oct 2023 07:00:05 -0600 Subject: [PATCH 078/130] Bump alpine from 3.18.3 to 3.18.4 (#2237) Bumps alpine from 3.18.3 to 3.18.4. --- updated-dependencies: - dependency-name: alpine dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 0a445411dd..6018cbedde 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,7 +12,7 @@ RUN apk --no-cache add --update make libx11-dev git gcc libc-dev curl && make bu # ----------------------------------------------------------------------------- # Build the final Docker image -FROM alpine:3.18.3 +FROM alpine:3.18.4 ARG KUBECTL_VERSION="v1.25.2" COPY --from=build /k9s/execs/k9s /bin/k9s From fbad3e23a6ccb8553dbea0dfe61398c98724be1c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Oct 2023 07:00:25 -0600 Subject: [PATCH 079/130] Bump helm.sh/helm/v3 from 3.12.0 to 3.13.0 (#2236) Bumps [helm.sh/helm/v3](https://github.com/helm/helm) from 3.12.0 to 3.13.0. - [Release notes](https://github.com/helm/helm/releases) - [Commits](https://github.com/helm/helm/compare/v3.12.0...v3.13.0) --- updated-dependencies: - dependency-name: helm.sh/helm/v3 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 105 ++++---- go.sum | 816 ++++++++------------------------------------------------- 2 files changed, 167 insertions(+), 754 deletions(-) diff --git a/go.mod b/go.mod index 78df2931b8..2abac3910f 100644 --- a/go.mod +++ b/go.mod @@ -20,41 +20,42 @@ require ( github.com/rs/zerolog v1.29.1 github.com/sahilm/fuzzy v0.1.0 github.com/spf13/cobra v1.7.0 - github.com/stretchr/testify v1.8.3 + github.com/stretchr/testify v1.8.4 golang.org/x/text v0.12.0 gopkg.in/yaml.v2 v2.4.0 - helm.sh/helm/v3 v3.12.0 - k8s.io/api v0.27.4 - k8s.io/apiextensions-apiserver v0.27.1 - k8s.io/apimachinery v0.27.4 - k8s.io/cli-runtime v0.27.4 - k8s.io/client-go v0.27.4 - k8s.io/klog/v2 v2.90.1 - k8s.io/kubectl v0.27.1 - k8s.io/metrics v0.27.4 + helm.sh/helm/v3 v3.13.0 + k8s.io/api v0.28.2 + k8s.io/apiextensions-apiserver v0.28.2 + k8s.io/apimachinery v0.28.2 + k8s.io/cli-runtime v0.28.2 + k8s.io/client-go v0.28.2 + k8s.io/klog/v2 v2.100.1 + k8s.io/kubectl v0.28.2 + k8s.io/metrics v0.28.2 sigs.k8s.io/yaml v1.3.0 ) require ( - github.com/AdaLogics/go-fuzz-headers v0.0.0-20230106234847-43070de90fa1 // indirect + github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect - github.com/BurntSushi/toml v1.2.1 // indirect + github.com/BurntSushi/toml v1.3.2 // indirect github.com/MakeNowJust/heredoc v1.0.0 // indirect github.com/Masterminds/goutils v1.1.1 // indirect - github.com/Masterminds/semver/v3 v3.2.0 // indirect + github.com/Masterminds/semver/v3 v3.2.1 // indirect github.com/Masterminds/sprig/v3 v3.2.3 // indirect - github.com/Masterminds/squirrel v1.5.3 // indirect + github.com/Masterminds/squirrel v1.5.4 // indirect + github.com/Microsoft/hcsshim v0.11.0 // indirect github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535 // indirect github.com/aws/aws-sdk-go v1.38.49 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/chai2010/gettext-go v1.0.2 // indirect - github.com/containerd/containerd v1.7.0 // indirect - github.com/cyphar/filepath-securejoin v0.2.3 // indirect + github.com/containerd/containerd v1.7.6 // indirect + github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/docker/cli v20.10.21+incompatible // indirect + github.com/docker/cli v23.0.3+incompatible // indirect github.com/docker/distribution v2.8.2+incompatible // indirect - github.com/docker/docker v20.10.24+incompatible // indirect + github.com/docker/docker v23.0.3+incompatible // indirect github.com/docker/docker-credential-helpers v0.7.0 // indirect github.com/docker/go-connections v0.4.0 // indirect github.com/docker/go-metrics v0.0.1 // indirect @@ -65,17 +66,17 @@ require ( github.com/fatih/camelcase v1.0.0 // indirect github.com/gdamore/encoding v1.0.0 // indirect github.com/go-errors/errors v1.4.2 // indirect - github.com/go-gorp/gorp/v3 v3.0.5 // indirect - github.com/go-logr/logr v1.2.3 // indirect + github.com/go-gorp/gorp/v3 v3.1.0 // indirect + github.com/go-logr/logr v1.2.4 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/jsonpointer v0.19.6 // indirect - github.com/go-openapi/jsonreference v0.20.1 // indirect + github.com/go-openapi/jsonreference v0.20.2 // indirect github.com/go-openapi/swag v0.22.3 // indirect github.com/gobwas/glob v0.2.3 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/google/btree v1.0.1 // indirect - github.com/google/gnostic v0.5.7-v3refs // indirect + github.com/google/gnostic-models v0.6.8 // indirect github.com/google/go-cmp v0.5.9 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect @@ -96,68 +97,68 @@ require ( github.com/kylelemons/godebug v1.1.0 // indirect github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 // indirect github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 // indirect - github.com/lib/pq v1.10.7 // indirect + github.com/lib/pq v1.10.9 // indirect github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-isatty v0.0.17 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect - github.com/mitchellh/go-wordwrap v1.0.0 // indirect + github.com/mitchellh/go-wordwrap v1.0.1 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/moby/locker v1.0.1 // indirect github.com/moby/spdystream v0.2.0 // indirect - github.com/moby/term v0.0.0-20221205130635-1aeaba878587 // indirect + github.com/moby/term v0.5.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/onsi/ginkgo v1.16.5 // indirect - github.com/onsi/gomega v1.27.4 // indirect + github.com/onsi/gomega v1.27.6 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b // indirect + github.com/opencontainers/image-spec v1.1.0-rc4 // indirect github.com/peterbourgon/diskv v2.0.1+incompatible // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_golang v1.14.0 // indirect - github.com/prometheus/client_model v0.3.0 // indirect - github.com/prometheus/common v0.37.0 // indirect - github.com/prometheus/procfs v0.8.0 // indirect + github.com/prometheus/client_golang v1.16.0 // indirect + github.com/prometheus/client_model v0.4.0 // indirect + github.com/prometheus/common v0.44.0 // indirect + github.com/prometheus/procfs v0.10.1 // indirect github.com/rivo/uniseg v0.4.3 // indirect - github.com/rubenv/sql-migrate v1.3.1 // indirect + github.com/rubenv/sql-migrate v1.5.2 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/shopspring/decimal v1.3.1 // indirect - github.com/sirupsen/logrus v1.9.0 // indirect + github.com/sirupsen/logrus v1.9.3 // indirect github.com/spf13/cast v1.5.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect - github.com/xlab/treeprint v1.1.0 // indirect + github.com/xlab/treeprint v1.2.0 // indirect go.opentelemetry.io/otel v1.14.0 // indirect go.opentelemetry.io/otel/trace v1.14.0 // indirect - go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 // indirect - golang.org/x/crypto v0.5.0 // indirect - golang.org/x/net v0.8.0 // indirect - golang.org/x/oauth2 v0.4.0 // indirect - golang.org/x/sync v0.1.0 // indirect - golang.org/x/sys v0.6.0 // indirect - golang.org/x/term v0.6.0 // indirect - golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 // indirect + go.starlark.net v0.0.0-20230525235612-a134d8f9ddca // indirect + golang.org/x/crypto v0.11.0 // indirect + golang.org/x/net v0.13.0 // indirect + golang.org/x/oauth2 v0.8.0 // indirect + golang.org/x/sync v0.2.0 // indirect + golang.org/x/sys v0.11.0 // indirect + golang.org/x/term v0.11.0 // indirect + golang.org/x/time v0.3.0 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 // indirect - google.golang.org/grpc v1.53.0 // indirect - google.golang.org/protobuf v1.28.1 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 // indirect + google.golang.org/grpc v1.54.0 // indirect + google.golang.org/protobuf v1.30.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apiserver v0.27.1 // indirect - k8s.io/component-base v0.27.1 // indirect - k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f // indirect - k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 // indirect - oras.land/oras-go v1.2.2 // indirect + k8s.io/apiserver v0.28.2 // indirect + k8s.io/component-base v0.28.2 // indirect + k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 // indirect + k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 // indirect + oras.land/oras-go v1.2.3 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect - sigs.k8s.io/kustomize/api v0.13.2 // indirect - sigs.k8s.io/kustomize/kyaml v0.14.1 // indirect + sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3 // indirect + sigs.k8s.io/kustomize/kyaml v0.14.3-0.20230601165947-6ce0bf390ce3 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect ) diff --git a/go.sum b/go.sum index 403b2e2e1e..39b5e79e05 100644 --- a/go.sum +++ b/go.sum @@ -1,81 +1,31 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= -cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= -cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= -cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= -cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= -cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= -cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= -cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= -cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= -cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= -cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= -cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= -cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= -cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= -cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= -cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= -cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/AdaLogics/go-fuzz-headers v0.0.0-20230106234847-43070de90fa1 h1:EKPd1INOIyr5hWOWhvpmQpY6tKjeG0hT1s3AMC/9fic= -github.com/AdaLogics/go-fuzz-headers v0.0.0-20230106234847-43070de90fa1/go.mod h1:VzwV+t+dZ9j/H867F1M2ziD+yLHtB46oM35FxxMJ4d0= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak= -github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= +github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60= github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= -github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= -github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g= github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= -github.com/Masterminds/sprig/v3 v3.2.1/go.mod h1:UoaO7Yp8KlPnJIYWTFkMaqPUYKTfGFPhxNuwnnxkKlk= +github.com/Masterminds/semver/v3 v3.2.1 h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0rYXWg0= +github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/Masterminds/sprig/v3 v3.2.3 h1:eL2fZNezLomi0uOLqjQoN6BfsDD+fyLtgbJMAj9n6YA= github.com/Masterminds/sprig/v3 v3.2.3/go.mod h1:rXcFaZ2zZbLRJv/xSysmlgIM1u11eBaRMhvYXJNkGuM= -github.com/Masterminds/squirrel v1.5.3 h1:YPpoceAcxuzIljlr5iWpNKaql7hLeG1KLSrhvdHpkZc= -github.com/Masterminds/squirrel v1.5.3/go.mod h1:NNaOrjSoIDfDA40n7sr2tPNZRfjzjA400rg+riTZj10= -github.com/Microsoft/go-winio v0.6.0 h1:slsWYD/zyx7lCXoZVlvQrj0hPTM1HI4+v1sIda2yDvg= -github.com/Microsoft/hcsshim v0.10.0-rc.7 h1:HBytQPxcv8Oy4244zbQbe6hnOnx544eL5QPUqhJldz8= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/Masterminds/squirrel v1.5.4 h1:uUcX/aBc8O7Fg9kaISIUsHXdKuqehiXAMQTYX8afzqM= +github.com/Masterminds/squirrel v1.5.4/go.mod h1:NNaOrjSoIDfDA40n7sr2tPNZRfjzjA400rg+riTZj10= +github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= +github.com/Microsoft/hcsshim v0.11.0 h1:7EFNIY4igHEXUdj1zXgAyU3fLc7QfOKHbkldRVTBdiM= +github.com/Microsoft/hcsshim v0.11.0/go.mod h1:OEthFdQv/AD2RAdzR6Mm1N1KPCztGKDurW1Z8b8VGMM= github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d h1:UrqY+r/OJnIp5u0s1SbQ8dVfLCZJsnvazdBP5hS4iRs= -github.com/a8m/expect v1.0.0/go.mod h1:4IwSCMumY49ScypDnjNbYEjgVeqy1/U2cEs3Lat96eA= github.com/adrg/xdg v0.4.0 h1:RzRqFcjH4nE5C6oTAxhBtoE2IRyjBSa62SCbyPidvls= github.com/adrg/xdg v0.4.0/go.mod h1:N6ag73EX4wyxeaoeHctc1mas01KZgsj5tYiAIwqJE/E= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= -github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= -github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535 h1:4daAzAu0S6Vi7/lbWECcX0j45yZReDZ56BQsrVBOEEY= github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= @@ -87,8 +37,6 @@ github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24 github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= github.com/bshuster-repo/logrus-logstash-hook v1.0.0 h1:e+C0SB5R1pu//O4MQ3f9cFuPGoOVeF2fE4Og9otCc70= github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd h1:rFt+Y/IK1aEZkEHchZRSq9OQbsSzIT/OrI8YFFmRIng= github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b h1:otBG+dV+YK+Soembjv71DPz3uX/V/6MMlSyD9JBQ6kQ= @@ -96,9 +44,6 @@ github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0 h1:nvj0OLI3YqYXe github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chai2010/gettext-go v1.0.2 h1:1Lwwip6Q2QGsAdl/ZKPCwTe9fe0CjlUbqj5bFNSjIRk= @@ -107,46 +52,32 @@ github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWR github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= -github.com/containerd/containerd v1.7.0 h1:G/ZQr3gMZs6ZT0qPUZ15znx5QSdQdASW11nXTLTM2Pg= -github.com/containerd/containerd v1.7.0/go.mod h1:QfR7Efgb/6X2BDpTPJRvPTYDE9rsF0FsXX9J8sIs/sc= -github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/containerd/containerd v1.7.6 h1:oNAVsnhPoy4BTPQivLgTzI9Oleml9l/+eYIDYXRCYo8= +github.com/containerd/containerd v1.7.6/go.mod h1:SY6lrkkuJT40BVNO37tlYTSnKJnP5AXBc0fhx0q+TJ4= +github.com/containerd/continuity v0.4.2 h1:v3y/4Yz5jwnvqPKJJ+7Wf93fyWoCB3F5EclWG023MDM= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= -github.com/cyphar/filepath-securejoin v0.2.3 h1:YX6ebbZCZP7VkM3scTTokDgBL2TY741X51MTk3ycuNI= -github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= +github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= +github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/denisenkom/go-mssqldb v0.9.0/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= github.com/derailed/popeye v0.11.1 h1:bjt5mXkcXY696ipuJqwY1sa5s3i431L9BlkQc6EuaqE= github.com/derailed/popeye v0.11.1/go.mod h1:NkvjHH1F94tE7Ui17PlYiagQcFt7yXUV2hIhPzSK+0w= github.com/derailed/tcell/v2 v2.3.1-rc.3 h1:9s1fmyRcSPRlwr/C9tcpJKCujbrtmPpST6dcMUD2piY= github.com/derailed/tcell/v2 v2.3.1-rc.3/go.mod h1:nf68BEL8fjmXQHJT3xZjoZFs2uXOzyJcNAQqGUEMrFY= github.com/derailed/tview v0.8.1 h1:hvNR3LLrWEuaQbPYfBnRn7bYkxCP26K6nX9J+MGlhyw= github.com/derailed/tview v0.8.1/go.mod h1:q+odnnhO6QDPpBT+0dqaWj+X+uoJ6MJehXj9shgP+Cw= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/distribution/distribution/v3 v3.0.0-20221208165359-362910506bc2 h1:aBfCb7iqHmDEIp6fBvC/hQUddQfg+3qdYjwzaiP9Hnc= -github.com/docker/cli v20.10.21+incompatible h1:qVkgyYUnOLQ98LtXBrwd/duVqPT2X4SHndOuGsfwyhU= -github.com/docker/cli v20.10.21+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/cli v23.0.3+incompatible h1:Zcse1DuDqBdgI7OQDV8Go7b83xLgfhW1eza4HfEdxpY= +github.com/docker/cli v23.0.3+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v20.10.24+incompatible h1:Ugvxm7a8+Gz6vqQYQQ2W7GYq5EUPaAiuPgIfVyI3dYE= -github.com/docker/docker v20.10.24+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v23.0.3+incompatible h1:9GhVsShNWz1hO//9BNg/dpMnZW25KydO4wtVxWAIbho= +github.com/docker/docker v23.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.7.0 h1:xtCHsjxogADNZcdv1pKUHXryefjlVRqWqIhk/uXJp0A= github.com/docker/docker-credential-helpers v0.7.0/go.mod h1:rETQfLdHNT3foU5kuNkFR1R1V12OJRRO5lzt2D1b5X0= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= @@ -157,15 +88,9 @@ github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHz github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1 h1:ZClxb8laGDf5arXfYcAtECDFgAgHklGI8CxgjHnXKJ4= -github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/emicklei/go-restful/v3 v3.10.1 h1:rc42Y5YTp7Am7CS630D7JmhRjq4UlEUuEKfrDac4bSQ= github.com/emicklei/go-restful/v3 v3.10.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= -github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= github.com/evanphx/json-patch v5.6.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= @@ -173,15 +98,11 @@ github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d h1:105gxyaGwC github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= github.com/fatih/camelcase v1.0.0 h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8= github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= -github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= github.com/foxcpp/go-mockdns v1.0.0 h1:7jBqxd3WDWwi/6WhDvacvH1XsN3rOLXyHM1uhvIx6FI= github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= -github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= @@ -194,71 +115,43 @@ github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gorp/gorp/v3 v3.0.5 h1:PUjzYdYu3HBOh8LE+UUmRG2P0IRDak9XMeGNvaeq4Ow= -github.com/go-gorp/gorp/v3 v3.0.5/go.mod h1:dLEjIyyRNiXvNZ8PSmzpt1GsWAUK8kjVhEpjH8TixEw= +github.com/go-gorp/gorp/v3 v3.1.0 h1:ItKF/Vbuj31dmV4jxA1qblpSwkl9g1typ24xoe70IGs= +github.com/go-gorp/gorp/v3 v3.1.0/go.mod h1:dLEjIyyRNiXvNZ8PSmzpt1GsWAUK8kjVhEpjH8TixEw= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= -github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= -github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= -github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= +github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE= github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= -github.com/go-openapi/jsonreference v0.20.1 h1:FBLnyygC4/IZZr893oiomc9XaghoveYTrLC1F86HID8= -github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= +github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= +github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= +github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= github.com/gobuffalo/logger v1.0.6 h1:nnZNpxYo0zx+Aj9RfMPBm+x9zAU2OayFh/xrAWi34HU= -github.com/gobuffalo/logger v1.0.6/go.mod h1:J31TBEHR1QLV2683OXTAItYIg8pv2JMHnF/quuAbMjs= github.com/gobuffalo/packd v1.0.1 h1:U2wXfRr4E9DH8IdsDLlRFwTZTK7hLfq9qT/QHXGVe/0= -github.com/gobuffalo/packd v1.0.1/go.mod h1:PP2POP3p3RXGz7Jh6eYEf93S7vA2za6xM7QT85L4+VY= github.com/gobuffalo/packr/v2 v2.8.3 h1:xE1yzvnO56cUC0sTpKR3DIbxZgB54AftTFMhB2XEWlY= -github.com/gobuffalo/packr/v2 v2.8.3/go.mod h1:0SahksCVcx4IMnigTjiFuyldmTrdTctXsOdiU5KwbKc= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/godror/godror v0.24.2/go.mod h1:wZv/9vPiUib6tkoDl+AZ/QLf5YZgMravZ7jxH2eQWAE= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -266,111 +159,53 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/gomodule/redigo v1.8.2 h1:H5XSIre1MB5NbPYFp+i1NBbb5qN1W8Y8YAQoAYbkm8k= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= -github.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54= -github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ= +github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= +github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gosuri/uitable v0.0.4 h1:IG2xLKRvErL3uhY6e1BylFzG+aJiwQviDDTfOKeKTpY= github.com/gosuri/uitable v0.0.4/go.mod h1:tKR86bXuXPZazfOTG1FIzvjIdXzd0mo4Vtn16vt0PJo= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 h1:pdN6V1QBWetyv/0+wjACpqVH+eVULgEjkurDLq3goeM= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= -github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= -github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= -github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= -github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= -github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= -github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= -github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= -github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/huandu/xstrings v1.3.3/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/huandu/xstrings v1.4.0 h1:D17IlohoQq4UcpqD7fDk80P7l+lwAmlFaBHgOipl2FU= github.com/huandu/xstrings v1.4.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= @@ -379,39 +214,22 @@ github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGw github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/jmoiron/sqlx v1.3.5 h1:vFFPA71p1o5gAeqtEAwLU4dnX2napprKtHr7PYIcN3g= github.com/jmoiron/sqlx v1.3.5/go.mod h1:nRVWtLre0KfCLJvgxzCsLVMogSvQ1zNJtpYr2Ccp0mQ= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= -github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/karrick/godirwalk v1.16.1 h1:DynhcF+bztK8gooS0+NDJFrdNZjJ3gzVzC545UNA9iw= -github.com/karrick/godirwalk v1.16.1/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kortschak/utter v1.0.1/go.mod h1:vSmSjbyrlKjjsL71193LmzBOKgwePk9DH6uFaWHIInc= -github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= -github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -423,64 +241,38 @@ github.com/lann/builder v0.0.0-20180802200727-47ae307949d0/go.mod h1:dXGbAdH5GtB github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 h1:P6pPBnrTSX3DEVR4fDembhRWSsG5rVo6hYhAB/ADZrk= github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0/go.mod h1:vmVJ0l/dxyfGW6FmdpVm2joNMFikkuWg0EoCKLGUMNw= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= -github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= +github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.5 h1:b6kJs+EmPFMYGkow9GiUyCyOvIwYetYJ3fSaWak/Gls= -github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/markbates/errx v1.1.0 h1:QDFeR+UP95dO12JgW+tgi2UVfo0V8YBHiUIOaeBPiEI= -github.com/markbates/errx v1.1.0/go.mod h1:PLa46Oex9KNbVDZhKel8v1OT7hD5JZ2eI7AHhA0wswc= github.com/markbates/oncer v1.0.0 h1:E83IaVAHygyndzPimgUYJjbshhDTALZyXxvk9FOlQRY= -github.com/markbates/oncer v1.0.0/go.mod h1:Z59JA581E9GP6w96jai+TGqafHPW+cPfRxz2aSZ0mcI= github.com/markbates/safe v1.0.1 h1:yjZkbvRM6IzKj9tlu/zMJLS0n/V351OZWRnF3QfaUxI= -github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= -github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= -github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-oci8 v0.1.1/go.mod h1:wjDx6Xm9q7dFtHJvIlrI99JytznLw5wQ4R+9mNXJwGI= -github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/mattn/go-sqlite3 v1.14.15 h1:vfoHhTN1af61xCRSWzFIWzx2YskyMTwHLrExkBOjvxI= -github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.25 h1:dFwPR6SfLtrSwgDcIq2bcU/gVutB4sNApq2HBdqcakg= -github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= -github.com/mitchellh/cli v1.1.5/go.mod h1:v8+iFts2sPIKUV1ltktPXMCC8fumSKFItNcD2cLtRR4= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= -github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -github.com/mitchellh/go-wordwrap v1.0.0 h1:6GlHJ/LTGMrIJbwgdqdl2eEH8o+Exx/0m8ir9Gns0u4= -github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= -github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= -github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= -github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= +github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= @@ -489,8 +281,8 @@ github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQ github.com/moby/spdystream v0.2.0 h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8= github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= github.com/moby/sys/mountinfo v0.6.2 h1:BzJjoreD5BMFNmD9Rus6gdd1pLuecOFPt8wC+Vygl78= -github.com/moby/term v0.0.0-20221205130635-1aeaba878587 h1:HfkjXDfhgVaN5rmueG8cL8KKeFNecRCXFhaJ2qZ5SKA= -github.com/moby/term v0.0.0-20221205130635-1aeaba878587/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= +github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= +github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -505,139 +297,81 @@ github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7P github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/nelsam/hel/v2 v2.3.2/go.mod h1:1ZTGfU2PFTOd5mx22i5O0Lc2GY933lQ2wb/ggy+rL3w= -github.com/nelsam/hel/v2 v2.3.3/go.mod h1:1ZTGfU2PFTOd5mx22i5O0Lc2GY933lQ2wb/ggy+rL3w= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= -github.com/onsi/ginkgo/v2 v2.9.1 h1:zie5Ly042PD3bsCvsSOPvRnFwyo3rKe64TJlD6nu0mk= +github.com/onsi/ginkgo/v2 v2.9.4 h1:xR7vG4IXt5RWx6FfIjyAtsoMAtnc3C/rFXBBd2AjZwE= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.27.4 h1:Z2AnStgsdSayCMDiCU42qIz+HLqEPcgiOCXjAU/w+8E= -github.com/onsi/gomega v1.27.4/go.mod h1:riYq/GJKh8hhoM01HN6Vmuy93AarCXCBGpvFDK3q3fQ= +github.com/onsi/gomega v1.27.6 h1:ENqfyGeS5AX/rlXDd/ETokDz93u0YufY1Pgxuy/PvWE= +github.com/onsi/gomega v1.27.6/go.mod h1:PIQNjfQwkP3aQAH7lf7j87O/5FiNr+ZR8+ipb+qQlhg= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b h1:YWuSjZCQAPM8UUBLkYUk1e+rZcvWHJmFb6i6rM44Xs8= -github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b/go.mod h1:3OVijpioIKYWTqjiG0zfF6wvoJ4fAXGbjdZuI2NgsRQ= -github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= +github.com/opencontainers/image-spec v1.1.0-rc4 h1:oOxKUJWnFC4YGHCCMNql1x4YaDfYBTS5Y4x/Cgeo1E0= +github.com/opencontainers/image-spec v1.1.0-rc4/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/petergtz/pegomock v2.9.0+incompatible h1:BKfb5XfkJfehe5T+O1xD4Zm26Sb9dnRj7tHxLYwUPiI= github.com/petergtz/pegomock v2.9.0+incompatible/go.mod h1:nuBLWZpVyv/fLo56qTwt/AUau7jgouO1h7bEvZCq82o= github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5 h1:Ii+DKncOVM8Cu1Hc+ETb5K+23HdAMvESYE3ZJ5b5cMI= -github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= -github.com/poy/onpar v0.0.0-20200406201722-06f95a1c68e8/go.mod h1:nSbFQvMj97ZyhFRSJYtut+msi4sOY6zJDGCdSc+/rZU= github.com/poy/onpar v1.1.2 h1:QaNrNiZx0+Nar5dLgTVp5mXkyoVFIbepjyEoGSnhbAY= -github.com/poy/onpar v1.1.2/go.mod h1:6X8FLNoxyr9kkmnlqpK6LSoiOtrO6MICtWwEuWkLjzg= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= -github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= -github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= -github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= +github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8= +github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= -github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY= +github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= -github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.37.0 h1:ccBbHCgIiT9uSoFY0vX8H3zsNR5eLt17/RQLUvn8pXE= -github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= +github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= +github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= -github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= -github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= +github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg= +github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM= github.com/rakyll/hey v0.1.4 h1:hhc8GIqHN4+rPFZvkM9lkCQGi7da0sINM83xxpFkbPA= github.com/rakyll/hey v0.1.4/go.mod h1:nAOTOo+L52KB9SZq/M6J18kxjto4yVtXQDjU2HgjUPI= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.3 h1:utMvzDsuh3suAEnhH0RdHmoPbU648o6CvXxTx4SBMOw= github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= -github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= +github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.29.1 h1:cO+d60CHkknCbvzEWxP0S9K6KqyTjrCNUy1LdQLCGPc= github.com/rs/zerolog v1.29.1/go.mod h1:Le6ESbR7hc+DP6Lt1THiV8CQSdkkNrd3R0XbEgp3ZBU= -github.com/rubenv/sql-migrate v1.3.1 h1:Vx+n4Du8X8VTYuXbhNxdEUoh6wiJERA0GlWocR5FrbA= -github.com/rubenv/sql-migrate v1.3.1/go.mod h1:YzG/Vh82CwyhTFXy+Mf5ahAiiEOpAlHurg+23VEzcsk= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/rubenv/sql-migrate v1.5.2 h1:bMDqOnrJVV/6JQgQ/MxOpU+AdO8uzYYA/TxFUBzFtS0= +github.com/rubenv/sql-migrate v1.5.2/go.mod h1:H38GW8Vqf8F0Su5XignRyaRcbXbJunSWxs+kmzlg0Is= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/sahilm/fuzzy v0.1.0 h1:FzWGaw2Opqyu+794ZQ9SYifWv2EIXpwP4q8dY1kDAwI= github.com/sahilm/fuzzy v0.1.0/go.mod h1:VFvziUEIMCrT6A6tw2RFIXPXXmzXbOsSHF0DOI8ZK9Y= -github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0= github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8= github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= -github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= -github.com/spf13/cobra v0.0.6/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= -github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= -github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= -github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= @@ -645,18 +379,13 @@ github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gtY= -github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= @@ -664,438 +393,140 @@ github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHo github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xlab/treeprint v1.1.0 h1:G/1DjNkPpfZCFt9CSh6b5/nY4VimlbHF3Rh4obvtzDk= -github.com/xlab/treeprint v1.1.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/xlab/treeprint v1.2.0 h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ= +github.com/xlab/treeprint v1.2.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43 h1:+lm10QQTNSBd8DVTNGHx7o/IKu9HYDvLMffDhbyLccI= github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50 h1:hlE8//ciYMztlGpl/VA+Zm1AcTPHYkHJPbHqE6WJUXE= github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f h1:ERexzlUfuTvpE74urLSbIQW0Z/6hF9t8U4NsJLaioAY= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= -go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= -go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opentelemetry.io/otel v1.14.0 h1:/79Huy8wbf5DnIPhemGB+zEPVwnN6fuQybr/SRXa6hM= go.opentelemetry.io/otel v1.14.0/go.mod h1:o4buv+dJzx8rohcUeRmWUZhqupFvzWis188WlggnNeU= go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyKcFq/M= go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8= -go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 h1:+FNtrFTmVw0YZGpBGX56XDee331t6JAXeK2bcyhLOOc= -go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o= -go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= +go.starlark.net v0.0.0-20230525235612-a134d8f9ddca h1:VdD38733bfYv5tUZwEIskMM93VanwNIi5bIKnDrJdEY= +go.starlark.net v0.0.0-20230525235612-a134d8f9ddca/go.mod h1:jxU+3+j+71eXOW14274+SmmuW82qJzl6iZSeqEtTGds= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200414173820-0848c9571904/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= -golang.org/x/crypto v0.5.0 h1:U/0M97KRkSFvyD/3FSmdP5W5swImpNgle/EHFhOsQPE= -golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= +golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA= +golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs= +golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181017193950-04a2e542c03f/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= -golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= -golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= -golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= +golang.org/x/net v0.13.0 h1:Nvo8UFsZ8X3BhAC9699Z1j7XQ3rsZnUUm7jfBEk1ueY= +golang.org/x/net v0.13.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/oauth2 v0.4.0 h1:NF0gk8LVPg1Ml7SSbGyySuoxdsXitj7TvgvuRxIMc/M= -golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec= +golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= +golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= +golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191002063906-3421d5a6bb1c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= -golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= -golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw= -golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/term v0.11.0 h1:F9tnn/DA/Im8nCwm+fX+1/eBwi4qFjRT++MhtVC4ZX0= +golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc= golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 h1:vVKdlvoWBphwdxWKrFZEuM0kGgGLxUOYcY4U/2Vjg44= -golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200313205530-4303120df7d8/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= -golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4= +golang.org/x/tools v0.8.0 h1:vSDcovVPld282ceKgDimkRSC8kpaH1dgyc9UMzlt84Y= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= -google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= -google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= -google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= -google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= -google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= -google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= -google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= -google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 h1:DdoeryqhaXp1LtT/emMP1BRJPHHKFi5akj/nbx/zNTA= -google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 h1:0nDDozoAU19Qb2HwhXadU8OcsiO/09cnTqhUtq2MEOM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= -google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= -google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.53.0 h1:LAv2ds7cmFV/XTS3XG1NneeENYrXGmorPxsBbptIjNc= -google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= +google.golang.org/grpc v1.54.0 h1:EhTqbhiYeixwWQtAEZAxmV9MGqcjEU2mFx52xCzNyag= +google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -1104,87 +535,68 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= -google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= +google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.4.0 h1:ZazjZUfuVeZGLAmlKKuyv3IKP5orXcwtOwDQH6YVr6o= -helm.sh/helm/v3 v3.12.0 h1:rOq2TPVzg5jt4q5ermAZGZFxNW2uQhKjRhBneAutMEM= -helm.sh/helm/v3 v3.12.0/go.mod h1:8K/469yxjUMu6BaD2EagCitkPjELUL/l2AgCO142G94= +helm.sh/helm/v3 v3.13.0 h1:XPJKIU30K4JTQ6VX/6e0hFAmEIonYa8E7wx5aqv4xOc= +helm.sh/helm/v3 v3.13.0/go.mod h1:2PBEKsMWKLVZTojUOqMS3Eadv5mP43FBWrRgLNkNm9Y= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -k8s.io/api v0.27.4 h1:0pCo/AN9hONazBKlNUdhQymmnfLRbSZjd5H5H3f0bSs= -k8s.io/api v0.27.4/go.mod h1:O3smaaX15NfxjzILfiln1D8Z3+gEYpjEpiNA/1EVK1Y= -k8s.io/apiextensions-apiserver v0.27.1 h1:Hp7B3KxKHBZ/FxmVFVpaDiXI6CCSr49P1OJjxKO6o4g= -k8s.io/apiextensions-apiserver v0.27.1/go.mod h1:8jEvRDtKjVtWmdkhOqE84EcNWJt/uwF8PC4627UZghY= -k8s.io/apimachinery v0.27.4 h1:CdxflD4AF61yewuid0fLl6bM4a3q04jWel0IlP+aYjs= -k8s.io/apimachinery v0.27.4/go.mod h1:XNfZ6xklnMCOGGFNqXG7bUrQCoR04dh/E7FprV6pb+E= -k8s.io/apiserver v0.27.1 h1:phY+BtXjjzd+ta3a4kYbomC81azQSLa1K8jo9RBw7Lg= -k8s.io/apiserver v0.27.1/go.mod h1:UGrOjLY2KsieA9Fw6lLiTObxTb8Z1xEba4uqSuMY0WU= -k8s.io/cli-runtime v0.27.4 h1:Zb0eci+58eHZNnoHhjRFc7W88s8dlG12VtIl3Nv2Hto= -k8s.io/cli-runtime v0.27.4/go.mod h1:k9Z1xiZq2xNplQmehpDquLgc+rE+pubpO1cK4al4Mlw= -k8s.io/client-go v0.27.4 h1:vj2YTtSJ6J4KxaC88P4pMPEQECWMY8gqPqsTgUKzvjk= -k8s.io/client-go v0.27.4/go.mod h1:ragcly7lUlN0SRPk5/ZkGnDjPknzb37TICq07WhI6Xc= -k8s.io/component-base v0.27.1 h1:kEB8p8lzi4gCs5f2SPU242vOumHJ6EOsOnDM3tTuDTM= -k8s.io/component-base v0.27.1/go.mod h1:UGEd8+gxE4YWoigz5/lb3af3Q24w98pDseXcXZjw+E0= -k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw= -k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f h1:2kWPakN3i/k81b0gvD5C5FJ2kxm1WrQFanWchyKuqGg= -k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f/go.mod h1:byini6yhqGC14c3ebc/QwanvYwhuMWF6yz2F8uwW8eg= -k8s.io/kubectl v0.27.1 h1:9T5c5KdpburYiW8XKQSH0Uly1kMNE90aGSnbYUZNdcA= -k8s.io/kubectl v0.27.1/go.mod h1:QsAkSmrRsKTPlAFzF8kODGDl4p35BIwQnc9XFhkcsy8= -k8s.io/metrics v0.27.4 h1:2s04bods7rA507iouGbxD55YrKNlFjLYzm30noOl9Sk= -k8s.io/metrics v0.27.4/go.mod h1:kRvfhFC7wCQEFvu6H92uiV7v05z3Ty/vtluYT5D2Xpk= -k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 h1:kmDqav+P+/5e1i9tFfHq1qcF3sOrDp+YEkVDAHu7Jwk= -k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -oras.land/oras-go v1.2.2 h1:0E9tOHUfrNH7TCDk5KU0jVBEzCqbfdyuVfGmJ7ZeRPE= -oras.land/oras-go v1.2.2/go.mod h1:Apa81sKoZPpP7CDciE006tSZ0x3Q3+dOoBcMZ/aNxvw= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= +k8s.io/api v0.28.2 h1:9mpl5mOb6vXZvqbQmankOfPIGiudghwCoLl1EYfUZbw= +k8s.io/api v0.28.2/go.mod h1:RVnJBsjU8tcMq7C3iaRSGMeaKt2TWEUXcpIt/90fjEg= +k8s.io/apiextensions-apiserver v0.28.2 h1:J6/QRWIKV2/HwBhHRVITMLYoypCoPY1ftigDM0Kn+QU= +k8s.io/apiextensions-apiserver v0.28.2/go.mod h1:5tnkxLGa9nefefYzWuAlWZ7RZYuN/765Au8cWLA6SRg= +k8s.io/apimachinery v0.28.2 h1:KCOJLrc6gu+wV1BYgwik4AF4vXOlVJPdiqn0yAWWwXQ= +k8s.io/apimachinery v0.28.2/go.mod h1:RdzF87y/ngqk9H4z3EL2Rppv5jj95vGS/HaFXrLDApU= +k8s.io/apiserver v0.28.2 h1:rBeYkLvF94Nku9XfXyUIirsVzCzJBs6jMn3NWeHieyI= +k8s.io/apiserver v0.28.2/go.mod h1:f7D5e8wH8MWcKD7azq6Csw9UN+CjdtXIVQUyUhrtb+E= +k8s.io/cli-runtime v0.28.2 h1:64meB2fDj10/ThIMEJLO29a1oujSm0GQmKzh1RtA/uk= +k8s.io/cli-runtime v0.28.2/go.mod h1:bTpGOvpdsPtDKoyfG4EG041WIyFZLV9qq4rPlkyYfDA= +k8s.io/client-go v0.28.2 h1:DNoYI1vGq0slMBN/SWKMZMw0Rq+0EQW6/AK4v9+3VeY= +k8s.io/client-go v0.28.2/go.mod h1:sMkApowspLuc7omj1FOSUxSoqjr+d5Q0Yc0LOFnYFJY= +k8s.io/component-base v0.28.2 h1:Yc1yU+6AQSlpJZyvehm/NkJBII72rzlEsd6MkBQ+G0E= +k8s.io/component-base v0.28.2/go.mod h1:4IuQPQviQCg3du4si8GpMrhAIegxpsgPngPRR/zWpzc= +k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg= +k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= +k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 h1:LyMgNKD2P8Wn1iAwQU5OhxCKlKJy0sHc+PcDwFB24dQ= +k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9/go.mod h1:wZK2AVp1uHCp4VamDVgBP2COHZjqD1T68Rf0CM3YjSM= +k8s.io/kubectl v0.28.2 h1:fOWOtU6S0smdNjG1PB9WFbqEIMlkzU5ahyHkc7ESHgM= +k8s.io/kubectl v0.28.2/go.mod h1:6EQWTPySF1fn7yKoQZHYf9TPwIl2AygHEcJoxFekr64= +k8s.io/metrics v0.28.2 h1:Z/oMk5SmiT/Ji1SaWOPfW2l9W831BLO9/XxDq9iS3ak= +k8s.io/metrics v0.28.2/go.mod h1:QTIIdjMrq+KodO+rmp6R9Pr1LZO8kTArNtkWoQXw0sw= +k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 h1:qY1Ad8PODbnymg2pRbkyMT/ylpTrCM8P2RJ0yroCyIk= +k8s.io/utils v0.0.0-20230406110748-d93618cff8a2/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +oras.land/oras-go v1.2.3 h1:v8PJl+gEAntI1pJ/LCrDgsuk+1PKVavVEPsYIHFE5uY= +oras.land/oras-go v1.2.3/go.mod h1:M/uaPdYklze0Vf3AakfarnpoEckvw0ESbRdN8Z1vdJg= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= -sigs.k8s.io/kustomize/api v0.13.2 h1:kejWfLeJhUsTGioDoFNJET5LQe/ajzXhJGYoU+pJsiA= -sigs.k8s.io/kustomize/api v0.13.2/go.mod h1:DUp325VVMFVcQSq+ZxyDisA8wtldwHxLZbr1g94UHsw= -sigs.k8s.io/kustomize/kyaml v0.14.1 h1:c8iibius7l24G2wVAGZn/Va2wNys03GXLjYVIcFVxKA= -sigs.k8s.io/kustomize/kyaml v0.14.1/go.mod h1:AN1/IpawKilWD7V+YvQwRGUvuUOOWpjsHu6uHwonSF4= +sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3 h1:XX3Ajgzov2RKUdc5jW3t5jwY7Bo7dcRm+tFxT+NfgY0= +sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3/go.mod h1:9n16EZKMhXBNSiUC5kSdFQJkdH3zbxS/JoO619G1VAY= +sigs.k8s.io/kustomize/kyaml v0.14.3-0.20230601165947-6ce0bf390ce3 h1:W6cLQc5pnqM7vh3b7HvGNfXrJ/xL6BDMS0v1V/HHg5U= +sigs.k8s.io/kustomize/kyaml v0.14.3-0.20230601165947-6ce0bf390ce3/go.mod h1:JWP1Fj0VWGHyw3YUPjXSQnRnrwezrZSrApfX5S0nIag= sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE= sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E= sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= From 4061c038518d19089ceb255bf0c33b5b35a4f636 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Oct 2023 08:25:31 -0600 Subject: [PATCH 080/130] Bump actions/checkout from 3.5.2 to 4.1.0 (#2232) Bumps [actions/checkout](https://github.com/actions/checkout) from 3.5.2 to 4.1.0. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3.5.2...v4.1.0) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e3ba126662..d6c3a6e812 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-20.04 steps: - name: Checkout Code - uses: actions/checkout@v3.5.2 + uses: actions/checkout@v4.1.0 - name: Install Go uses: actions/setup-go@v4.0.1 From 13c25dd000643acc837d177279b5592d272118eb Mon Sep 17 00:00:00 2001 From: Mike <10135646+mikesmithgh@users.noreply.github.com> Date: Wed, 4 Oct 2023 10:28:16 -0400 Subject: [PATCH 081/130] fix(log): clear bold log format after timestamp (#2229) --- internal/dao/log_item.go | 2 +- internal/dao/log_item_test.go | 2 +- internal/dao/log_items_test.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/dao/log_item.go b/internal/dao/log_item.go index a66e1748d0..2deb3f177a 100644 --- a/internal/dao/log_item.go +++ b/internal/dao/log_item.go @@ -73,7 +73,7 @@ func (l *LogItem) Render(paint string, showTime bool, bb *bytes.Buffer) { for i := len(l.Bytes[:index]); i < 30; i++ { bb.WriteByte(' ') } - bb.WriteString("[-::]") + bb.WriteString("[-::-]") } if l.Pod != "" { diff --git a/internal/dao/log_item_test.go b/internal/dao/log_item_test.go index 1eeacc548d..065dbfa0ae 100644 --- a/internal/dao/log_item_test.go +++ b/internal/dao/log_item_test.go @@ -63,7 +63,7 @@ func TestLogItemRender(t *testing.T) { ShowTimestamp: true, }, log: fmt.Sprintf("%s %s\n", "2018-12-14T10:36:43.326972-07:00", "Testing 1,2,3..."), - e: "[gray::b]2018-12-14T10:36:43.326972-07:00 [-::][yellow::]fred [yellow::b]blee[-::-] Testing 1,2,3...\n", + e: "[gray::b]2018-12-14T10:36:43.326972-07:00 [-::-][yellow::]fred [yellow::b]blee[-::-] Testing 1,2,3...\n", }, "log-level": { opts: dao.LogOptions{ diff --git a/internal/dao/log_items_test.go b/internal/dao/log_items_test.go index e4e2742ea6..924664a838 100644 --- a/internal/dao/log_items_test.go +++ b/internal/dao/log_items_test.go @@ -108,7 +108,7 @@ func TestLogItemsRender(t *testing.T) { Container: "blee", ShowTimestamp: true, }, - e: "[gray::b]2018-12-14T10:36:43.326972-07:00 [-::][teal::]fred [teal::b]blee[-::-] Testing 1,2,3...\n", + e: "[gray::b]2018-12-14T10:36:43.326972-07:00 [-::-][teal::]fred [teal::b]blee[-::-] Testing 1,2,3...\n", }, } From 46b725d934bbd0f48f73c0a33d0395d4eac8f269 Mon Sep 17 00:00:00 2001 From: Julien Bouquillon Date: Sun, 8 Oct 2023 16:09:20 +0200 Subject: [PATCH 082/130] docs: add plugin.yml JSON schema (#2235) --- plugins/schema.json | 54 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 plugins/schema.json diff --git a/plugins/schema.json b/plugins/schema.json new file mode 100644 index 0000000000..3dd50016e9 --- /dev/null +++ b/plugins/schema.json @@ -0,0 +1,54 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Schema for k9s CLI plugin.yml file : https://k9scli.io/topics/plugins", + "type": "object", + "additionalProperties": false, + "properties": { + "plugin": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": false, + "properties": { + "shortCut": { + "description": "Define a mnemonic to invoke the plugin", + "type": "string" + }, + "description": { + "description": "What will be shown on the K9s menu", + "type": "string" + }, + "confirm": { + "description": "See the command that is going to be executed and gives you an option to confirm", + "type": "boolean" + }, + "scopes": { + "type": "array", + "description": "Collections of views that support this shortcut. (You can use `all`)", + "items": { + "type": "string" + } + }, + "command": { + "description": "The command to run upon invocation. Can use Krew plugins here too!", + "type": "string" + }, + "background": { + "description": "Whether or not to run the command in background mode", + "type": "boolean" + }, + "args": { + "description": "Defines the command arguments", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": ["shortCut", "description", "scopes", "command"] + }, + "required": [] + } + }, + "required": ["plugin"] +} From 67b5da173295f958223d4c710ddceb0df90112bd Mon Sep 17 00:00:00 2001 From: yinheli Date: Thu, 12 Oct 2023 22:22:57 +0800 Subject: [PATCH 083/130] fix(typo): pdb header typo (#2243) --- internal/render/pdb.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/render/pdb.go b/internal/render/pdb.go index 71a306bd6e..24d4ccb9e5 100644 --- a/internal/render/pdb.go +++ b/internal/render/pdb.go @@ -23,7 +23,7 @@ func (PodDisruptionBudget) Header(ns string) Header { HeaderColumn{Name: "NAMESPACE"}, HeaderColumn{Name: "NAME"}, HeaderColumn{Name: "MIN AVAILABLE", Align: tview.AlignRight}, - HeaderColumn{Name: "MAX_ UNAVAILABLE", Align: tview.AlignRight}, + HeaderColumn{Name: "MAX UNAVAILABLE", Align: tview.AlignRight}, HeaderColumn{Name: "ALLOWED DISRUPTIONS", Align: tview.AlignRight}, HeaderColumn{Name: "CURRENT", Align: tview.AlignRight}, HeaderColumn{Name: "DESIRED", Align: tview.AlignRight}, From bac74572ab6d87a2cc136ad6a6f9ca77a0c2b5ed Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Oct 2023 11:26:05 -0600 Subject: [PATCH 084/130] chore(deps): bump golang.org/x/net from 0.13.0 to 0.17.0 (#2245) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.13.0 to 0.17.0. - [Commits](https://github.com/golang/net/compare/v0.13.0...v0.17.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 10 +++++----- go.sum | 20 ++++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/go.mod b/go.mod index 2abac3910f..0e7f150c45 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/sahilm/fuzzy v0.1.0 github.com/spf13/cobra v1.7.0 github.com/stretchr/testify v1.8.4 - golang.org/x/text v0.12.0 + golang.org/x/text v0.13.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.13.0 k8s.io/api v0.28.2 @@ -139,12 +139,12 @@ require ( go.opentelemetry.io/otel v1.14.0 // indirect go.opentelemetry.io/otel/trace v1.14.0 // indirect go.starlark.net v0.0.0-20230525235612-a134d8f9ddca // indirect - golang.org/x/crypto v0.11.0 // indirect - golang.org/x/net v0.13.0 // indirect + golang.org/x/crypto v0.14.0 // indirect + golang.org/x/net v0.17.0 // indirect golang.org/x/oauth2 v0.8.0 // indirect golang.org/x/sync v0.2.0 // indirect - golang.org/x/sys v0.11.0 // indirect - golang.org/x/term v0.11.0 // indirect + golang.org/x/sys v0.13.0 // indirect + golang.org/x/term v0.13.0 // indirect golang.org/x/time v0.3.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 // indirect diff --git a/go.sum b/go.sum index 39b5e79e05..edf40d5299 100644 --- a/go.sum +++ b/go.sum @@ -414,8 +414,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= -golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA= -golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= +golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= +golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -442,8 +442,8 @@ golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= -golang.org/x/net v0.13.0 h1:Nvo8UFsZ8X3BhAC9699Z1j7XQ3rsZnUUm7jfBEk1ueY= -golang.org/x/net v0.13.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= +golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= @@ -481,21 +481,21 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= -golang.org/x/term v0.11.0 h1:F9tnn/DA/Im8nCwm+fX+1/eBwi4qFjRT++MhtVC4ZX0= -golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= +golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= +golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc= -golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= From e326b41c3121a8de73124ad376472bae4196222c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Oct 2023 11:26:21 -0600 Subject: [PATCH 085/130] chore(deps): bump golang.org/x/text from 0.12.0 to 0.13.0 (#2242) Bumps [golang.org/x/text](https://github.com/golang/text) from 0.12.0 to 0.13.0. - [Release notes](https://github.com/golang/text/releases) - [Commits](https://github.com/golang/text/compare/v0.12.0...v0.13.0) --- updated-dependencies: - dependency-name: golang.org/x/text dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> From e906fa606f764bbde787b67e65fe5b1719629d56 Mon Sep 17 00:00:00 2001 From: Felipe Galindo Sanchez Date: Thu, 12 Oct 2023 10:27:56 -0700 Subject: [PATCH 086/130] fix: honor defaults from drain dialog in request (#2239) * fix: honor defaults from dialog into request * reuse options/defaults from arg * fix additional references for defaults --- internal/view/drain_dialog.go | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/internal/view/drain_dialog.go b/internal/view/drain_dialog.go index 76e0f1bf71..ed56a99e2d 100644 --- a/internal/view/drain_dialog.go +++ b/internal/view/drain_dialog.go @@ -15,7 +15,7 @@ const drainKey = "drain" type DrainFunc func(v ResourceViewer, path string, opts dao.DrainOptions) // ShowDrain pops a node drain dialog. -func ShowDrain(view ResourceViewer, path string, defaults dao.DrainOptions, okFn DrainFunc) { +func ShowDrain(view ResourceViewer, path string, opts dao.DrainOptions, okFn DrainFunc) { styles := view.App().Styles f := tview.NewForm() @@ -26,8 +26,7 @@ func ShowDrain(view ResourceViewer, path string, defaults dao.DrainOptions, okFn SetLabelColor(styles.K9s.Info.FgColor.Color()). SetFieldTextColor(styles.K9s.Info.SectionColor.Color()) - var opts dao.DrainOptions - f.AddInputField("GracePeriod:", strconv.Itoa(defaults.GracePeriodSeconds), 0, nil, func(v string) { + f.AddInputField("GracePeriod:", strconv.Itoa(opts.GracePeriodSeconds), 0, nil, func(v string) { a, err := asIntOpt(v) if err != nil { view.App().Flash().Err(err) @@ -36,7 +35,7 @@ func ShowDrain(view ResourceViewer, path string, defaults dao.DrainOptions, okFn view.App().Flash().Clear() opts.GracePeriodSeconds = a }) - f.AddInputField("Timeout:", defaults.Timeout.String(), 0, nil, func(v string) { + f.AddInputField("Timeout:", opts.Timeout.String(), 0, nil, func(v string) { a, err := asDurOpt(v) if err != nil { view.App().Flash().Err(err) @@ -45,13 +44,13 @@ func ShowDrain(view ResourceViewer, path string, defaults dao.DrainOptions, okFn view.App().Flash().Clear() opts.Timeout = a }) - f.AddCheckbox("Ignore DaemonSets:", defaults.IgnoreAllDaemonSets, func(_ string, v bool) { + f.AddCheckbox("Ignore DaemonSets:", opts.IgnoreAllDaemonSets, func(_ string, v bool) { opts.IgnoreAllDaemonSets = v }) - f.AddCheckbox("Delete Local Data:", defaults.DeleteEmptyDirData, func(_ string, v bool) { + f.AddCheckbox("Delete Local Data:", opts.DeleteEmptyDirData, func(_ string, v bool) { opts.DeleteEmptyDirData = v }) - f.AddCheckbox("Force:", defaults.Force, func(_ string, v bool) { + f.AddCheckbox("Force:", opts.Force, func(_ string, v bool) { opts.Force = v }) From b2be4336379e4183a3b7b1c7f09ff9e9938b8ec5 Mon Sep 17 00:00:00 2001 From: Jayson Wang Date: Thu, 19 Oct 2023 00:19:05 +0800 Subject: [PATCH 087/130] consider units when sorting capacity (#2252) --- internal/render/header.go | 10 ++++ internal/render/helpers.go | 6 +++ internal/render/pv.go | 2 +- internal/render/pvc.go | 2 +- internal/render/row.go | 20 +++++--- internal/render/row_event.go | 6 ++- internal/render/row_event_test.go | 24 ++++++++- internal/render/row_test.go | 82 ++++++++++++++++++++++++++++--- internal/ui/table.go | 1 + 9 files changed, 133 insertions(+), 20 deletions(-) diff --git a/internal/render/header.go b/internal/render/header.go index 91eab1aedc..253189cf29 100644 --- a/internal/render/header.go +++ b/internal/render/header.go @@ -17,6 +17,7 @@ type HeaderColumn struct { Wide bool MX bool Time bool + Capacity bool } // Clone copies a header. @@ -163,6 +164,15 @@ func (h Header) IsTimeCol(col int) bool { return h[col].Time } +// IsCapacityCol checks if given column index represents a capacity. +func (h Header) IsCapacityCol(col int) bool { + if col < 0 || col >= len(h) { + return false + } + + return h[col].Capacity +} + // ValidColIndex returns the valid col index or -1 if none. func (h Header) ValidColIndex() int { return h.IndexOf("VALID", true) diff --git a/internal/render/helpers.go b/internal/render/helpers.go index 1988633b09..422c6d8f57 100644 --- a/internal/render/helpers.go +++ b/internal/render/helpers.go @@ -12,6 +12,7 @@ import ( "github.com/rs/zerolog/log" "golang.org/x/text/language" "golang.org/x/text/message" + "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/duration" ) @@ -57,6 +58,11 @@ func durationToSeconds(duration string) int64 { return n } +func capacityToNumber(capacity string) int64 { + quantity := resource.MustParse(capacity) + return quantity.Value() +} + // AsThousands prints a number with thousand separator. func AsThousands(n int64) string { p := message.NewPrinter(language.English) diff --git a/internal/render/pv.go b/internal/render/pv.go index eecf98a7e8..630c2e77ac 100644 --- a/internal/render/pv.go +++ b/internal/render/pv.go @@ -49,7 +49,7 @@ func (p PersistentVolume) ColorerFunc() ColorerFunc { func (PersistentVolume) Header(string) Header { return Header{ HeaderColumn{Name: "NAME"}, - HeaderColumn{Name: "CAPACITY"}, + HeaderColumn{Name: "CAPACITY", Capacity: true}, HeaderColumn{Name: "ACCESS MODES"}, HeaderColumn{Name: "RECLAIM POLICY"}, HeaderColumn{Name: "STATUS"}, diff --git a/internal/render/pvc.go b/internal/render/pvc.go index 809ae1c612..f5514d5b58 100644 --- a/internal/render/pvc.go +++ b/internal/render/pvc.go @@ -21,7 +21,7 @@ func (PersistentVolumeClaim) Header(ns string) Header { HeaderColumn{Name: "NAME"}, HeaderColumn{Name: "STATUS"}, HeaderColumn{Name: "VOLUME"}, - HeaderColumn{Name: "CAPACITY"}, + HeaderColumn{Name: "CAPACITY", Capacity: true}, HeaderColumn{Name: "ACCESS MODES"}, HeaderColumn{Name: "STORAGECLASS"}, HeaderColumn{Name: "LABELS", Wide: true}, diff --git a/internal/render/row.go b/internal/render/row.go index 5962c24aab..1bd5e3872f 100644 --- a/internal/render/row.go +++ b/internal/render/row.go @@ -145,12 +145,13 @@ func (rr Rows) Find(id string) (int, bool) { } // Sort rows based on column index and order. -func (rr Rows) Sort(col int, asc, isNum, isDur bool) { +func (rr Rows) Sort(col int, asc, isNum, isDur, isCapacity bool) { t := RowSorter{ Rows: rr, Index: col, IsNumber: isNum, IsDuration: isDur, + IsCapacity: isCapacity, Asc: asc, } sort.Sort(t) @@ -160,10 +161,12 @@ func (rr Rows) Sort(col int, asc, isNum, isDur bool) { // RowSorter sorts rows. type RowSorter struct { - Rows Rows - Index int - IsNumber, IsDuration bool - Asc bool + Rows Rows + Index int + IsNumber bool + IsDuration bool + IsCapacity bool + Asc bool } func (s RowSorter) Len() int { @@ -177,7 +180,7 @@ func (s RowSorter) Swap(i, j int) { func (s RowSorter) Less(i, j int) bool { v1, v2 := s.Rows[i].Fields[s.Index], s.Rows[j].Fields[s.Index] id1, id2 := s.Rows[i].ID, s.Rows[j].ID - less := Less(s.IsNumber, s.IsDuration, id1, id2, v1, v2) + less := Less(s.IsNumber, s.IsDuration, s.IsCapacity, id1, id2, v1, v2) if s.Asc { return less } @@ -188,7 +191,7 @@ func (s RowSorter) Less(i, j int) bool { // Helpers... // Less return true if c1 < c2. -func Less(isNumber, isDuration bool, id1, id2, v1, v2 string) bool { +func Less(isNumber, isDuration, isCapacity bool, id1, id2, v1, v2 string) bool { var less bool switch { case isNumber: @@ -197,6 +200,9 @@ func Less(isNumber, isDuration bool, id1, id2, v1, v2 string) bool { case isDuration: d1, d2 := durationToSeconds(v1), durationToSeconds(v2) less = d1 <= d2 + case isCapacity: + c1, c2 := capacityToNumber(v1), capacityToNumber(v2) + less = c1 <= c2 default: less = sortorder.NaturalLess(v1, v2) } diff --git a/internal/render/row_event.go b/internal/render/row_event.go index 795006c4bc..83c7c44022 100644 --- a/internal/render/row_event.go +++ b/internal/render/row_event.go @@ -193,7 +193,7 @@ func (r RowEvents) FindIndex(id string) (int, bool) { } // Sort rows based on column index and order. -func (r RowEvents) Sort(ns string, sortCol int, isDuration, numCol, asc bool) { +func (r RowEvents) Sort(ns string, sortCol int, isDuration, numCol, isCapacity, asc bool) { if sortCol == -1 { return } @@ -205,6 +205,7 @@ func (r RowEvents) Sort(ns string, sortCol int, isDuration, numCol, asc bool) { Asc: asc, IsNumber: numCol, IsDuration: isDuration, + IsCapacity: isCapacity, } sort.Sort(t) } @@ -218,6 +219,7 @@ type RowEventSorter struct { NS string IsNumber bool IsDuration bool + IsCapacity bool Asc bool } @@ -232,7 +234,7 @@ func (r RowEventSorter) Swap(i, j int) { func (r RowEventSorter) Less(i, j int) bool { f1, f2 := r.Events[i].Row.Fields, r.Events[j].Row.Fields id1, id2 := r.Events[i].Row.ID, r.Events[j].Row.ID - less := Less(r.IsNumber, r.IsDuration, id1, id2, f1[r.Index], f2[r.Index]) + less := Less(r.IsNumber, r.IsDuration, r.IsCapacity, id1, id2, f1[r.Index], f2[r.Index]) if r.Asc { return less } diff --git a/internal/render/row_event_test.go b/internal/render/row_event_test.go index 975815e5a2..c106673098 100644 --- a/internal/render/row_event_test.go +++ b/internal/render/row_event_test.go @@ -413,6 +413,7 @@ func TestRowEventsSort(t *testing.T) { re render.RowEvents col int duration, num, asc bool + capacity bool e render.RowEvents }{ "age_time": { @@ -464,12 +465,33 @@ func TestRowEventsSort(t *testing.T) { {Row: render.Row{ID: "ns2/C", Fields: render.Fields{"C", "2", "3"}}}, }, }, + "capacity": { + re: render.RowEvents{ + {Row: render.Row{ID: "ns1/B", Fields: render.Fields{"B", "2", "3", "1Gi"}}}, + {Row: render.Row{ID: "ns1/A", Fields: render.Fields{"A", "2", "3", "1.1G"}}}, + {Row: render.Row{ID: "ns1/C", Fields: render.Fields{"C", "2", "3", "0.5Ti"}}}, + {Row: render.Row{ID: "ns2/B", Fields: render.Fields{"B", "2", "3", "12e6"}}}, + {Row: render.Row{ID: "ns2/A", Fields: render.Fields{"A", "2", "3", "1234"}}}, + {Row: render.Row{ID: "ns2/C", Fields: render.Fields{"C", "2", "3", "0.1Ei"}}}, + }, + col: 3, + asc: true, + capacity: true, + e: render.RowEvents{ + {Row: render.Row{ID: "ns2/A", Fields: render.Fields{"A", "2", "3", "1234"}}}, + {Row: render.Row{ID: "ns2/B", Fields: render.Fields{"B", "2", "3", "12e6"}}}, + {Row: render.Row{ID: "ns1/B", Fields: render.Fields{"B", "2", "3", "1Gi"}}}, + {Row: render.Row{ID: "ns1/A", Fields: render.Fields{"A", "2", "3", "1.1G"}}}, + {Row: render.Row{ID: "ns1/C", Fields: render.Fields{"C", "2", "3", "0.5Ti"}}}, + {Row: render.Row{ID: "ns2/C", Fields: render.Fields{"C", "2", "3", "0.1Ei"}}}, + }, + }, } for k := range uu { u := uu[k] t.Run(k, func(t *testing.T) { - u.re.Sort("", u.col, u.duration, u.num, u.asc) + u.re.Sort("", u.col, u.duration, u.num, u.capacity, u.asc) assert.Equal(t, u.e, u.re) }) } diff --git a/internal/render/row_test.go b/internal/render/row_test.go index 185eb7000b..82e4728f44 100644 --- a/internal/render/row_test.go +++ b/internal/render/row_test.go @@ -304,7 +304,7 @@ func TestRowsSortText(t *testing.T) { for k := range uu { u := uu[k] t.Run(k, func(t *testing.T) { - u.rows.Sort(u.col, u.asc, u.num, false) + u.rows.Sort(u.col, u.asc, u.num, false, false) assert.Equal(t, u.e, u.rows) }) } @@ -369,7 +369,7 @@ func TestRowsSortDuration(t *testing.T) { for k := range uu { u := uu[k] t.Run(k, func(t *testing.T) { - u.rows.Sort(u.col, u.asc, false, true) + u.rows.Sort(u.col, u.asc, false, true, false) assert.Equal(t, u.e, u.rows) }) } @@ -411,7 +411,49 @@ func TestRowsSortMetrics(t *testing.T) { for k := range uu { u := uu[k] t.Run(k, func(t *testing.T) { - u.rows.Sort(u.col, u.asc, true, false) + u.rows.Sort(u.col, u.asc, true, false, false) + assert.Equal(t, u.e, u.rows) + }) + } +} + +func TestRowsSortCapacity(t *testing.T) { + uu := map[string]struct { + rows render.Rows + col int + asc bool + e render.Rows + }{ + "capacityAsc": { + rows: render.Rows{ + {Fields: []string{"10Gi", "duh"}}, + {Fields: []string{"10G", "blee"}}, + }, + col: 0, + asc: true, + e: render.Rows{ + {Fields: []string{"10G", "blee"}}, + {Fields: []string{"10Gi", "duh"}}, + }, + }, + "capacityDesc": { + rows: render.Rows{ + {Fields: []string{"10000m", "1000Mi"}}, + {Fields: []string{"1m", "50Mi"}}, + }, + col: 1, + asc: false, + e: render.Rows{ + {Fields: []string{"10000m", "1000Mi"}}, + {Fields: []string{"1m", "50Mi"}}, + }, + }, + } + + for k := range uu { + u := uu[k] + t.Run(k, func(t *testing.T) { + u.rows.Sort(u.col, u.asc, false, false, true) assert.Equal(t, u.e, u.rows) }) } @@ -419,14 +461,17 @@ func TestRowsSortMetrics(t *testing.T) { func TestLess(t *testing.T) { uu := map[string]struct { - isNumber, isDuration bool - id1, id2 string - v1, v2 string - e bool + isNumber bool + isDuration bool + isCapacity bool + id1, id2 string + v1, v2 string + e bool }{ "years": { isNumber: false, isDuration: true, + isCapacity: false, id1: "id1", id2: "id2", v1: "2y263d", @@ -435,17 +480,38 @@ func TestLess(t *testing.T) { "hours": { isNumber: false, isDuration: true, + isCapacity: false, id1: "id1", id2: "id2", v1: "2y263d", v2: "19h", }, + "capacity1": { + isNumber: false, + isDuration: false, + isCapacity: true, + id1: "id1", + id2: "id2", + v1: "1Gi", + v2: "1G", + e: false, + }, + "capacity2": { + isNumber: false, + isDuration: false, + isCapacity: true, + id1: "id1", + id2: "id2", + v1: "1Gi", + v2: "1Ti", + e: true, + }, } for k := range uu { u := uu[k] t.Run(k, func(t *testing.T) { - assert.Equal(t, u.e, render.Less(u.isNumber, u.isDuration, u.id1, u.id2, u.v1, u.v2)) + assert.Equal(t, u.e, render.Less(u.isNumber, u.isDuration, u.isCapacity, u.id1, u.id2, u.v1, u.v2)) }) } } diff --git a/internal/ui/table.go b/internal/ui/table.go index ad0ea4b440..b412bde6c1 100644 --- a/internal/ui/table.go +++ b/internal/ui/table.go @@ -247,6 +247,7 @@ func (t *Table) doUpdate(data *render.TableData) { colIndex, custData.Header.IsTimeCol(colIndex), custData.Header.IsMetricsCol(colIndex), + custData.Header.IsCapacityCol(colIndex), t.sortCol.asc, ) From 9114a8ce27773a8365217d0b14ccb142fd4e2602 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Oct 2023 16:14:53 -0600 Subject: [PATCH 088/130] chore(deps): bump helm.sh/helm/v3 from 3.13.0 to 3.13.1 (#2250) Bumps [helm.sh/helm/v3](https://github.com/helm/helm) from 3.13.0 to 3.13.1. - [Release notes](https://github.com/helm/helm/releases) - [Commits](https://github.com/helm/helm/compare/v3.13.0...v3.13.1) --- updated-dependencies: - dependency-name: helm.sh/helm/v3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 12 ++++++------ go.sum | 24 ++++++++++++------------ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/go.mod b/go.mod index 0e7f150c45..7c4bb1d082 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,7 @@ require ( github.com/stretchr/testify v1.8.4 golang.org/x/text v0.13.0 gopkg.in/yaml.v2 v2.4.0 - helm.sh/helm/v3 v3.13.0 + helm.sh/helm/v3 v3.13.1 k8s.io/api v0.28.2 k8s.io/apiextensions-apiserver v0.28.2 k8s.io/apimachinery v0.28.2 @@ -53,9 +53,9 @@ require ( github.com/containerd/containerd v1.7.6 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/docker/cli v23.0.3+incompatible // indirect + github.com/docker/cli v24.0.6+incompatible // indirect github.com/docker/distribution v2.8.2+incompatible // indirect - github.com/docker/docker v23.0.3+incompatible // indirect + github.com/docker/docker v24.0.6+incompatible // indirect github.com/docker/docker-credential-helpers v0.7.0 // indirect github.com/docker/go-connections v0.4.0 // indirect github.com/docker/go-metrics v0.0.1 // indirect @@ -117,7 +117,7 @@ require ( github.com/onsi/ginkgo v1.16.5 // indirect github.com/onsi/gomega v1.27.6 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc4 // indirect + github.com/opencontainers/image-spec v1.1.0-rc5 // indirect github.com/peterbourgon/diskv v2.0.1+incompatible // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect @@ -142,7 +142,7 @@ require ( golang.org/x/crypto v0.14.0 // indirect golang.org/x/net v0.17.0 // indirect golang.org/x/oauth2 v0.8.0 // indirect - golang.org/x/sync v0.2.0 // indirect + golang.org/x/sync v0.3.0 // indirect golang.org/x/sys v0.13.0 // indirect golang.org/x/term v0.13.0 // indirect golang.org/x/time v0.3.0 // indirect @@ -156,7 +156,7 @@ require ( k8s.io/component-base v0.28.2 // indirect k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 // indirect k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 // indirect - oras.land/oras-go v1.2.3 // indirect + oras.land/oras-go v1.2.4 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3 // indirect sigs.k8s.io/kustomize/kyaml v0.14.3-0.20230601165947-6ce0bf390ce3 // indirect diff --git a/go.sum b/go.sum index edf40d5299..ecdfebc34c 100644 --- a/go.sum +++ b/go.sum @@ -72,12 +72,12 @@ github.com/derailed/tcell/v2 v2.3.1-rc.3/go.mod h1:nf68BEL8fjmXQHJT3xZjoZFs2uXOz github.com/derailed/tview v0.8.1 h1:hvNR3LLrWEuaQbPYfBnRn7bYkxCP26K6nX9J+MGlhyw= github.com/derailed/tview v0.8.1/go.mod h1:q+odnnhO6QDPpBT+0dqaWj+X+uoJ6MJehXj9shgP+Cw= github.com/distribution/distribution/v3 v3.0.0-20221208165359-362910506bc2 h1:aBfCb7iqHmDEIp6fBvC/hQUddQfg+3qdYjwzaiP9Hnc= -github.com/docker/cli v23.0.3+incompatible h1:Zcse1DuDqBdgI7OQDV8Go7b83xLgfhW1eza4HfEdxpY= -github.com/docker/cli v23.0.3+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/cli v24.0.6+incompatible h1:fF+XCQCgJjjQNIMjzaSmiKJSCcfcXb3TWTcc7GAneOY= +github.com/docker/cli v24.0.6+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v23.0.3+incompatible h1:9GhVsShNWz1hO//9BNg/dpMnZW25KydO4wtVxWAIbho= -github.com/docker/docker v23.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v24.0.6+incompatible h1:hceabKCtUgDqPu+qm0NgsaXf28Ljf4/pWFL7xjWWDgE= +github.com/docker/docker v24.0.6+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.7.0 h1:xtCHsjxogADNZcdv1pKUHXryefjlVRqWqIhk/uXJp0A= github.com/docker/docker-credential-helpers v0.7.0/go.mod h1:rETQfLdHNT3foU5kuNkFR1R1V12OJRRO5lzt2D1b5X0= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= @@ -311,8 +311,8 @@ github.com/onsi/gomega v1.27.6 h1:ENqfyGeS5AX/rlXDd/ETokDz93u0YufY1Pgxuy/PvWE= github.com/onsi/gomega v1.27.6/go.mod h1:PIQNjfQwkP3aQAH7lf7j87O/5FiNr+ZR8+ipb+qQlhg= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc4 h1:oOxKUJWnFC4YGHCCMNql1x4YaDfYBTS5Y4x/Cgeo1E0= -github.com/opencontainers/image-spec v1.1.0-rc4/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= +github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/petergtz/pegomock v2.9.0+incompatible h1:BKfb5XfkJfehe5T+O1xD4Zm26Sb9dnRj7tHxLYwUPiI= @@ -454,8 +454,8 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= -golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -561,8 +561,8 @@ gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.4.0 h1:ZazjZUfuVeZGLAmlKKuyv3IKP5orXcwtOwDQH6YVr6o= -helm.sh/helm/v3 v3.13.0 h1:XPJKIU30K4JTQ6VX/6e0hFAmEIonYa8E7wx5aqv4xOc= -helm.sh/helm/v3 v3.13.0/go.mod h1:2PBEKsMWKLVZTojUOqMS3Eadv5mP43FBWrRgLNkNm9Y= +helm.sh/helm/v3 v3.13.1 h1:DG+XLGzBJeZvMLlMbm6bPDLV1dGaVW9eZsDoUd1/LM0= +helm.sh/helm/v3 v3.13.1/go.mod h1:TdQRMiq46CSWcc68Hb0uVhvAWusaN90YwAV54cz6JzU= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= k8s.io/api v0.28.2 h1:9mpl5mOb6vXZvqbQmankOfPIGiudghwCoLl1EYfUZbw= @@ -589,8 +589,8 @@ k8s.io/metrics v0.28.2 h1:Z/oMk5SmiT/Ji1SaWOPfW2l9W831BLO9/XxDq9iS3ak= k8s.io/metrics v0.28.2/go.mod h1:QTIIdjMrq+KodO+rmp6R9Pr1LZO8kTArNtkWoQXw0sw= k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 h1:qY1Ad8PODbnymg2pRbkyMT/ylpTrCM8P2RJ0yroCyIk= k8s.io/utils v0.0.0-20230406110748-d93618cff8a2/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -oras.land/oras-go v1.2.3 h1:v8PJl+gEAntI1pJ/LCrDgsuk+1PKVavVEPsYIHFE5uY= -oras.land/oras-go v1.2.3/go.mod h1:M/uaPdYklze0Vf3AakfarnpoEckvw0ESbRdN8Z1vdJg= +oras.land/oras-go v1.2.4 h1:djpBY2/2Cs1PV87GSJlxv4voajVOMZxqqtq9AB8YNvY= +oras.land/oras-go v1.2.4/go.mod h1:DYcGfb3YF1nKjcezfX2SNlDAeQFKSXmf+qrFmrh4324= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3 h1:XX3Ajgzov2RKUdc5jW3t5jwY7Bo7dcRm+tFxT+NfgY0= From 981f9cc796f1e9fcbabbff79ed9e85fb0e3a13de Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Oct 2023 16:33:05 -0600 Subject: [PATCH 089/130] chore(deps): bump k8s.io/metrics from 0.28.2 to 0.28.3 (#2254) Bumps [k8s.io/metrics](https://github.com/kubernetes/metrics) from 0.28.2 to 0.28.3. - [Commits](https://github.com/kubernetes/metrics/compare/v0.28.2...v0.28.3) --- updated-dependencies: - dependency-name: k8s.io/metrics dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 7c4bb1d082..28bbd3fa27 100644 --- a/go.mod +++ b/go.mod @@ -24,14 +24,14 @@ require ( golang.org/x/text v0.13.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.13.1 - k8s.io/api v0.28.2 + k8s.io/api v0.28.3 k8s.io/apiextensions-apiserver v0.28.2 - k8s.io/apimachinery v0.28.2 + k8s.io/apimachinery v0.28.3 k8s.io/cli-runtime v0.28.2 - k8s.io/client-go v0.28.2 + k8s.io/client-go v0.28.3 k8s.io/klog/v2 v2.100.1 k8s.io/kubectl v0.28.2 - k8s.io/metrics v0.28.2 + k8s.io/metrics v0.28.3 sigs.k8s.io/yaml v1.3.0 ) diff --git a/go.sum b/go.sum index ecdfebc34c..fdb184f24f 100644 --- a/go.sum +++ b/go.sum @@ -565,18 +565,18 @@ helm.sh/helm/v3 v3.13.1 h1:DG+XLGzBJeZvMLlMbm6bPDLV1dGaVW9eZsDoUd1/LM0= helm.sh/helm/v3 v3.13.1/go.mod h1:TdQRMiq46CSWcc68Hb0uVhvAWusaN90YwAV54cz6JzU= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -k8s.io/api v0.28.2 h1:9mpl5mOb6vXZvqbQmankOfPIGiudghwCoLl1EYfUZbw= -k8s.io/api v0.28.2/go.mod h1:RVnJBsjU8tcMq7C3iaRSGMeaKt2TWEUXcpIt/90fjEg= +k8s.io/api v0.28.3 h1:Gj1HtbSdB4P08C8rs9AR94MfSGpRhJgsS+GF9V26xMM= +k8s.io/api v0.28.3/go.mod h1:MRCV/jr1dW87/qJnZ57U5Pak65LGmQVkKTzf3AtKFHc= k8s.io/apiextensions-apiserver v0.28.2 h1:J6/QRWIKV2/HwBhHRVITMLYoypCoPY1ftigDM0Kn+QU= k8s.io/apiextensions-apiserver v0.28.2/go.mod h1:5tnkxLGa9nefefYzWuAlWZ7RZYuN/765Au8cWLA6SRg= -k8s.io/apimachinery v0.28.2 h1:KCOJLrc6gu+wV1BYgwik4AF4vXOlVJPdiqn0yAWWwXQ= -k8s.io/apimachinery v0.28.2/go.mod h1:RdzF87y/ngqk9H4z3EL2Rppv5jj95vGS/HaFXrLDApU= +k8s.io/apimachinery v0.28.3 h1:B1wYx8txOaCQG0HmYF6nbpU8dg6HvA06x5tEffvOe7A= +k8s.io/apimachinery v0.28.3/go.mod h1:uQTKmIqs+rAYaq+DFaoD2X7pcjLOqbQX2AOiO0nIpb8= k8s.io/apiserver v0.28.2 h1:rBeYkLvF94Nku9XfXyUIirsVzCzJBs6jMn3NWeHieyI= k8s.io/apiserver v0.28.2/go.mod h1:f7D5e8wH8MWcKD7azq6Csw9UN+CjdtXIVQUyUhrtb+E= k8s.io/cli-runtime v0.28.2 h1:64meB2fDj10/ThIMEJLO29a1oujSm0GQmKzh1RtA/uk= k8s.io/cli-runtime v0.28.2/go.mod h1:bTpGOvpdsPtDKoyfG4EG041WIyFZLV9qq4rPlkyYfDA= -k8s.io/client-go v0.28.2 h1:DNoYI1vGq0slMBN/SWKMZMw0Rq+0EQW6/AK4v9+3VeY= -k8s.io/client-go v0.28.2/go.mod h1:sMkApowspLuc7omj1FOSUxSoqjr+d5Q0Yc0LOFnYFJY= +k8s.io/client-go v0.28.3 h1:2OqNb72ZuTZPKCl+4gTKvqao0AMOl9f3o2ijbAj3LI4= +k8s.io/client-go v0.28.3/go.mod h1:LTykbBp9gsA7SwqirlCXBWtK0guzfhpoW4qSm7i9dxo= k8s.io/component-base v0.28.2 h1:Yc1yU+6AQSlpJZyvehm/NkJBII72rzlEsd6MkBQ+G0E= k8s.io/component-base v0.28.2/go.mod h1:4IuQPQviQCg3du4si8GpMrhAIegxpsgPngPRR/zWpzc= k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg= @@ -585,8 +585,8 @@ k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 h1:LyMgNKD2P8Wn1iAwQU5Ohx k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9/go.mod h1:wZK2AVp1uHCp4VamDVgBP2COHZjqD1T68Rf0CM3YjSM= k8s.io/kubectl v0.28.2 h1:fOWOtU6S0smdNjG1PB9WFbqEIMlkzU5ahyHkc7ESHgM= k8s.io/kubectl v0.28.2/go.mod h1:6EQWTPySF1fn7yKoQZHYf9TPwIl2AygHEcJoxFekr64= -k8s.io/metrics v0.28.2 h1:Z/oMk5SmiT/Ji1SaWOPfW2l9W831BLO9/XxDq9iS3ak= -k8s.io/metrics v0.28.2/go.mod h1:QTIIdjMrq+KodO+rmp6R9Pr1LZO8kTArNtkWoQXw0sw= +k8s.io/metrics v0.28.3 h1:w2s3kVi7HulXqCVDFkF4hN/OsL1tXTTb4Biif995h/g= +k8s.io/metrics v0.28.3/go.mod h1:OZZ23AHFojPzU6r3xoHGRUcV3I9pauLua+07sAUbwLc= k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 h1:qY1Ad8PODbnymg2pRbkyMT/ylpTrCM8P2RJ0yroCyIk= k8s.io/utils v0.0.0-20230406110748-d93618cff8a2/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= oras.land/oras-go v1.2.4 h1:djpBY2/2Cs1PV87GSJlxv4voajVOMZxqqtq9AB8YNvY= From a93acbd28eb812ef9f4327a6a1a373ac21fbd20a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 29 Oct 2023 13:08:24 -0600 Subject: [PATCH 090/130] chore(deps): bump google.golang.org/grpc from 1.54.0 to 1.56.3 (#2263) Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.54.0 to 1.56.3. - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.54.0...v1.56.3) --- updated-dependencies: - dependency-name: google.golang.org/grpc dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 28bbd3fa27..2715769941 100644 --- a/go.mod +++ b/go.mod @@ -148,7 +148,7 @@ require ( golang.org/x/time v0.3.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 // indirect - google.golang.org/grpc v1.54.0 // indirect + google.golang.org/grpc v1.56.3 // indirect google.golang.org/protobuf v1.30.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/go.sum b/go.sum index fdb184f24f..49a9120de6 100644 --- a/go.sum +++ b/go.sum @@ -525,8 +525,8 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go. google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.54.0 h1:EhTqbhiYeixwWQtAEZAxmV9MGqcjEU2mFx52xCzNyag= -google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= +google.golang.org/grpc v1.56.3 h1:8I4C0Yq1EjstUzUJzpcRVbuYA2mODtEmpWiQoN/b2nc= +google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= From cf95ebd5ce62f64b2f673a860f2a780929219bcc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 29 Oct 2023 13:08:40 -0600 Subject: [PATCH 091/130] chore(deps): bump actions/checkout from 4.1.0 to 4.1.1 (#2260) Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.0 to 4.1.1. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4.1.0...v4.1.1) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d6c3a6e812..0de092ec61 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-20.04 steps: - name: Checkout Code - uses: actions/checkout@v4.1.0 + uses: actions/checkout@v4.1.1 - name: Install Go uses: actions/setup-go@v4.0.1 From 85c0f26158fdbdbe1b3e85de34f20adc350ef384 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 29 Oct 2023 13:09:07 -0600 Subject: [PATCH 092/130] chore(deps): bump github.com/fsnotify/fsnotify from 1.6.0 to 1.7.0 (#2259) Bumps [github.com/fsnotify/fsnotify](https://github.com/fsnotify/fsnotify) from 1.6.0 to 1.7.0. - [Release notes](https://github.com/fsnotify/fsnotify/releases) - [Changelog](https://github.com/fsnotify/fsnotify/blob/main/CHANGELOG.md) - [Commits](https://github.com/fsnotify/fsnotify/compare/v1.6.0...v1.7.0) --- updated-dependencies: - dependency-name: github.com/fsnotify/fsnotify dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 2715769941..72eef252c2 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/derailed/tcell/v2 v2.3.1-rc.3 github.com/derailed/tview v0.8.1 github.com/fatih/color v1.15.0 - github.com/fsnotify/fsnotify v1.6.0 + github.com/fsnotify/fsnotify v1.7.0 github.com/fvbommel/sortorder v1.1.0 github.com/ghodss/yaml v1.0.0 github.com/mattn/go-colorable v0.1.13 diff --git a/go.sum b/go.sum index 49a9120de6..c2ad0c1a0d 100644 --- a/go.sum +++ b/go.sum @@ -105,8 +105,8 @@ github.com/foxcpp/go-mockdns v1.0.0 h1:7jBqxd3WDWwi/6WhDvacvH1XsN3rOLXyHM1uhvIx6 github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= -github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/fvbommel/sortorder v1.1.0 h1:fUmoe+HLsBTctBDoaBwpQo5N+nrCp8g/BjKb/6ZQmYw= github.com/fvbommel/sortorder v1.1.0/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0= github.com/gdamore/encoding v1.0.0 h1:+7OoQ1Bc6eTm5niUzBa0Ctsh6JbMW6Ra+YNuAtDBdko= @@ -479,7 +479,6 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= From 09719eb16b20b2134f799d2fc3acc259eebf7c1c Mon Sep 17 00:00:00 2001 From: Jayson Wang Date: Mon, 30 Oct 2023 03:32:41 +0800 Subject: [PATCH 093/130] fix fsnotify not fully working (#2258) --- internal/ui/config.go | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/internal/ui/config.go b/internal/ui/config.go index c655be0f2d..4a95e10151 100644 --- a/internal/ui/config.go +++ b/internal/ui/config.go @@ -44,10 +44,11 @@ func (c *Configurator) CustomViewsWatcher(ctx context.Context, s synchronizer) e for { select { case evt := <-w.Events: - _ = evt - s.QueueUpdateDraw(func() { - c.RefreshCustomViews() - }) + if evt.Name == config.K9sViewConfigFile { + s.QueueUpdateDraw(func() { + c.RefreshCustomViews() + }) + } case err := <-w.Errors: log.Warn().Err(err).Msg("CustomView watcher failed") return @@ -63,7 +64,7 @@ func (c *Configurator) CustomViewsWatcher(ctx context.Context, s synchronizer) e log.Debug().Msgf("CustomView watching `%s", config.K9sViewConfigFile) c.RefreshCustomViews() - return w.Add(config.K9sViewConfigFile) + return w.Add(config.K9sHome()) } // RefreshCustomViews load view configuration changes. @@ -95,7 +96,7 @@ func (c *Configurator) StylesWatcher(ctx context.Context, s synchronizer) error for { select { case evt := <-w.Events: - if evt.Op != fsnotify.Chmod { + if evt.Name == c.skinFile && evt.Op != fsnotify.Chmod { s.QueueUpdateDraw(func() { c.RefreshStyles(c.Config.K9s.CurrentCluster) }) @@ -114,7 +115,7 @@ func (c *Configurator) StylesWatcher(ctx context.Context, s synchronizer) error }() log.Debug().Msgf("SkinWatcher watching `%s", c.skinFile) - return w.Add(c.skinFile) + return w.Add(config.K9sHome()) } // BenchConfig location of the benchmarks configuration file. From 62239f94158946adb66c0e82df6d239612c66c04 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 5 Nov 2023 07:38:41 -0700 Subject: [PATCH 094/130] chore(deps): bump github.com/docker/docker (#2266) Bumps [github.com/docker/docker](https://github.com/docker/docker) from 24.0.6+incompatible to 24.0.7+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v24.0.6...v24.0.7) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 72eef252c2..b3e1cb3b61 100644 --- a/go.mod +++ b/go.mod @@ -55,7 +55,7 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/docker/cli v24.0.6+incompatible // indirect github.com/docker/distribution v2.8.2+incompatible // indirect - github.com/docker/docker v24.0.6+incompatible // indirect + github.com/docker/docker v24.0.7+incompatible // indirect github.com/docker/docker-credential-helpers v0.7.0 // indirect github.com/docker/go-connections v0.4.0 // indirect github.com/docker/go-metrics v0.0.1 // indirect diff --git a/go.sum b/go.sum index c2ad0c1a0d..f566a58984 100644 --- a/go.sum +++ b/go.sum @@ -76,8 +76,8 @@ github.com/docker/cli v24.0.6+incompatible h1:fF+XCQCgJjjQNIMjzaSmiKJSCcfcXb3TWT github.com/docker/cli v24.0.6+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v24.0.6+incompatible h1:hceabKCtUgDqPu+qm0NgsaXf28Ljf4/pWFL7xjWWDgE= -github.com/docker/docker v24.0.6+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v24.0.7+incompatible h1:Wo6l37AuwP3JaMnZa226lzVXGA3F9Ig1seQen0cKYlM= +github.com/docker/docker v24.0.7+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.7.0 h1:xtCHsjxogADNZcdv1pKUHXryefjlVRqWqIhk/uXJp0A= github.com/docker/docker-credential-helpers v0.7.0/go.mod h1:rETQfLdHNT3foU5kuNkFR1R1V12OJRRO5lzt2D1b5X0= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= From 536ee0824772d964480d8c73c42058013f4e720f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 5 Nov 2023 07:47:50 -0700 Subject: [PATCH 095/130] chore(deps): bump github.com/rs/zerolog from 1.29.1 to 1.31.0 (#2241) Bumps [github.com/rs/zerolog](https://github.com/rs/zerolog) from 1.29.1 to 1.31.0. - [Release notes](https://github.com/rs/zerolog/releases) - [Commits](https://github.com/rs/zerolog/compare/v1.29.1...v1.31.0) --- updated-dependencies: - dependency-name: github.com/rs/zerolog dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 16 +++++++--------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/go.mod b/go.mod index b3e1cb3b61..42125693f5 100644 --- a/go.mod +++ b/go.mod @@ -17,7 +17,7 @@ require ( github.com/mattn/go-runewidth v0.0.14 github.com/petergtz/pegomock v2.9.0+incompatible github.com/rakyll/hey v0.1.4 - github.com/rs/zerolog v1.29.1 + github.com/rs/zerolog v1.31.0 github.com/sahilm/fuzzy v0.1.0 github.com/spf13/cobra v1.7.0 github.com/stretchr/testify v1.8.4 @@ -101,7 +101,7 @@ require ( github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/mailru/easyjson v0.7.7 // indirect - github.com/mattn/go-isatty v0.0.17 // indirect + github.com/mattn/go-isatty v0.0.19 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect diff --git a/go.sum b/go.sum index f566a58984..c264cf1c98 100644 --- a/go.sum +++ b/go.sum @@ -253,13 +253,11 @@ github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJ github.com/markbates/errx v1.1.0 h1:QDFeR+UP95dO12JgW+tgi2UVfo0V8YBHiUIOaeBPiEI= github.com/markbates/oncer v1.0.0 h1:E83IaVAHygyndzPimgUYJjbshhDTALZyXxvk9FOlQRY= github.com/markbates/safe v1.0.1 h1:yjZkbvRM6IzKj9tlu/zMJLS0n/V351OZWRnF3QfaUxI= -github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= -github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= -github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= +github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= @@ -349,9 +347,9 @@ github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJ github.com/rivo/uniseg v0.4.3 h1:utMvzDsuh3suAEnhH0RdHmoPbU648o6CvXxTx4SBMOw= github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.29.1 h1:cO+d60CHkknCbvzEWxP0S9K6KqyTjrCNUy1LdQLCGPc= -github.com/rs/zerolog v1.29.1/go.mod h1:Le6ESbR7hc+DP6Lt1THiV8CQSdkkNrd3R0XbEgp3ZBU= +github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= +github.com/rs/zerolog v1.31.0 h1:FcTR3NnLWW+NnTwwhFWiJSZr4ECLpqCm6QsEnyvbV4A= +github.com/rs/zerolog v1.31.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= github.com/rubenv/sql-migrate v1.5.2 h1:bMDqOnrJVV/6JQgQ/MxOpU+AdO8uzYYA/TxFUBzFtS0= github.com/rubenv/sql-migrate v1.5.2/go.mod h1:H38GW8Vqf8F0Su5XignRyaRcbXbJunSWxs+kmzlg0Is= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= @@ -472,14 +470,14 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= From a8615d9f19435f2c9476c09ad505d04be2be2b7b Mon Sep 17 00:00:00 2001 From: Jayson Wang Date: Sun, 5 Nov 2023 22:50:45 +0800 Subject: [PATCH 096/130] fix manual sorting not working when sortColumn is configured (#2253) * fix manual sorting not working when sortColumn is configured * using manualSort to indicate has modified the sort col * make user changes to the sortColumn take effect --- internal/ui/table.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/internal/ui/table.go b/internal/ui/table.go index b412bde6c1..ff9813e632 100644 --- a/internal/ui/table.go +++ b/internal/ui/table.go @@ -46,6 +46,7 @@ type Table struct { wide bool toast bool hasMetrics bool + manualSort bool } // NewTable returns a new table view. @@ -85,6 +86,7 @@ func (t *Table) GVR() client.GVR { return t.gvr } // ViewSettingsChanged notifies listener the view configuration changed. func (t *Table) ViewSettingsChanged(settings config.ViewSetting) { + t.manualSort = false // make user changes to the sortColumn take effect t.viewSetting = &settings t.Refresh() } @@ -202,9 +204,11 @@ func (t *Table) doUpdate(data *render.TableData) { cols = t.viewSetting.Columns } custData := data.Customize(cols, t.wide) - if t.viewSetting != nil && t.viewSetting.SortColumn != "" { + // The sortColumn settings in the configuration file are only used + // if the sortCol has not been modified manually + if t.viewSetting != nil && t.viewSetting.SortColumn != "" && !t.manualSort { tokens := strings.Split(t.viewSetting.SortColumn, ":") - if custData.Header.IndexOf(tokens[0], false) >= 0 && custData.Header.IndexOf(t.sortCol.name, false) < 0 { + if custData.Header.IndexOf(tokens[0], false) >= 0 { t.sortCol.name, t.sortCol.asc = tokens[0], true if len(tokens) == 2 && tokens[1] == "desc" { t.sortCol.asc = false @@ -316,6 +320,7 @@ func (t *Table) SortColCmd(name string, asc bool) func(evt *tcell.EventKey) *tce t.sortCol.asc = asc } t.sortCol.name = name + t.manualSort = true t.Refresh() return nil } From 79b1841daadacb17a5583ebd9d92a7f4682ab6bf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Nov 2023 17:18:40 -0700 Subject: [PATCH 097/130] chore(deps): bump k8s.io/klog/v2 from 2.100.1 to 2.110.1 (#2271) Bumps [k8s.io/klog/v2](https://github.com/kubernetes/klog) from 2.100.1 to 2.110.1. - [Release notes](https://github.com/kubernetes/klog/releases) - [Changelog](https://github.com/kubernetes/klog/blob/main/RELEASE.md) - [Commits](https://github.com/kubernetes/klog/compare/v2.100.1...v2.110.1) --- updated-dependencies: - dependency-name: k8s.io/klog/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 9 ++++----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index 42125693f5..7db439cb45 100644 --- a/go.mod +++ b/go.mod @@ -29,7 +29,7 @@ require ( k8s.io/apimachinery v0.28.3 k8s.io/cli-runtime v0.28.2 k8s.io/client-go v0.28.3 - k8s.io/klog/v2 v2.100.1 + k8s.io/klog/v2 v2.110.1 k8s.io/kubectl v0.28.2 k8s.io/metrics v0.28.3 sigs.k8s.io/yaml v1.3.0 @@ -67,7 +67,7 @@ require ( github.com/gdamore/encoding v1.0.0 // indirect github.com/go-errors/errors v1.4.2 // indirect github.com/go-gorp/gorp/v3 v3.1.0 // indirect - github.com/go-logr/logr v1.2.4 // indirect + github.com/go-logr/logr v1.3.0 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/jsonpointer v0.19.6 // indirect github.com/go-openapi/jsonreference v0.20.2 // indirect diff --git a/go.sum b/go.sum index c264cf1c98..2a2698d9a4 100644 --- a/go.sum +++ b/go.sum @@ -120,10 +120,9 @@ github.com/go-gorp/gorp/v3 v3.1.0/go.mod h1:dLEjIyyRNiXvNZ8PSmzpt1GsWAUK8kjVhEpj github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= -github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= +github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE= @@ -576,8 +575,8 @@ k8s.io/client-go v0.28.3 h1:2OqNb72ZuTZPKCl+4gTKvqao0AMOl9f3o2ijbAj3LI4= k8s.io/client-go v0.28.3/go.mod h1:LTykbBp9gsA7SwqirlCXBWtK0guzfhpoW4qSm7i9dxo= k8s.io/component-base v0.28.2 h1:Yc1yU+6AQSlpJZyvehm/NkJBII72rzlEsd6MkBQ+G0E= k8s.io/component-base v0.28.2/go.mod h1:4IuQPQviQCg3du4si8GpMrhAIegxpsgPngPRR/zWpzc= -k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg= -k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= +k8s.io/klog/v2 v2.110.1 h1:U/Af64HJf7FcwMcXyKm2RPM22WZzyR7OSpYj5tg3cL0= +k8s.io/klog/v2 v2.110.1/go.mod h1:YGtd1984u+GgbuZ7e08/yBuAfKLSO0+uR1Fhi6ExXjo= k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 h1:LyMgNKD2P8Wn1iAwQU5OhxCKlKJy0sHc+PcDwFB24dQ= k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9/go.mod h1:wZK2AVp1uHCp4VamDVgBP2COHZjqD1T68Rf0CM3YjSM= k8s.io/kubectl v0.28.2 h1:fOWOtU6S0smdNjG1PB9WFbqEIMlkzU5ahyHkc7ESHgM= From c651ec57c9417d558a8eaa981171f6d4ab14b6fe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Nov 2023 17:19:05 -0700 Subject: [PATCH 098/130] chore(deps): bump github.com/spf13/cobra from 1.7.0 to 1.8.0 (#2270) Bumps [github.com/spf13/cobra](https://github.com/spf13/cobra) from 1.7.0 to 1.8.0. - [Release notes](https://github.com/spf13/cobra/releases) - [Commits](https://github.com/spf13/cobra/compare/v1.7.0...v1.8.0) --- updated-dependencies: - dependency-name: github.com/spf13/cobra dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 7db439cb45..48619f7306 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/rakyll/hey v0.1.4 github.com/rs/zerolog v1.31.0 github.com/sahilm/fuzzy v0.1.0 - github.com/spf13/cobra v1.7.0 + github.com/spf13/cobra v1.8.0 github.com/stretchr/testify v1.8.4 golang.org/x/text v0.13.0 gopkg.in/yaml.v2 v2.4.0 diff --git a/go.sum b/go.sum index 2a2698d9a4..3639e3fd0c 100644 --- a/go.sum +++ b/go.sum @@ -57,7 +57,7 @@ github.com/containerd/containerd v1.7.6 h1:oNAVsnhPoy4BTPQivLgTzI9Oleml9l/+eYIDY github.com/containerd/containerd v1.7.6/go.mod h1:SY6lrkkuJT40BVNO37tlYTSnKJnP5AXBc0fhx0q+TJ4= github.com/containerd/continuity v0.4.2 h1:v3y/4Yz5jwnvqPKJJ+7Wf93fyWoCB3F5EclWG023MDM= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= @@ -365,8 +365,8 @@ github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVs github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= +github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= +github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= From f4d2ca621aec795131d30c398fcae86fe3c2cb54 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Nov 2023 17:19:21 -0700 Subject: [PATCH 099/130] chore(deps): bump github.com/fatih/color from 1.15.0 to 1.16.0 (#2269) Bumps [github.com/fatih/color](https://github.com/fatih/color) from 1.15.0 to 1.16.0. - [Release notes](https://github.com/fatih/color/releases) - [Commits](https://github.com/fatih/color/compare/v1.15.0...v1.16.0) --- updated-dependencies: - dependency-name: github.com/fatih/color dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 11 ++++++----- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/go.mod b/go.mod index 48619f7306..a91a272f59 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/derailed/popeye v0.11.1 github.com/derailed/tcell/v2 v2.3.1-rc.3 github.com/derailed/tview v0.8.1 - github.com/fatih/color v1.15.0 + github.com/fatih/color v1.16.0 github.com/fsnotify/fsnotify v1.7.0 github.com/fvbommel/sortorder v1.1.0 github.com/ghodss/yaml v1.0.0 @@ -101,7 +101,7 @@ require ( github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/mailru/easyjson v0.7.7 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect @@ -143,7 +143,7 @@ require ( golang.org/x/net v0.17.0 // indirect golang.org/x/oauth2 v0.8.0 // indirect golang.org/x/sync v0.3.0 // indirect - golang.org/x/sys v0.13.0 // indirect + golang.org/x/sys v0.14.0 // indirect golang.org/x/term v0.13.0 // indirect golang.org/x/time v0.3.0 // indirect google.golang.org/appengine v1.6.7 // indirect diff --git a/go.sum b/go.sum index 3639e3fd0c..4ed6620b26 100644 --- a/go.sum +++ b/go.sum @@ -98,8 +98,8 @@ github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d h1:105gxyaGwC github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= github.com/fatih/camelcase v1.0.0 h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8= github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= -github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= -github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= +github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= +github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= github.com/foxcpp/go-mockdns v1.0.0 h1:7jBqxd3WDWwi/6WhDvacvH1XsN3rOLXyHM1uhvIx6FI= github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= @@ -255,8 +255,9 @@ github.com/markbates/safe v1.0.1 h1:yjZkbvRM6IzKj9tlu/zMJLS0n/V351OZWRnF3QfaUxI= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= @@ -477,8 +478,8 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q= +golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= From d19c792feb75aa576f05cdd0824470941cdc8bd4 Mon Sep 17 00:00:00 2001 From: Fernand Galiana Date: Tue, 7 Nov 2023 17:22:41 -0700 Subject: [PATCH 100/130] K9s/rel v0.28.0 (#2274) * check for plausible overflow when seting up env * Various fixes and clean up * Introduce File transfer command - Add ability to upload/download files from/to pods * release v0.28.0 --- Makefile | 2 +- change_logs/release_v0.28.0.md | 113 +++++++++++++++++++++++++++++++ go.mod | 14 ++-- go.sum | 71 ++++++++++++++++---- internal/client/client.go | 14 +++- internal/client/config.go | 4 +- internal/dao/log_item.go | 4 +- internal/dao/log_item_test.go | 2 +- internal/dao/node.go | 7 +- internal/dao/pod.go | 2 +- internal/ui/dialog/transfer.go | 107 ++++++++++++++++++++++++++++++ internal/ui/menu.go | 11 ++-- internal/ui/table.go | 18 ++--- internal/view/actions.go | 18 +++-- internal/view/app.go | 17 +++-- internal/view/browser.go | 14 ++-- internal/view/command.go | 18 +++-- internal/view/container.go | 2 +- internal/view/context.go | 4 +- internal/view/dir.go | 9 ++- internal/view/exec.go | 117 ++++++++++++++++++++------------- internal/view/help.go | 24 +------ internal/view/help_test.go | 2 +- internal/view/helpers.go | 9 ++- internal/view/helpers_test.go | 4 +- internal/view/pf.go | 2 +- internal/view/pf_extender.go | 2 +- internal/view/pod.go | 78 ++++++++++++++++++++-- internal/view/pod_test.go | 2 +- internal/view/screen_dump.go | 3 +- internal/view/svc.go | 6 +- internal/view/xray.go | 5 +- internal/watch/forwarders.go | 9 ++- 33 files changed, 543 insertions(+), 171 deletions(-) create mode 100644 change_logs/release_v0.28.0.md create mode 100644 internal/ui/dialog/transfer.go diff --git a/Makefile b/Makefile index 098d42e459..3954a30aed 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ DATE ?= $(shell TZ=UTC date -j -f "%s" ${SOURCE_DATE_EPOCH} +"%Y-%m-%dT%H: else DATE ?= $(shell date -u -d @${SOURCE_DATE_EPOCH} +"%Y-%m-%dT%H:%M:%SZ") endif -VERSION ?= v0.27.4 +VERSION ?= v0.28.0 IMG_NAME := derailed/k9s IMAGE := ${IMG_NAME}:${VERSION} diff --git a/change_logs/release_v0.28.0.md b/change_logs/release_v0.28.0.md new file mode 100644 index 0000000000..705ba72e74 --- /dev/null +++ b/change_logs/release_v0.28.0.md @@ -0,0 +1,113 @@ + + +# Release v0.28.0 + +## Notes + +Thank you to all that contributed with flushing out issues and enhancements for K9s! I'll try to mark some of these issues as fixed. But if you don't mind grab the latest rev and see if we're happier with some of the fixes! If you've filed an issue please help me verify and close. Your support, kindness and awesome suggestions to make K9s better are, as ever, very much noted and appreciated! Also big thanks to all that have allocated their own time to help others on both slack and on this repo!! + +As you may know, K9s is not pimped out by corps with deep pockets, thus if you feel K9s is helping your Kubernetes journey, please consider joining our [sponsorship program](https://github.com/sponsors/derailed) and/or make some noise on social! [@kitesurfer](https://twitter.com/kitesurfer) + +On Slack? Please join us [K9slackers](https://join.slack.com/t/k9sers/shared_invite/enQtOTA5MDEyNzI5MTU0LWQ1ZGI3MzliYzZhZWEyNzYxYzA3NjE0YTk1YmFmNzViZjIyNzhkZGI0MmJjYzhlNjdlMGJhYzE2ZGU1NjkyNTM) + +--- + +## ♫ Sounds Behind The Release ♭ + +* [Moonlight Invasions - TribalNeed](https://www.youtube.com/watch?v=mJBnMSNIJL4&list=RDmJBnMSNIJL4&start_radio=1) +* [Teardrops - Neil Frances](https://www.youtube.com/watch?v=823_KoZr4mo) +* [Memory - Øystein Sevåg](https://www.youtube.com/watch?v=GKEM6lgkogY) +* [Tell me straight - Rolling Stones (Generated by KeithGPT 🐭)](https://www.youtube.com/watch?v=YxcxLi-Ld3E) + +--- + +## A Word From Our Sponsors... + +To all the good folks below that opted to `pay it forward` and join our sponsorship program, I salute you!! + +* [Hyeon Woo Jo](https://github.com/dokdo2013) +* [Artsiom Kaval](https://github.com/lezeroq) +* [Grant Linville](https://github.com/g-linville) +* [Andrew Brown](https://github.com/andrew-werdna) +* [Patrik Votoček](https://github.com/Vrtak-CZ) +* [Erik Hebisch](https://github.com/flegelleicht) +* [Juliet Boyd](https://github.com/julietrb1) +* [Chris Vertonghen](https://github.com/chrisv) +* [Acsone](https://github.com/acsone) +* [Alex Viscreanu](https://github.com/aexvir) +* [Joey Guerra](https://github.com/joeyguerra) +* [Kijana Woodard](https://github.com/kijanawoodard) +* [Tom Saleeba](https://github.com/tomsaleeba) + +> Sponsorship cancellations since the last release: `11` ;( + +--- + +## Feature Release + +### File Transfers in Da House! + +Added ability to exchange files from your local machine to a pod or from a pod to your local machine. The pod view now surfaces a new command `t` to initiate the download/upload file transfers. + +--- + +## Resolved Issues + +* [Issue #2249](https://github.com/derailed/k9s/issues/2249) Sort on the capacity column should consider Gi and Mb also +* [Issue #2225](https://github.com/derailed/k9s/issues/2225) View logs of all pods of a given deployment +* [Issue #2195](https://github.com/derailed/k9s/issues/2195) Some pod logs are not displayed. But I can display it when I use the command + +* [Issue #2194](https://github.com/derailed/k9s/issues/2194) 0.27.4 broke custom sort orders via views.yml +* [Issue #2185](https://github.com/derailed/k9s/issues/2185) No binaries for Linux_x86_64 +* [Issue #2169](https://github.com/derailed/k9s/issues/2169) Add namespace name in ServiceAccount view with RoleBinding +* [Issue #2152](https://github.com/derailed/k9s/issues/2152) Latest opened namespace not being saved between k9s sessions +* [Issue #2131](https://github.com/derailed/k9s/issues/2131) deployments are not showing up, whereas kubectl gives a list +* [Issue #2130](https://github.com/derailed/k9s/issues/2130) Pending pods show 0/0 Ready instead of 0/x Ready +* [Issue #2128](https://github.com/derailed/k9s/issues/2128) k9s command not found after snap install +* [Issue #2121](https://github.com/derailed/k9s/issues/2121) colors for crds +* [Issue #2120](https://github.com/derailed/k9s/issues/2120) kustomize deletion not working as expected +* [Issue #2106](https://github.com/derailed/k9s/issues/2106) k9s delete behaves differently with kubectl +* [Issue #2085](https://github.com/derailed/k9s/issues/2085) When specifying the context command via the -c flag, selecting a cluster always returns to the context view +* [Issue #658](https://github.com/derailed/k9s/issues/658) Feature request: Easy way to copy/download files from a pod/pv to your local PC + +--- + +## Contributed PRs + +Please give `Big Thanks!` and `ATTA Girls/Boys!` to all the fine contributors for making K9s better for all of us!! + +* [PR #2258](https://github.com/derailed/k9s/pull/2258) fix fsnotify watcher not fully working +* [PR #2253](https://github.com/derailed/k9s/pull/2253) fix manual sorting not working when sortColumn is configured +* [PR #2252](https://github.com/derailed/k9s/pull/2252) consider units when sorting capacity of pv and pvc +* [PR #2243](https://github.com/derailed/k9s/pull/2243) fix(typo): pdb header typo +* [PR #2239](https://github.com/derailed/k9s/pull/2239) fix: honor defaults from drain dialog in request +* [PR #2235](https://github.com/derailed/k9s/pull/2235) docs: add plugin.yml JSON schema +* [PR #2229](https://github.com/derailed/k9s/pull/2229) fix(log): clear bold log format after timestamp +* [PR #2188](https://github.com/derailed/k9s/pull/2188) Alias qa to quit +* [PR #2180](https://github.com/derailed/k9s/pull/2180) feat: Added support for arm in dockerfile +* [PR #2179](https://github.com/derailed/k9s/pull/2179) Focus command bar if active on startup +* [PR #2170](https://github.com/derailed/k9s/pull/2170) Add namespace for rolebinding on a clusterrole +* [PR #2161](https://github.com/derailed/k9s/pull/2161) Only apply keyConv to mnemonic in menus +* [PR #2158](https://github.com/derailed/k9s/pull/2158) Show the default container as the first entry +* [PR #2153](https://github.com/derailed/k9s/pull/2153) Changed checksums extension to checksums.sha256 +* [PR #2158](https://github.com/derailed/k9s/pull/2158) Show the default container as the first entry +* [PR #2151](https://github.com/derailed/k9s/pull/2151) chore: pkg imported more than once +* [PR #2147](https://github.com/derailed/k9s/pull/2147) feat: plugin for adding an ephemeral debug container +* [PR #2141](https://github.com/derailed/k9s/pull/2141) Update plugin flux.yml with shortcuts for helm repo and oci repos +* [PR #2137](https://github.com/derailed/k9s/pull/2137) Correctly display the numbers in the Ready column of the pods view +* [PR #2136](https://github.com/derailed/k9s/pull/2136) Prompt window uses border styles +* [PR #2134](https://github.com/derailed/k9s/pull/2134) Remove unsupported key binding on users view +* [PR #2124](https://github.com/derailed/k9s/pull/2124) fix: add correct flags when deleting resources from Dir +* [PR #2119](https://github.com/derailed/k9s/pull/2119) feat: add indicator to title if toast is toggled +* [PR #2117](https://github.com/derailed/k9s/pull/2117) Add instruction how to install k9s through winget +* [PR #2112](https://github.com/derailed/k9s/pull/2112) Fix for styles +* [PR #2105](https://github.com/derailed/k9s/pull/2105) Fix the wrong/redundant icon in the prompt bar +* [PR #2103](https://github.com/derailed/k9s/pull/2103) Update carvel.yml to include contexts +* [PR #2096](https://github.com/derailed/k9s/pull/2096) fix: (config) only respect the --command flag once +* [PR #2091](https://github.com/derailed/k9s/pull/2091) Add get-all plugin specific for namespace view +* [PR #2089](https://github.com/derailed/k9s/pull/2089) Resources are rendered using skin.yaml colors +* [PR #2082](https://github.com/derailed/k9s/pull/2082) Fix typo introduced in #2045 + +--- + + © 2023 Imhotep Software LLC. All materials licensed under [Apache v2.0](http://www.apache.org/licenses/LICENSE-2.0) diff --git a/go.mod b/go.mod index a91a272f59..3aba6b95c3 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/derailed/k9s -go 1.20 +go 1.21 require ( github.com/adrg/xdg v0.4.0 @@ -25,12 +25,12 @@ require ( gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.13.1 k8s.io/api v0.28.3 - k8s.io/apiextensions-apiserver v0.28.2 + k8s.io/apiextensions-apiserver v0.28.3 k8s.io/apimachinery v0.28.3 - k8s.io/cli-runtime v0.28.2 + k8s.io/cli-runtime v0.28.3 k8s.io/client-go v0.28.3 - k8s.io/klog/v2 v2.110.1 - k8s.io/kubectl v0.28.2 + k8s.io/klog/v2 v2.100.1 + k8s.io/kubectl v0.28.3 k8s.io/metrics v0.28.3 sigs.k8s.io/yaml v1.3.0 ) @@ -152,8 +152,8 @@ require ( google.golang.org/protobuf v1.30.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apiserver v0.28.2 // indirect - k8s.io/component-base v0.28.2 // indirect + k8s.io/apiserver v0.28.3 // indirect + k8s.io/component-base v0.28.3 // indirect k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 // indirect k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 // indirect oras.land/oras-go v1.2.4 // indirect diff --git a/go.sum b/go.sum index 4ed6620b26..a3e09e5fe8 100644 --- a/go.sum +++ b/go.sum @@ -7,6 +7,7 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03 github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60= +github.com/DATA-DOG/go-sqlmock v1.5.0/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= @@ -19,14 +20,17 @@ github.com/Masterminds/sprig/v3 v3.2.3/go.mod h1:rXcFaZ2zZbLRJv/xSysmlgIM1u11eBa github.com/Masterminds/squirrel v1.5.4 h1:uUcX/aBc8O7Fg9kaISIUsHXdKuqehiXAMQTYX8afzqM= github.com/Masterminds/squirrel v1.5.4/go.mod h1:NNaOrjSoIDfDA40n7sr2tPNZRfjzjA400rg+riTZj10= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= +github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/Microsoft/hcsshim v0.11.0 h1:7EFNIY4igHEXUdj1zXgAyU3fLc7QfOKHbkldRVTBdiM= github.com/Microsoft/hcsshim v0.11.0/go.mod h1:OEthFdQv/AD2RAdzR6Mm1N1KPCztGKDurW1Z8b8VGMM= github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d h1:UrqY+r/OJnIp5u0s1SbQ8dVfLCZJsnvazdBP5hS4iRs= +github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ= github.com/adrg/xdg v0.4.0 h1:RzRqFcjH4nE5C6oTAxhBtoE2IRyjBSa62SCbyPidvls= github.com/adrg/xdg v0.4.0/go.mod h1:N6ag73EX4wyxeaoeHctc1mas01KZgsj5tYiAIwqJE/E= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535 h1:4daAzAu0S6Vi7/lbWECcX0j45yZReDZ56BQsrVBOEEY= github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4= @@ -38,9 +42,13 @@ github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+Ce github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bshuster-repo/logrus-logstash-hook v1.0.0 h1:e+C0SB5R1pu//O4MQ3f9cFuPGoOVeF2fE4Og9otCc70= +github.com/bshuster-repo/logrus-logstash-hook v1.0.0/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk= github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd h1:rFt+Y/IK1aEZkEHchZRSq9OQbsSzIT/OrI8YFFmRIng= +github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8= github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b h1:otBG+dV+YK+Soembjv71DPz3uX/V/6MMlSyD9JBQ6kQ= +github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0BsqsP2LwDJ9aOkm/6J86V6lyAXCoQWGw3K50= github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0 h1:nvj0OLI3YqYXer/kZD8Ri1aaunCxIEsOst1BVJswV0o= +github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE= github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= @@ -53,13 +61,16 @@ github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5P github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= +github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw= github.com/containerd/containerd v1.7.6 h1:oNAVsnhPoy4BTPQivLgTzI9Oleml9l/+eYIDYXRCYo8= github.com/containerd/containerd v1.7.6/go.mod h1:SY6lrkkuJT40BVNO37tlYTSnKJnP5AXBc0fhx0q+TJ4= github.com/containerd/continuity v0.4.2 h1:v3y/4Yz5jwnvqPKJJ+7Wf93fyWoCB3F5EclWG023MDM= +github.com/containerd/continuity v0.4.2/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ/7o4JzpodfroQ= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -72,6 +83,7 @@ github.com/derailed/tcell/v2 v2.3.1-rc.3/go.mod h1:nf68BEL8fjmXQHJT3xZjoZFs2uXOz github.com/derailed/tview v0.8.1 h1:hvNR3LLrWEuaQbPYfBnRn7bYkxCP26K6nX9J+MGlhyw= github.com/derailed/tview v0.8.1/go.mod h1:q+odnnhO6QDPpBT+0dqaWj+X+uoJ6MJehXj9shgP+Cw= github.com/distribution/distribution/v3 v3.0.0-20221208165359-362910506bc2 h1:aBfCb7iqHmDEIp6fBvC/hQUddQfg+3qdYjwzaiP9Hnc= +github.com/distribution/distribution/v3 v3.0.0-20221208165359-362910506bc2/go.mod h1:WHNsWjnIn2V1LYOrME7e8KxSeKunYHsxEm4am0BUtcI= github.com/docker/cli v24.0.6+incompatible h1:fF+XCQCgJjjQNIMjzaSmiKJSCcfcXb3TWTcc7GAneOY= github.com/docker/cli v24.0.6+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= @@ -83,11 +95,13 @@ github.com/docker/docker-credential-helpers v0.7.0/go.mod h1:rETQfLdHNT3foU5kuNk github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c h1:+pKlWGMw7gf6bQ+oDZB4KHQFypsfjYlq/C4rfL7D3g8= +github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA= github.com/docker/go-metrics v0.0.1 h1:AgB/0SvBxihN0X8OR4SjsblXkbMvalQ8cjmtKQ2rQV8= github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1 h1:ZClxb8laGDf5arXfYcAtECDFgAgHklGI8CxgjHnXKJ4= +github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= github.com/emicklei/go-restful/v3 v3.10.1 h1:rc42Y5YTp7Am7CS630D7JmhRjq4UlEUuEKfrDac4bSQ= github.com/emicklei/go-restful/v3 v3.10.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -101,8 +115,11 @@ github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwo github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= +github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/foxcpp/go-mockdns v1.0.0 h1:7jBqxd3WDWwi/6WhDvacvH1XsN3rOLXyHM1uhvIx6FI= +github.com/foxcpp/go-mockdns v1.0.0/go.mod h1:lgRN6+KxQBawyIghpnl5CezHFGS9VLzvtVlwxvzXTQ4= github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= +github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= @@ -136,9 +153,13 @@ github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LB github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= +github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= github.com/gobuffalo/logger v1.0.6 h1:nnZNpxYo0zx+Aj9RfMPBm+x9zAU2OayFh/xrAWi34HU= +github.com/gobuffalo/logger v1.0.6/go.mod h1:J31TBEHR1QLV2683OXTAItYIg8pv2JMHnF/quuAbMjs= github.com/gobuffalo/packd v1.0.1 h1:U2wXfRr4E9DH8IdsDLlRFwTZTK7hLfq9qT/QHXGVe/0= +github.com/gobuffalo/packd v1.0.1/go.mod h1:PP2POP3p3RXGz7Jh6eYEf93S7vA2za6xM7QT85L4+VY= github.com/gobuffalo/packr/v2 v2.8.3 h1:xE1yzvnO56cUC0sTpKR3DIbxZgB54AftTFMhB2XEWlY= +github.com/gobuffalo/packr/v2 v2.8.3/go.mod h1:0SahksCVcx4IMnigTjiFuyldmTrdTctXsOdiU5KwbKc= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= @@ -147,6 +168,7 @@ github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -162,6 +184,7 @@ github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaS github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/gomodule/redigo v1.8.2 h1:H5XSIre1MB5NbPYFp+i1NBbb5qN1W8Y8YAQoAYbkm8k= +github.com/gomodule/redigo v1.8.2/go.mod h1:P9dn9mFrCBvWhGE1wpxx6fgq7BAeLBk+UUUzlpkBYO0= github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= @@ -179,12 +202,14 @@ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec= +github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4= +github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= @@ -198,6 +223,7 @@ github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brv github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc= +github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huandu/xstrings v1.3.3/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/huandu/xstrings v1.4.0 h1:D17IlohoQq4UcpqD7fDk80P7l+lwAmlFaBHgOipl2FU= @@ -221,6 +247,7 @@ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnr github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/karrick/godirwalk v1.16.1 h1:DynhcF+bztK8gooS0+NDJFrdNZjJ3gzVzC545UNA9iw= +github.com/karrick/godirwalk v1.16.1/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= @@ -229,6 +256,7 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxv github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -247,11 +275,15 @@ github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9 github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= github.com/magiconair/properties v1.8.5 h1:b6kJs+EmPFMYGkow9GiUyCyOvIwYetYJ3fSaWak/Gls= +github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/markbates/errx v1.1.0 h1:QDFeR+UP95dO12JgW+tgi2UVfo0V8YBHiUIOaeBPiEI= +github.com/markbates/errx v1.1.0/go.mod h1:PLa46Oex9KNbVDZhKel8v1OT7hD5JZ2eI7AHhA0wswc= github.com/markbates/oncer v1.0.0 h1:E83IaVAHygyndzPimgUYJjbshhDTALZyXxvk9FOlQRY= +github.com/markbates/oncer v1.0.0/go.mod h1:Z59JA581E9GP6w96jai+TGqafHPW+cPfRxz2aSZ0mcI= github.com/markbates/safe v1.0.1 h1:yjZkbvRM6IzKj9tlu/zMJLS0n/V351OZWRnF3QfaUxI= +github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= @@ -262,10 +294,12 @@ github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWV github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/mattn/go-sqlite3 v1.14.15 h1:vfoHhTN1af61xCRSWzFIWzx2YskyMTwHLrExkBOjvxI= +github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/miekg/dns v1.1.25 h1:dFwPR6SfLtrSwgDcIq2bcU/gVutB4sNApq2HBdqcakg= +github.com/miekg/dns v1.1.25/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= @@ -279,6 +313,7 @@ github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQ github.com/moby/spdystream v0.2.0 h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8= github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= github.com/moby/sys/mountinfo v0.6.2 h1:BzJjoreD5BMFNmD9Rus6gdd1pLuecOFPt8wC+Vygl78= +github.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI= github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -303,6 +338,7 @@ github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108 github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= github.com/onsi/ginkgo/v2 v2.9.4 h1:xR7vG4IXt5RWx6FfIjyAtsoMAtnc3C/rFXBBd2AjZwE= +github.com/onsi/ginkgo/v2 v2.9.4/go.mod h1:gCQYp2Q+kSoIj7ykSVb9nskRSsR6PUj4AiLywzIhbKM= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.27.6 h1:ENqfyGeS5AX/rlXDd/ETokDz93u0YufY1Pgxuy/PvWE= @@ -316,12 +352,14 @@ github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR github.com/petergtz/pegomock v2.9.0+incompatible h1:BKfb5XfkJfehe5T+O1xD4Zm26Sb9dnRj7tHxLYwUPiI= github.com/petergtz/pegomock v2.9.0+incompatible/go.mod h1:nuBLWZpVyv/fLo56qTwt/AUau7jgouO1h7bEvZCq82o= github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5 h1:Ii+DKncOVM8Cu1Hc+ETb5K+23HdAMvESYE3ZJ5b5cMI= +github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5/go.mod h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/poy/onpar v1.1.2 h1:QaNrNiZx0+Nar5dLgTVp5mXkyoVFIbepjyEoGSnhbAY= +github.com/poy/onpar v1.1.2/go.mod h1:6X8FLNoxyr9kkmnlqpK6LSoiOtrO6MICtWwEuWkLjzg= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= @@ -347,6 +385,7 @@ github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJ github.com/rivo/uniseg v0.4.3 h1:utMvzDsuh3suAEnhH0RdHmoPbU648o6CvXxTx4SBMOw= github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= +github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.31.0 h1:FcTR3NnLWW+NnTwwhFWiJSZr4ECLpqCm6QsEnyvbV4A= github.com/rs/zerolog v1.31.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= @@ -357,6 +396,7 @@ github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQD github.com/sahilm/fuzzy v0.1.0 h1:FzWGaw2Opqyu+794ZQ9SYifWv2EIXpwP4q8dY1kDAwI= github.com/sahilm/fuzzy v0.1.0/go.mod h1:VFvziUEIMCrT6A6tw2RFIXPXXmzXbOsSHF0DOI8ZK9Y= github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0= +github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8= github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= @@ -397,9 +437,13 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43 h1:+lm10QQTNSBd8DVTNGHx7o/IKu9HYDvLMffDhbyLccI= +github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs= github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50 h1:hlE8//ciYMztlGpl/VA+Zm1AcTPHYkHJPbHqE6WJUXE= +github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA= github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f h1:ERexzlUfuTvpE74urLSbIQW0Z/6hF9t8U4NsJLaioAY= +github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= +go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/otel v1.14.0 h1:/79Huy8wbf5DnIPhemGB+zEPVwnN6fuQybr/SRXa6hM= go.opentelemetry.io/otel v1.14.0/go.mod h1:o4buv+dJzx8rohcUeRmWUZhqupFvzWis188WlggnNeU= go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyKcFq/M= @@ -422,6 +466,7 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk= +golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -506,6 +551,7 @@ golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.8.0 h1:vSDcovVPld282ceKgDimkRSC8kpaH1dgyc9UMzlt84Y= +golang.org/x/tools v0.8.0/go.mod h1:JxBZ99ISMI5ViVkT1tr6tdNmXeTrcpVSD3vZ1RsRdN4= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -558,30 +604,31 @@ gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.4.0 h1:ZazjZUfuVeZGLAmlKKuyv3IKP5orXcwtOwDQH6YVr6o= +gotest.tools/v3 v3.4.0/go.mod h1:CtbdzLSsqVhDgMtKsx03ird5YTGB3ar27v0u/yKBW5g= helm.sh/helm/v3 v3.13.1 h1:DG+XLGzBJeZvMLlMbm6bPDLV1dGaVW9eZsDoUd1/LM0= helm.sh/helm/v3 v3.13.1/go.mod h1:TdQRMiq46CSWcc68Hb0uVhvAWusaN90YwAV54cz6JzU= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= k8s.io/api v0.28.3 h1:Gj1HtbSdB4P08C8rs9AR94MfSGpRhJgsS+GF9V26xMM= k8s.io/api v0.28.3/go.mod h1:MRCV/jr1dW87/qJnZ57U5Pak65LGmQVkKTzf3AtKFHc= -k8s.io/apiextensions-apiserver v0.28.2 h1:J6/QRWIKV2/HwBhHRVITMLYoypCoPY1ftigDM0Kn+QU= -k8s.io/apiextensions-apiserver v0.28.2/go.mod h1:5tnkxLGa9nefefYzWuAlWZ7RZYuN/765Au8cWLA6SRg= +k8s.io/apiextensions-apiserver v0.28.3 h1:Od7DEnhXHnHPZG+W9I97/fSQkVpVPQx2diy+2EtmY08= +k8s.io/apiextensions-apiserver v0.28.3/go.mod h1:NE1XJZ4On0hS11aWWJUTNkmVB03j9LM7gJSisbRt8Lc= k8s.io/apimachinery v0.28.3 h1:B1wYx8txOaCQG0HmYF6nbpU8dg6HvA06x5tEffvOe7A= k8s.io/apimachinery v0.28.3/go.mod h1:uQTKmIqs+rAYaq+DFaoD2X7pcjLOqbQX2AOiO0nIpb8= -k8s.io/apiserver v0.28.2 h1:rBeYkLvF94Nku9XfXyUIirsVzCzJBs6jMn3NWeHieyI= -k8s.io/apiserver v0.28.2/go.mod h1:f7D5e8wH8MWcKD7azq6Csw9UN+CjdtXIVQUyUhrtb+E= -k8s.io/cli-runtime v0.28.2 h1:64meB2fDj10/ThIMEJLO29a1oujSm0GQmKzh1RtA/uk= -k8s.io/cli-runtime v0.28.2/go.mod h1:bTpGOvpdsPtDKoyfG4EG041WIyFZLV9qq4rPlkyYfDA= +k8s.io/apiserver v0.28.3 h1:8Ov47O1cMyeDzTXz0rwcfIIGAP/dP7L8rWbEljRcg5w= +k8s.io/apiserver v0.28.3/go.mod h1:YIpM+9wngNAv8Ctt0rHG4vQuX/I5rvkEMtZtsxW2rNM= +k8s.io/cli-runtime v0.28.3 h1:lvuJYVkwCqHEvpS6KuTZsUVwPePFjBfSGvuaLl2SxzA= +k8s.io/cli-runtime v0.28.3/go.mod h1:jeX37ZPjIcENVuXDDTskG3+FnVuZms5D9omDXS/2Jjc= k8s.io/client-go v0.28.3 h1:2OqNb72ZuTZPKCl+4gTKvqao0AMOl9f3o2ijbAj3LI4= k8s.io/client-go v0.28.3/go.mod h1:LTykbBp9gsA7SwqirlCXBWtK0guzfhpoW4qSm7i9dxo= -k8s.io/component-base v0.28.2 h1:Yc1yU+6AQSlpJZyvehm/NkJBII72rzlEsd6MkBQ+G0E= -k8s.io/component-base v0.28.2/go.mod h1:4IuQPQviQCg3du4si8GpMrhAIegxpsgPngPRR/zWpzc= -k8s.io/klog/v2 v2.110.1 h1:U/Af64HJf7FcwMcXyKm2RPM22WZzyR7OSpYj5tg3cL0= -k8s.io/klog/v2 v2.110.1/go.mod h1:YGtd1984u+GgbuZ7e08/yBuAfKLSO0+uR1Fhi6ExXjo= +k8s.io/component-base v0.28.3 h1:rDy68eHKxq/80RiMb2Ld/tbH8uAE75JdCqJyi6lXMzI= +k8s.io/component-base v0.28.3/go.mod h1:fDJ6vpVNSk6cRo5wmDa6eKIG7UlIQkaFmZN2fYgIUD8= +k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg= +k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 h1:LyMgNKD2P8Wn1iAwQU5OhxCKlKJy0sHc+PcDwFB24dQ= k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9/go.mod h1:wZK2AVp1uHCp4VamDVgBP2COHZjqD1T68Rf0CM3YjSM= -k8s.io/kubectl v0.28.2 h1:fOWOtU6S0smdNjG1PB9WFbqEIMlkzU5ahyHkc7ESHgM= -k8s.io/kubectl v0.28.2/go.mod h1:6EQWTPySF1fn7yKoQZHYf9TPwIl2AygHEcJoxFekr64= +k8s.io/kubectl v0.28.3 h1:H1Peu1O3EbN9zHkJCcvhiJ4NUj6lb88sGPO5wrWIM6k= +k8s.io/kubectl v0.28.3/go.mod h1:RDAudrth/2wQ3Sg46fbKKl4/g+XImzvbsSRZdP2RiyE= k8s.io/metrics v0.28.3 h1:w2s3kVi7HulXqCVDFkF4hN/OsL1tXTTb4Biif995h/g= k8s.io/metrics v0.28.3/go.mod h1:OZZ23AHFojPzU6r3xoHGRUcV3I9pauLua+07sAUbwLc= k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 h1:qY1Ad8PODbnymg2pRbkyMT/ylpTrCM8P2RJ0yroCyIk= diff --git a/internal/client/client.go b/internal/client/client.go index 1eef5d60fd..a7fcf55889 100644 --- a/internal/client/client.go +++ b/internal/client/client.go @@ -19,6 +19,7 @@ import ( "k8s.io/client-go/dynamic" "k8s.io/client-go/kubernetes" restclient "k8s.io/client-go/rest" + cmdutil "k8s.io/kubectl/pkg/cmd/util" metricsapi "k8s.io/metrics/pkg/apis/metrics" "k8s.io/metrics/pkg/client/clientset/versioned" ) @@ -32,6 +33,9 @@ const ( var supportedMetricsAPIVersions = []string{"v1beta1"} +// Namespaces tracks a collection of namespace names. +type Namespaces map[string]struct{} + // APIClient represents a Kubernetes api client. type APIClient struct { client, logClient kubernetes.Interface @@ -209,7 +213,7 @@ func (a *APIClient) ServerVersion() (*version.Info, error) { // ValidNamespaces returns all available namespaces. func (a *APIClient) ValidNamespaces() ([]v1.Namespace, error) { if a == nil { - return []v1.Namespace{}, nil + return nil, fmt.Errorf("validNamespaces: no available client found") } if nn, ok := a.cache.Get("validNamespaces"); ok { @@ -282,6 +286,9 @@ func (a *APIClient) Config() *Config { // HasMetrics checks if the cluster supports metrics. func (a *APIClient) HasMetrics() bool { err := a.supportsMetricsResources() + if err != nil { + log.Debug().Msgf("Metrics server detect failed: %s", err) + } return err == nil } @@ -348,6 +355,7 @@ func (a *APIClient) CachedDiscovery() (*disk.CachedDiscoveryClient, error) { if err != nil { return nil, err } + httpCacheDir := filepath.Join(mustHomeDir(), ".kube", "http-cache") discCacheDir := filepath.Join(mustHomeDir(), ".kube", "cache", "discovery", toHostDir(cfg.Host)) @@ -446,7 +454,9 @@ func (a *APIClient) supportsMetricsResources() error { a.cache.Add(cacheMXAPIKey, supported, cacheExpiry) }() - dial, err := a.CachedDiscovery() + cfg := cmdutil.NewMatchVersionFlags(a.config.flags) + f := cmdutil.NewFactory(cfg) + dial, err := f.ToDiscoveryClient() if err != nil { log.Warn().Err(err).Msgf("Unable to dial discovery API") return err diff --git a/internal/client/config.go b/internal/client/config.go index bb6d63f954..e9373dfde6 100644 --- a/internal/client/config.go +++ b/internal/client/config.go @@ -149,8 +149,8 @@ func (c *Config) RenameContext(old string, new string) error { if err != nil { return err } - if err := clientcmd.ModifyConfig(acc, cfg, true); err != nil { - return err + if e := clientcmd.ModifyConfig(acc, cfg, true); e != nil { + return e } current, err := c.CurrentContextName() if err != nil { diff --git a/internal/dao/log_item.go b/internal/dao/log_item.go index 2deb3f177a..2a814bca4b 100644 --- a/internal/dao/log_item.go +++ b/internal/dao/log_item.go @@ -70,8 +70,8 @@ func (l *LogItem) Render(paint string, showTime bool, bb *bytes.Buffer) { bb.WriteString("[gray::b]") bb.Write(l.Bytes[:index]) bb.WriteString(" ") - for i := len(l.Bytes[:index]); i < 30; i++ { - bb.WriteByte(' ') + if l := 30 - len(l.Bytes[:index]); l > 0 { + bb.Write(bytes.Repeat([]byte{' '}, l)) } bb.WriteString("[-::-]") } diff --git a/internal/dao/log_item_test.go b/internal/dao/log_item_test.go index 065dbfa0ae..0e4e78d8a9 100644 --- a/internal/dao/log_item_test.go +++ b/internal/dao/log_item_test.go @@ -91,7 +91,7 @@ func TestLogItemRender(t *testing.T) { } } -func BenchmarkLogItemRender(b *testing.B) { +func BenchmarkLogItemRenderTS(b *testing.B) { s := []byte(fmt.Sprintf("%s %s\n", "2018-12-14T10:36:43.326972-07:00", "Testing 1,2,3...")) i := dao.NewLogItem(s) i.Pod, i.Container = "fred", "blee" diff --git a/internal/dao/node.go b/internal/dao/node.go index 09540d865e..b878d0ea81 100644 --- a/internal/dao/node.go +++ b/internal/dao/node.go @@ -2,6 +2,7 @@ package dao import ( "context" + "errors" "fmt" "io" @@ -83,7 +84,9 @@ func (o DrainOptions) toDrainHelper(k kubernetes.Interface, w io.Writer) drain.H // Drain drains a node. func (n *Node) Drain(path string, opts DrainOptions, w io.Writer) error { - _ = n.ToggleCordon(path, true) + if err := n.ToggleCordon(path, true); err != nil { + return err + } dial, err := n.GetFactory().Client().Dial() if err != nil { @@ -97,7 +100,7 @@ func (n *Node) Drain(path string, opts DrainOptions, w io.Writer) error { return err } } - return errs[0] + return errors.Join(errs...) } if err := h.DeleteOrEvictPods(dd.Pods()); err != nil { diff --git a/internal/dao/pod.go b/internal/dao/pod.go index dfa111f9bf..10eaa888a8 100644 --- a/internal/dao/pod.go +++ b/internal/dao/pod.go @@ -181,7 +181,7 @@ func (p *Pod) GetInstance(fqn string) (*v1.Pod, error) { func (p *Pod) TailLogs(ctx context.Context, opts *LogOptions) ([]LogChan, error) { fac, ok := ctx.Value(internal.KeyFactory).(*watch.Factory) if !ok { - return nil, errors.New("No factory in context") + return nil, errors.New("no factory in context") } o, err := fac.Get(p.gvr.String(), opts.Path, true, labels.Everything()) if err != nil { diff --git a/internal/ui/dialog/transfer.go b/internal/ui/dialog/transfer.go new file mode 100644 index 0000000000..7d51cba408 --- /dev/null +++ b/internal/ui/dialog/transfer.go @@ -0,0 +1,107 @@ +package dialog + +import ( + "strings" + + "github.com/derailed/k9s/internal/config" + "github.com/derailed/k9s/internal/ui" + "github.com/derailed/tview" +) + +const confirmKey = "confirm" + +type TransferFn func(from, to, co string, download, no_preserve bool) bool + +type TransferDialogOpts struct { + Containers []string + Pod string + Title, Message string + Ack TransferFn + Cancel cancelFunc +} + +func ShowUploads(styles config.Dialog, pages *ui.Pages, opts TransferDialogOpts) { + f := tview.NewForm() + f.SetItemPadding(0) + f.SetButtonsAlign(tview.AlignCenter). + SetButtonBackgroundColor(styles.ButtonBgColor.Color()). + SetButtonTextColor(styles.ButtonFgColor.Color()). + SetLabelColor(styles.LabelFgColor.Color()). + SetFieldTextColor(styles.FieldFgColor.Color()) + f.AddButton("Cancel", func() { + dismissConfirm(pages) + opts.Cancel() + }) + + modal := tview.NewModalForm("<"+opts.Title+">", f) + + from, to := opts.Pod, "" + var fromField, toField *tview.InputField + download := true + f.AddCheckbox("Download:", download, func(_ string, flag bool) { + if flag { + modal.SetText(strings.Replace(opts.Message, "Upload", "Download", 1)) + } else { + modal.SetText(strings.Replace(opts.Message, "Download", "Upload", 1)) + } + download = flag + from, to = to, from + fromField.SetText(from) + toField.SetText(to) + }) + + f.AddInputField("From:", from, 40, nil, func(t string) { + from = t + }) + f.AddInputField("To:", to, 40, nil, func(t string) { + to = t + }) + fromField, _ = f.GetFormItemByLabel("From:").(*tview.InputField) + toField, _ = f.GetFormItemByLabel("To:").(*tview.InputField) + + var no_preserve bool + f.AddCheckbox("NoPreserve:", no_preserve, func(_ string, f bool) { + no_preserve = f + }) + var co string + if len(opts.Containers) > 0 { + co = opts.Containers[0] + } + f.AddInputField("Container:", co, 30, nil, func(t string) { + co = t + }) + + f.AddButton("OK", func() { + if !opts.Ack(from, to, co, download, no_preserve) { + return + } + dismissConfirm(pages) + opts.Cancel() + }) + for i := 0; i < 2; i++ { + b := f.GetButton(i) + if b == nil { + continue + } + b.SetBackgroundColorActivated(styles.ButtonFocusBgColor.Color()) + b.SetLabelColorActivated(styles.ButtonFocusFgColor.Color()) + } + f.SetFocus(0) + + message := opts.Message + if len(opts.Containers) > 1 { + message += "\nAvailable Containers:" + strings.Join(opts.Containers, ",") + } + modal.SetText(message) + modal.SetTextColor(styles.FgColor.Color()) + modal.SetDoneFunc(func(int, string) { + dismissConfirm(pages) + opts.Cancel() + }) + pages.AddPage(confirmKey, modal, false, false) + pages.ShowPage(confirmKey) +} + +func dismissConfirm(pages *ui.Pages) { + pages.RemovePage(confirmKey) +} diff --git a/internal/ui/menu.go b/internal/ui/menu.go index 41c02b8400..02cbedbe79 100644 --- a/internal/ui/menu.go +++ b/internal/ui/menu.go @@ -169,10 +169,9 @@ func (m *Menu) formatMenu(h model.MenuHint, size int) string { // Helpers... func keyConv(s string) string { - if !strings.Contains(s, "alt") { + if s == "" || !strings.Contains(s, "alt") { return s } - if runtime.GOOS != "darwin" { return s } @@ -185,8 +184,8 @@ func Truncate(str string, width int) string { return runewidth.Truncate(str, width, string(tview.SemigraphicsHorizontalEllipsis)) } -func toMnemonic(s string) string { - if len(s) == 0 { +func ToMnemonic(s string) string { + if s == "" { return s } @@ -197,6 +196,7 @@ func formatNSMenu(i int, name string, styles config.Frame) string { fmat := strings.Replace(menuIndexFmt, "[key", "["+styles.Menu.NumKeyColor.String(), 1) fmat = strings.Replace(fmat, ":bg:", ":"+styles.Title.BgColor.String()+":", -1) fmat = strings.Replace(fmat, "[fg", "["+styles.Menu.FgColor.String(), 1) + return fmt.Sprintf(fmat, i, name) } @@ -205,5 +205,6 @@ func formatPlainMenu(h model.MenuHint, size int, styles config.Frame) string { fmat := strings.Replace(menuFmt, "[key", "["+styles.Menu.KeyColor.String(), 1) fmat = strings.Replace(fmat, "[fg", "["+styles.Menu.FgColor.String(), 1) fmat = strings.Replace(fmat, ":bg:", ":"+styles.Title.BgColor.String()+":", -1) - return fmt.Sprintf(fmat, toMnemonic(h.Mnemonic), h.Description) + + return fmt.Sprintf(fmat, ToMnemonic(h.Mnemonic), h.Description) } diff --git a/internal/ui/table.go b/internal/ui/table.go index ff9813e632..08d57436e9 100644 --- a/internal/ui/table.go +++ b/internal/ui/table.go @@ -31,11 +31,12 @@ type ( // Table represents tabular data. type Table struct { - gvr client.GVR - sortCol SortColumn - header render.Header - Path string - Extras string + gvr client.GVR + sortCol SortColumn + manualSort bool + header render.Header + Path string + Extras string *SelectTable actions KeyActions cmdBuff *model.FishBuff @@ -46,7 +47,6 @@ type Table struct { wide bool toast bool hasMetrics bool - manualSort bool } // NewTable returns a new table view. @@ -86,8 +86,7 @@ func (t *Table) GVR() client.GVR { return t.gvr } // ViewSettingsChanged notifies listener the view configuration changed. func (t *Table) ViewSettingsChanged(settings config.ViewSetting) { - t.manualSort = false // make user changes to the sortColumn take effect - t.viewSetting = &settings + t.viewSetting, t.manualSort = &settings, false t.Refresh() } @@ -208,7 +207,7 @@ func (t *Table) doUpdate(data *render.TableData) { // if the sortCol has not been modified manually if t.viewSetting != nil && t.viewSetting.SortColumn != "" && !t.manualSort { tokens := strings.Split(t.viewSetting.SortColumn, ":") - if custData.Header.IndexOf(tokens[0], false) >= 0 { + if custData.Header.IndexOf(tokens[0], false) >= 0 && !t.manualSort { t.sortCol.name, t.sortCol.asc = tokens[0], true if len(tokens) == 2 && tokens[1] == "desc" { t.sortCol.asc = false @@ -315,6 +314,7 @@ func (t *Table) buildRow(r int, re, ore render.RowEvent, h render.Header, pads M // SortColCmd designates a sorted column. func (t *Table) SortColCmd(name string, asc bool) func(evt *tcell.EventKey) *tcell.EventKey { return func(evt *tcell.EventKey) *tcell.EventKey { + t.manualSort = true t.sortCol.asc = !t.sortCol.asc if t.sortCol.name != name { t.sortCol.asc = asc diff --git a/internal/view/actions.go b/internal/view/actions.go index 658b199bf2..ff6b2a1c71 100644 --- a/internal/view/actions.go +++ b/internal/view/actions.go @@ -1,6 +1,7 @@ package view import ( + "errors" "fmt" "strings" @@ -101,7 +102,7 @@ func pluginActions(r Runner, aa ui.KeyActions) { } _, ok := aa[key] if ok { - log.Warn().Err(fmt.Errorf("Doh! you are trying to override an existing command `%s", k)).Msg("Invalid shortcut") + log.Warn().Msgf("Invalid shortcut. You are trying to override an existing command `%s", k) continue } aa[key] = ui.NewKeyAction( @@ -139,11 +140,20 @@ func pluginAction(r Runner, p config.Plugin) ui.ActionHandler { pipes: p.Pipes, args: args, } - if run(r.App(), opts) { - r.App().Flash().Info("Plugin command launched successfully!") + suspend, errChan := run(r.App(), opts) + if !suspend { + r.App().Flash().Info("Plugin command failed!") return } - r.App().Flash().Info("Plugin command failed!") + var errs error + for e := range errChan { + errs = errors.Join(errs, e) + } + if errs != nil { + r.App().cowCmd(errs.Error()) + return + } + r.App().Flash().Info("Plugin command launched successfully!") } if p.Confirm { msg := fmt.Sprintf("Run?\n%s %s", p.Command, strings.Join(args, " ")) diff --git a/internal/view/app.go b/internal/view/app.go index 7c99521aa4..b0bf03566c 100644 --- a/internal/view/app.go +++ b/internal/view/app.go @@ -89,14 +89,14 @@ func (a *App) Init(version string, rate int) error { a.SetInputCapture(a.keyboard) a.bindKeys() if a.Conn() == nil { - return errors.New("No client connection detected") + return errors.New("no client connection detected") } ns := a.Config.ActiveNamespace() a.factory = watch.NewFactory(a.Conn()) ok, err := a.isValidNS(ns) if !ok && err == nil { - return fmt.Errorf("Invalid namespace %s", ns) + return fmt.Errorf("invalid namespace %s", ns) } a.initFactory(ns) @@ -206,8 +206,7 @@ func (a *App) ActiveView() model.Component { } func (a *App) toggleHeader(header, logo bool) { - a.showHeader = header - a.showLogo = logo + a.showHeader, a.showLogo = header, logo flex, ok := a.Main.GetPrimitive("main").(*tview.Flex) if !ok { log.Fatal().Msg("Expecting valid flex view") @@ -285,7 +284,7 @@ func (a *App) Resume() { } func (a *App) clusterUpdater(ctx context.Context) { - if err := a.refreshCluster(); err != nil { + if err := a.refreshCluster(ctx); err != nil { log.Error().Err(err).Msgf("Cluster updater failed!") return } @@ -298,7 +297,7 @@ func (a *App) clusterUpdater(ctx context.Context) { log.Debug().Msg("ClusterInfo updater canceled!") return case <-time.After(delay): - if err := a.refreshCluster(); err != nil { + if err := a.refreshCluster(ctx); err != nil { log.Error().Err(err).Msgf("ClusterUpdater failed") if delay = bf.NextBackOff(); delay == backoff.Stop { a.BailOut() @@ -312,7 +311,7 @@ func (a *App) clusterUpdater(ctx context.Context) { } } -func (a *App) refreshCluster() error { +func (a *App) refreshCluster(context.Context) error { c := a.Content.Top() if ok := a.Conn().CheckConnectivity(); ok { if atomic.LoadInt32(&a.conRetry) > 0 { @@ -338,7 +337,7 @@ func (a *App) refreshCluster() error { } if count > 0 { a.Status(model.FlashWarn, fmt.Sprintf("Dial K8s Toast [%d/%d]", count, maxConnRetry)) - return fmt.Errorf("Conn check failed (%d/%d)", count, maxConnRetry) + return fmt.Errorf("conn check failed (%d/%d)", count, maxConnRetry) } // Reload alias @@ -367,7 +366,7 @@ func (a *App) switchNS(ns string) error { return err } if !ok { - return fmt.Errorf("Invalid namespace %q", ns) + return fmt.Errorf("invalid namespace %q", ns) } if err := a.Config.SetActiveNamespace(ns); err != nil { return err diff --git a/internal/view/browser.go b/internal/view/browser.go index ab9f46f8c7..0678bfacd3 100644 --- a/internal/view/browser.go +++ b/internal/view/browser.go @@ -2,7 +2,6 @@ package view import ( "context" - "errors" "fmt" "sort" "strconv" @@ -145,7 +144,7 @@ func (b *Browser) Start() { b.Table.Start() b.CmdBuff().AddListener(b) if err := b.GetModel().Watch(b.prepareContext()); err != nil { - b.App().Flash().Err(fmt.Errorf("Watcher failed for %s -- %w", b.GVR(), err)) + b.App().Flash().Errf("Watcher failed for %s -- %s", b.GVR(), err) } } @@ -373,7 +372,7 @@ func (b *Browser) editCmd(evt *tcell.EventKey) *tcell.EventKey { ns = n } if ok, err := b.app.Conn().CanI(ns, b.GVR().String(), []string{"patch"}); !ok || err != nil { - b.App().Flash().Err(fmt.Errorf("Current user can't edit resource %s", b.GVR())) + b.App().Flash().Errf("Current user can't edit resource %s", b.GVR()) return nil } @@ -386,8 +385,8 @@ func (b *Browser) editCmd(evt *tcell.EventKey) *tcell.EventKey { if ns != client.AllNamespaces { args = append(args, "-n", ns) } - if !runK(b.app, shellOpts{clear: true, args: args}) { - b.app.Flash().Err(errors.New("Edit exec failed")) + if err := runK(b.app, shellOpts{clear: true, args: args}); err != nil { + b.app.Flash().Errf("Edit command failed: %s", err) } } @@ -543,7 +542,7 @@ func (b *Browser) simpleDelete(selections []string, msg string) { } func (b *Browser) resourceDelete(selections []string, msg string) { - dialog.ShowDelete(b.app.Styles.Dialog(), b.app.Content.Pages, msg, func(propagation *metav1.DeletionPropagation, force bool) { + okFn := func(propagation *metav1.DeletionPropagation, force bool) { b.ShowDeleted() if len(selections) > 1 { b.app.Flash().Infof("Delete %d marked %s", len(selections), b.GVR()) @@ -563,5 +562,6 @@ func (b *Browser) resourceDelete(selections []string, msg string) { b.GetTable().DeleteMark(sel) } b.refresh() - }, func() {}) + } + dialog.ShowDelete(b.app.Styles.Dialog(), b.app.Content.Pages, msg, okFn, func() {}) } diff --git a/internal/view/command.go b/internal/view/command.go index 55dae27be9..1cc473fb5c 100644 --- a/internal/view/command.go +++ b/internal/view/command.go @@ -83,7 +83,7 @@ func allowedXRay(gvr client.GVR) bool { func (c *Command) xrayCmd(cmd string) error { tokens := strings.Split(cmd, " ") if len(tokens) < 2 { - return errors.New("You must specify a resource") + return errors.New("you must specify a resource") } gvr, ok := c.alias.AsGVR(tokens[1]) if !ok { @@ -108,7 +108,7 @@ func (c *Command) xrayCmd(cmd string) error { return c.exec(cmd, "xrays", x, true) } -// Exec the Command by showing associated display. +// Run execs the command by showing associated display. func (c *Command) run(cmd, path string, clearStack bool) error { if c.specialCmd(cmd, path) { return nil @@ -119,6 +119,11 @@ func (c *Command) run(cmd, path string, clearStack bool) error { if err != nil { return err } + var cns string + tt := strings.Split(gvr, " ") + if len(tt) == 2 { + gvr, cns = tt[0], tt[1] + } switch command { case "ctx", "context", "contexts": @@ -128,7 +133,7 @@ func (c *Command) run(cmd, path string, clearStack bool) error { return c.exec(cmd, gvr, c.componentFor(gvr, path, v), clearStack) case "dir": if len(cmds) != 2 { - return errors.New("You must specify a directory") + return errors.New("you must specify a directory") } return c.app.dirCmd(cmds[1]) default: @@ -137,6 +142,9 @@ func (c *Command) run(cmd, path string, clearStack bool) error { if len(cmds) == 2 { ns = cmds[1] } + if cns != "" { + ns = cns + } if err := c.app.switchNS(ns); err != nil { return err } @@ -254,12 +262,12 @@ func (c *Command) exec(cmd, gvr string, comp model.Component, clearStack bool) ( } else { _ = c.run(hh[0], "", true) } - err = fmt.Errorf("Invalid command %q", cmd) + err = fmt.Errorf("invalid command %q", cmd) } }() if comp == nil { - return fmt.Errorf("No component found for %s", gvr) + return fmt.Errorf("no component found for %s", gvr) } c.app.Flash().Infof("Viewing %s...", client.NewGVR(gvr).R()) if tokens := strings.Split(cmd, " "); len(tokens) >= 2 { diff --git a/internal/view/container.go b/internal/view/container.go index 1ccad276c8..9d39eda48e 100644 --- a/internal/view/container.go +++ b/internal/view/container.go @@ -170,7 +170,7 @@ func (c *Container) portFwdCmd(evt *tcell.EventKey) *tcell.EventKey { } if _, ok := c.App().factory.ForwarderFor(fwFQN(c.GetTable().Path, path)); ok { - c.App().Flash().Err(fmt.Errorf("A port-forward already exists on container %s", c.GetTable().Path)) + c.App().Flash().Errf("A port-forward already exists on container %s", c.GetTable().Path) return nil } diff --git a/internal/view/context.go b/internal/view/context.go index fd57b741e4..4896d06a29 100644 --- a/internal/view/context.go +++ b/internal/view/context.go @@ -118,12 +118,12 @@ func useContext(app *App, name string) error { } switcher, ok := res.(dao.Switchable) if !ok { - return errors.New("Expecting a switchable resource") + return errors.New("expecting a switchable resource") } if err := switcher.Switch(name); err != nil { log.Error().Err(err).Msgf("Context switch failed") return err } - + return app.switchContext(name) } diff --git a/internal/view/dir.go b/internal/view/dir.go index a16f91372e..38700a9345 100644 --- a/internal/view/dir.go +++ b/internal/view/dir.go @@ -2,7 +2,6 @@ package view import ( "context" - "errors" "fmt" "os" "path" @@ -121,7 +120,7 @@ func (d *Dir) editCmd(evt *tcell.EventKey) *tcell.EventKey { d.Stop() defer d.Start() if !edit(d.App(), shellOpts{clear: true, args: []string{sel}}) { - d.App().Flash().Err(errors.New("Failed to launch editor")) + d.App().Flash().Errf("Failed to launch editor") } return nil @@ -230,18 +229,18 @@ func (d *Dir) delCmd(evt *tcell.EventKey) *tcell.EventKey { } opts := []string{"-f"} - msgRessource := "manifest" + msgResource := "manifest" if containsDir(sel) { opts = append(opts, "-R") } if isKustomized(sel) { opts = []string{"-k"} - msgRessource = "kustomization" + msgResource = "kustomization" } d.Stop() defer d.Start() - msg := fmt.Sprintf("Delete resource(s) in %s %s", msgRessource, sel) + msg := fmt.Sprintf("Delete resource(s) in %s %s", msgResource, sel) dialog.ShowConfirm(d.App().Styles.Dialog(), d.App().Content.Pages, "Confirm Delete", msg, func() { args := make([]string, 0, 10) args = append(args, "delete") diff --git a/internal/view/exec.go b/internal/view/exec.go index 95a95035c0..67c2366a86 100644 --- a/internal/view/exec.go +++ b/internal/view/exec.go @@ -39,15 +39,17 @@ type shellOpts struct { args []string } -func runK(a *App, opts shellOpts) bool { +func (s shellOpts) String() string { + return fmt.Sprintf("%s %s", s.binary, strings.Join(s.args, " ")) +} + +func runK(a *App, opts shellOpts) error { bin, err := exec.LookPath("kubectl") if errors.Is(err, exec.ErrDot) { - log.Error().Err(err).Msgf("kubectl command must not be in the current working directory") - return false + return fmt.Errorf("kubectl command must not be in the current working directory: %w", err) } if err != nil { - log.Error().Err(err).Msgf("kubectl command is not in your path") - return false + return fmt.Errorf("kubectl command is not in your path: %w", err) } args := []string{opts.args[0]} if u, err := a.Conn().Config().ImpersonateUser(); err == nil { @@ -66,20 +68,42 @@ func runK(a *App, opts shellOpts) bool { if len(args) > 0 { opts.args = append(args, opts.args[1:]...) } - opts.binary, opts.background = bin, false + opts.binary = bin - return run(a, opts) + suspended, errChan := run(a, opts) + if !suspended { + return fmt.Errorf("unable to run command") + } + var errs error + for e := range errChan { + errs = errors.Join(errs, e) + } + + return errs } -func run(a *App, opts shellOpts) bool { +func run(a *App, opts shellOpts) (bool, chan error) { + errChan := make(chan error, 1) + + if opts.background { + if err := execute(opts); err != nil { + errChan <- err + a.Flash().Errf("Exec failed %q: %s", opts, err) + } + close(errChan) + return true, errChan + } + a.Halt() defer a.Resume() return a.Suspend(func() { if err := execute(opts); err != nil { - a.Flash().Errf("Command exited: %v", err) + errChan <- err + a.Flash().Errf("Exec failed %q: %s", opts, err) } - }) + close(errChan) + }), errChan } func edit(a *App, opts shellOpts) bool { @@ -93,7 +117,15 @@ func edit(a *App, opts shellOpts) bool { } opts.binary, opts.background = bin, false - return run(a, opts) + suspended, errChan := run(a, opts) + if !suspended { + a.Flash().Errf("edit command failed") + } + for e := range errChan { + a.Flash().Err(e) + return false + } + return true } func execute(opts shellOpts) error { @@ -113,8 +145,8 @@ func execute(opts shellOpts) error { go func(cancel context.CancelFunc) { defer log.Debug().Msgf("SIGNAL_GOR - BAILED!!") select { - case <-sigChan: - log.Debug().Msgf("Command canceled with signal!") + case sig := <-sigChan: + log.Debug().Msgf("Command canceled with signal! %#v", sig) cancel() case <-ctx.Done(): log.Debug().Msgf("SIGNAL Context CANCELED!") @@ -123,7 +155,7 @@ func execute(opts shellOpts) error { cmds := make([]*exec.Cmd, 0, 1) cmd := exec.CommandContext(ctx, opts.binary, opts.args...) - log.Debug().Msgf("RUNNING> %s", cmd) + log.Debug().Msgf("RUNNING> %s", opts) cmds = append(cmds, cmd) for _, p := range opts.pipes { @@ -136,7 +168,14 @@ func execute(opts shellOpts) error { cmds = append(cmds, cmd) } - return pipe(ctx, opts, cmds...) + var o, e bytes.Buffer + err := pipe(ctx, opts, &o, &e, cmds...) + if err != nil { + log.Err(err).Msgf("Command failed") + return errors.Join(err, fmt.Errorf("%s", e.String())) + } + + return nil } func runKu(a *App, opts shellOpts) (string, error) { @@ -209,18 +248,20 @@ func ssh(a *App, node string) error { } cl := a.Config.K9s.ActiveCluster() + if cl == nil { + return fmt.Errorf("no active cluster detected") + } ns := cl.ShellPod.Namespace - sshIn(a, client.FQN(ns, k9sShellPodName()), k9sShell) - return nil + return sshIn(a, client.FQN(ns, k9sShellPodName()), k9sShell) } -func sshIn(a *App, fqn, co string) { +func sshIn(a *App, fqn, co string) error { cl := a.Config.K9s.ActiveCluster() cfg := cl.ShellPod os, err := getPodOS(a.factory, fqn) if err != nil { - log.Warn().Err(err).Msgf("os detect failed") + return fmt.Errorf("os detect failed: %w", err) } args := buildShellArgs("exec", fqn, co, a.Conn().Config().Flags().KubeConfig) @@ -237,9 +278,12 @@ func sshIn(a *App, fqn, co string) { log.Debug().Msgf("ARGS %#v", args) c := color.New(color.BgGreen).Add(color.FgBlack).Add(color.Bold) - if !runK(a, shellOpts{clear: true, banner: c.Sprintf(bannerFmt, fqn, co), args: args}) { - a.Flash().Err(errors.New("Shell exec failed")) + err = runK(a, shellOpts{clear: true, banner: c.Sprintf(bannerFmt, fqn, co), args: args}) + if err != nil { + return fmt.Errorf("shell exec failed: %w", err) } + + return nil } func nukeK9sShell(a *App) error { @@ -300,7 +344,7 @@ func launchShellPod(a *App, node string) error { time.Sleep(k9sShellRetryDelay) } - return fmt.Errorf("Unable to launch shell pod on node %s", node) + return fmt.Errorf("unable to launch shell pod on node %s", node) } func k9sShellPodName() string { @@ -376,7 +420,7 @@ func asResource(r config.Limits) v1.ResourceRequirements { } } -func pipe(_ context.Context, opts shellOpts, cmds ...*exec.Cmd) error { +func pipe(_ context.Context, opts shellOpts, w, e io.Writer, cmds ...*exec.Cmd) error { if len(cmds) == 0 { return nil } @@ -384,31 +428,17 @@ func pipe(_ context.Context, opts shellOpts, cmds ...*exec.Cmd) error { if len(cmds) == 1 { cmd := cmds[0] if opts.background { - cmd.Stdin, cmd.Stdout, cmd.Stderr = os.Stdin, log.Logger, log.Logger - return cmd.Start() + cmd.Stdin, cmd.Stdout, cmd.Stderr = os.Stdin, w, e + return cmd.Run() } cmd.Stdin, cmd.Stdout, cmd.Stderr = os.Stdin, os.Stdout, os.Stderr - // BOZO!! - //cmd.SysProcAttr = &syscall.SysProcAttr{ - //// //Setpgid: true, - //// //Setctty: true, - // Foreground: true, - //} _, _ = cmd.Stdout.Write([]byte(opts.banner)) log.Debug().Msgf("Running Start") err := cmd.Run() - log.Debug().Msgf("Running Done") - return err + log.Debug().Msgf("Running Done: %s", err) - // BOZO!! - // select { - // case <-ctx.Done(): - // return errors.New("canceled by operator") - // default: - // log.Debug().Msgf("PIPE RETURN %s", err) - // return err - // } + return err } last := len(cmds) - 1 @@ -428,8 +458,5 @@ func pipe(_ context.Context, opts shellOpts, cmds ...*exec.Cmd) error { } } - log.Debug().Msgf("WAITING!!!") - err := cmds[len(cmds)-1].Wait() - log.Debug().Msgf("DONE WAITING!!!") - return err + return cmds[len(cmds)-1].Wait() } diff --git a/internal/view/help.go b/internal/view/help.go index d9ce5085a8..fb95384c5e 100644 --- a/internal/view/help.go +++ b/internal/view/help.go @@ -3,10 +3,8 @@ package view import ( "context" "fmt" - "runtime" "sort" "strconv" - "strings" "github.com/derailed/k9s/internal/client" "github.com/derailed/k9s/internal/config" @@ -296,7 +294,7 @@ func (h *Help) addSection(c int, title string, hh model.MenuHints) { for _, hint := range hh { col := c - h.SetCell(row, col, padCellWithRef(toMnemonic(hint.Mnemonic), h.maxKey, hint.Mnemonic)) + h.SetCell(row, col, padCellWithRef(ui.ToMnemonic(hint.Mnemonic), h.maxKey, hint.Mnemonic)) col++ h.SetCell(row, col, padCell(hint.Description, h.maxDesc)) row++ @@ -348,14 +346,6 @@ func (h *Help) updateStyle() { // ---------------------------------------------------------------------------- // Helpers... -func toMnemonic(s string) string { - if len(s) == 0 { - return s - } - - return "<" + keyConv(strings.ToLower(s)) + ">" -} - func extractRef(c *tview.TableCell) string { if ref, ok := c.GetReference().(string); ok { return ref @@ -364,18 +354,6 @@ func extractRef(c *tview.TableCell) string { return c.Text } -func keyConv(s string) string { - if !strings.Contains(s, "alt") { - return s - } - - if runtime.GOOS != "darwin" { - return s - } - - return strings.Replace(s, "alt", "opt", 1) -} - func (h *Help) titleCell(title string) *tview.TableCell { c := tview.NewTableCell(title) c.SetTextColor(h.Styles().K9s.Help.SectionColor.Color()) diff --git a/internal/view/help_test.go b/internal/view/help_test.go index adeedac632..962109e072 100644 --- a/internal/view/help_test.go +++ b/internal/view/help_test.go @@ -21,7 +21,7 @@ func TestHelp(t *testing.T) { v := view.NewHelp(app) assert.Nil(t, v.Init(ctx)) - assert.Equal(t, 26, v.GetRowCount()) + assert.Equal(t, 27, v.GetRowCount()) assert.Equal(t, 6, v.GetColumnCount()) assert.Equal(t, "", strings.TrimSpace(v.GetCell(1, 0).Text)) assert.Equal(t, "Attach", strings.TrimSpace(v.GetCell(1, 1).Text)) diff --git a/internal/view/helpers.go b/internal/view/helpers.go index 129d0740ea..da65c794e8 100644 --- a/internal/view/helpers.go +++ b/internal/view/helpers.go @@ -81,7 +81,10 @@ func defaultEnv(c *client.Config, path string, header render.Header, row render. env := k8sEnv(c) env["NAMESPACE"], env["NAME"] = client.Namespaced(path) for _, col := range header.Columns(true) { - env["COL-"+col] = row.Fields[header.IndexOf(col, true)] + i := header.IndexOf(col, true) + if i >= 0 && i < len(row.Fields) { + env["COL-"+col] = row.Fields[i] + } } return env @@ -140,7 +143,7 @@ func podCtx(app *App, path, labelSel, fieldSel string) ContextFunc { func extractApp(ctx context.Context) (*App, error) { app, ok := ctx.Value(internal.KeyApp).(*App) if !ok { - return nil, errors.New("No application found in context") + return nil, errors.New("no application found in context") } return app, nil @@ -154,7 +157,7 @@ func asKey(key string) (tcell.Key, error) { } } - return 0, fmt.Errorf("No matching key found %s", key) + return 0, fmt.Errorf("no matching key found %s", key) } // FwFQN returns a fully qualified ns/name:container id. diff --git a/internal/view/helpers_test.go b/internal/view/helpers_test.go index 385cca50af..a2c182e202 100644 --- a/internal/view/helpers_test.go +++ b/internal/view/helpers_test.go @@ -62,7 +62,7 @@ func TestExtractApp(t *testing.T) { err error }{ "cool": {app: app}, - "not-cool": {err: errors.New("No application found in context")}, + "not-cool": {err: errors.New("no application found in context")}, } for k := range uu { @@ -103,7 +103,7 @@ func TestAsKey(t *testing.T) { e tcell.Key }{ "cool": {k: "Ctrl-A", e: tcell.KeyCtrlA}, - "miss": {k: "fred", e: 0, err: errors.New("No matching key found fred")}, + "miss": {k: "fred", e: 0, err: errors.New("no matching key found fred")}, } for k := range uu { diff --git a/internal/view/pf.go b/internal/view/pf.go index 0d268089b1..c4063b9674 100644 --- a/internal/view/pf.go +++ b/internal/view/pf.go @@ -180,7 +180,7 @@ var selRx = regexp.MustCompile(`\A([\w-]+)/([\w-]+)\|([\w-]+)?\|(\d+):(\d+)`) func pfToHuman(s string) (string, error) { mm := selRx.FindStringSubmatch(s) if len(mm) < 6 { - return "", fmt.Errorf("Unable to parse selection %s", s) + return "", fmt.Errorf("unable to parse selection %s", s) } return fmt.Sprintf("%s::%s %s->%s", mm[2], mm[3], mm[4], mm[5]), nil diff --git a/internal/view/pf_extender.go b/internal/view/pf_extender.go index 4347c74327..42120c127a 100644 --- a/internal/view/pf_extender.go +++ b/internal/view/pf_extender.go @@ -113,7 +113,7 @@ func startFwdCB(v ResourceViewer, path string, pts port.PortTunnels) error { tt := make([]string, 0, len(pts)) for _, pt := range pts { if _, ok := v.App().factory.ForwarderFor(dao.PortForwardID(path, pt.Container, pt.PortMap())); ok { - return fmt.Errorf("A port-forward is already active on pod %s", path) + return fmt.Errorf("port-forward is already active on pod %s", path) } pf := dao.NewPortForwarder(v.App().factory) fwd, err := pf.Start(path, pt) diff --git a/internal/view/pod.go b/internal/view/pod.go index 38fb80bec8..bb1574ce35 100644 --- a/internal/view/pod.go +++ b/internal/view/pod.go @@ -4,6 +4,8 @@ import ( "context" "errors" "fmt" + "os" + "strings" "github.com/derailed/k9s/internal" "github.com/derailed/k9s/internal/client" @@ -11,6 +13,7 @@ import ( "github.com/derailed/k9s/internal/model" "github.com/derailed/k9s/internal/render" "github.com/derailed/k9s/internal/ui" + "github.com/derailed/k9s/internal/ui/dialog" "github.com/derailed/tcell/v2" "github.com/fatih/color" "github.com/rs/zerolog/log" @@ -26,6 +29,8 @@ const ( powerShell = "powershell" osBetaSelector = "beta.kubernetes.io/os" osSelector = "kubernetes.io/os" + trUpload = "Upload" + trDownload = "Download" ) // Pod represents a pod viewer. @@ -65,6 +70,7 @@ func (p *Pod) bindDangerousKeys(aa ui.KeyActions) { tcell.KeyCtrlK: ui.NewKeyAction("Kill", p.killCmd, true), ui.KeyS: ui.NewKeyAction("Shell", p.shellCmd, true), ui.KeyA: ui.NewKeyAction("Attach", p.attachCmd, true), + ui.KeyT: ui.NewKeyAction("Transfer", p.transferCmd, true), }) } @@ -249,6 +255,69 @@ func (p *Pod) attachCmd(evt *tcell.EventKey) *tcell.EventKey { return nil } +func (p *Pod) transferCmd(evt *tcell.EventKey) *tcell.EventKey { + path := p.GetTable().GetSelectedItem() + if path == "" { + return nil + } + + ns, n := client.Namespaced(path) + ack := func(from, to, co string, download, no_preserve bool) bool { + local := to + if !download { + local = from + } + if _, err := os.Stat(local); !download && os.IsNotExist(err) { + p.App().Flash().Err(err) + return false + } + + args := make([]string, 0, 10) + args = append(args, "cp") + args = append(args, strings.TrimSpace(from)) + args = append(args, strings.TrimSpace(to)) + args = append(args, fmt.Sprintf("--no-preserve=%t", no_preserve)) + if co != "" { + args = append(args, "-c="+co) + } + + opts := shellOpts{ + background: true, + args: args, + } + op := trUpload + if download { + op = trDownload + } + + fqn := path + ":" + co + if err := runK(p.App(), opts); err != nil { + p.App().cowCmd(err.Error()) + } else { + p.App().Flash().Infof("%s successful on %s!", op, fqn) + } + return true + } + + pod, err := fetchPod(p.App().factory, path) + if err != nil { + p.App().Flash().Err(err) + return nil + } + + opts := dialog.TransferDialogOpts{ + Title: "Transfer", + Containers: fetchContainers(pod.ObjectMeta, pod.Spec, false), + Message: "Download Files", + Pod: fmt.Sprintf("%s/%s:", ns, n), + Ack: ack, + Cancel: func() {}, + } + dialog.ShowUploads(p.App().Styles.Dialog(), p.App().Content.Pages, opts) + + return nil +} + // ---------------------------------------------------------------------------- // Helpers... @@ -291,8 +360,9 @@ func shellIn(a *App, fqn, co string) { args := computeShellArgs(fqn, co, a.Conn().Config().Flags().KubeConfig, os) c := color.New(color.BgGreen).Add(color.FgBlack).Add(color.Bold) - if !runK(a, shellOpts{clear: true, banner: c.Sprintf(bannerFmt, fqn, co), args: args}) { - a.Flash().Err(errors.New("Shell exec failed")) + err = runK(a, shellOpts{clear: true, banner: c.Sprintf(bannerFmt, fqn, co), args: args}) + if err != nil { + a.Flash().Errf("Shell exec failed: %s", err) } } @@ -333,8 +403,8 @@ func resumeAttachIn(a *App, c model.Component, path, co string) { func attachIn(a *App, path, co string) { args := buildShellArgs("attach", path, co, a.Conn().Config().Flags().KubeConfig) c := color.New(color.BgGreen).Add(color.FgBlack).Add(color.Bold) - if !runK(a, shellOpts{clear: true, banner: c.Sprintf(bannerFmt, path, co), args: args}) { - a.Flash().Err(errors.New("Attach exec failed")) + if err := runK(a, shellOpts{clear: true, banner: c.Sprintf(bannerFmt, path, co), args: args}); err != nil { + a.Flash().Errf("Attach exec failed: %s", err) } } diff --git a/internal/view/pod_test.go b/internal/view/pod_test.go index 22a3f7ae3b..6db6f4d00f 100644 --- a/internal/view/pod_test.go +++ b/internal/view/pod_test.go @@ -16,7 +16,7 @@ func TestPodNew(t *testing.T) { assert.Nil(t, po.Init(makeCtx())) assert.Equal(t, "Pods", po.Name()) - assert.Equal(t, 25, len(po.Hints())) + assert.Equal(t, 26, len(po.Hints())) } // Helpers... diff --git a/internal/view/screen_dump.go b/internal/view/screen_dump.go index 940588cb97..5f02fd39a9 100644 --- a/internal/view/screen_dump.go +++ b/internal/view/screen_dump.go @@ -2,7 +2,6 @@ package view import ( "context" - "errors" "path/filepath" "github.com/derailed/k9s/internal" @@ -49,6 +48,6 @@ func (s *ScreenDump) edit(app *App, model ui.Tabular, gvr, path string) { s.Stop() defer s.Start() if !edit(app, shellOpts{clear: true, args: []string{path}}) { - app.Flash().Err(errors.New("Failed to launch editor")) + app.Flash().Errf("Failed to launch editor") } } diff --git a/internal/view/svc.go b/internal/view/svc.go index 292bee97d1..82a18d900b 100644 --- a/internal/view/svc.go +++ b/internal/view/svc.go @@ -69,7 +69,7 @@ func (s *Service) showPods(a *App, _ ui.Tabular, gvr, path string) { func (s *Service) checkSvc(svc *v1.Service) error { if svc.Spec.Type != "NodePort" && svc.Spec.Type != "LoadBalancer" { - return errors.New("You must select a reachable service") + return errors.New("you must select a reachable service") } return nil } @@ -83,7 +83,7 @@ func (s *Service) getExternalPort(svc *v1.Service) (string, error) { // Grab the first port pair for now... tokens := strings.Split(pp[0], "►") if len(tokens) < 2 { - return "", errors.New("No ports pair found") + return "", errors.New("no ports pair found") } return tokens[1], nil @@ -142,7 +142,7 @@ func (s *Service) toggleBenchCmd(evt *tcell.EventKey) *tcell.EventKey { // BOZO!! Refactor used by forwards. func (s *Service) runBenchmark(port string, cfg config.BenchConfig) error { if cfg.HTTP.Host == "" { - return fmt.Errorf("Invalid benchmark host %q", cfg.HTTP.Host) + return fmt.Errorf("invalid benchmark host %q", cfg.HTTP.Host) } var err error diff --git a/internal/view/xray.go b/internal/view/xray.go index 87a05b38c5..74fe8f8c54 100644 --- a/internal/view/xray.go +++ b/internal/view/xray.go @@ -2,7 +2,6 @@ package view import ( "context" - "errors" "fmt" "regexp" "strings" @@ -413,8 +412,8 @@ func (x *Xray) editCmd(evt *tcell.EventKey) *tcell.EventKey { if cfg := x.app.Conn().Config().Flags().KubeConfig; cfg != nil && *cfg != "" { args = append(args, "--kubeconfig", *cfg) } - if !runK(x.app, shellOpts{args: append(args, n)}) { - x.app.Flash().Err(errors.New("Edit exec failed")) + if err := runK(x.app, shellOpts{args: append(args, n)}); err != nil { + x.app.Flash().Errf("Edit exec failed: %s", err) } } diff --git a/internal/watch/forwarders.go b/internal/watch/forwarders.go index c69f8b9825..517a1ad4a9 100644 --- a/internal/watch/forwarders.go +++ b/internal/watch/forwarders.go @@ -63,7 +63,7 @@ func (ff Forwarders) IsPodForwarded(fqn string) bool { // IsContainerForwarded checks if pod has a forward. func (ff Forwarders) IsContainerForwarded(fqn, co string) bool { - prefix := fqn+"|"+co + prefix := fqn + "|" + co for k := range ff { if strings.HasPrefix(k, prefix) { return true @@ -86,12 +86,11 @@ func (ff Forwarders) DeleteAll() { func (ff Forwarders) Kill(path string) int { var stats int for k, f := range ff { - victim := k - if victim == path { + if strings.HasPrefix(k, path) { stats++ - log.Debug().Msgf("Stop + Delete port-forward %s", victim) + log.Debug().Msgf("Stop + Delete port-forward %s", k) f.Stop() - delete(ff, victim) + delete(ff, k) } } From 68afb3d9ef4f9f5d84fd33e83f070165807167f2 Mon Sep 17 00:00:00 2001 From: Jayson Wang Date: Wed, 8 Nov 2023 23:37:16 +0800 Subject: [PATCH 101/130] return the correct benchamrk path (#2272) --- internal/perf/benchmark.go | 11 +++-------- internal/view/benchmark.go | 2 +- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/internal/perf/benchmark.go b/internal/perf/benchmark.go index 9ed0af01c6..8cd529372e 100644 --- a/internal/perf/benchmark.go +++ b/internal/perf/benchmark.go @@ -25,7 +25,6 @@ const ( k9sUA = "k9s/" ) - var ( // K9sBenchDir directory to store K9s Benchmark files. K9sBenchDir = filepath.Join(os.TempDir(), fmt.Sprintf("k9s-bench-%s", config.MustK9sUser())) @@ -107,7 +106,7 @@ func (b *Benchmark) Canceled() bool { return b.canceled } -// Run starts a benchmark,. +// Run starts a benchmark. func (b *Benchmark) Run(cluster string, done func()) { log.Debug().Msgf("Running benchmark on cluster %s", cluster) buff := new(bytes.Buffer) @@ -115,7 +114,7 @@ func (b *Benchmark) Run(cluster string, done func()) { // this call will block until the benchmark is complete or times out. b.worker.Run() b.worker.Stop() - if len(buff.Bytes()) > 0 { + if buff.Len() > 0 { if err := b.save(cluster, buff); err != nil { log.Error().Err(err).Msg("Saving Benchmark") } @@ -141,11 +140,7 @@ func (b *Benchmark) save(cluster string, r io.Reader) error { } }() - bb, err := io.ReadAll(r) - if err != nil { - return err - } - if _, err := f.Write(bb); err != nil { + if _, err = io.Copy(f, r); err != nil { return err } diff --git a/internal/view/benchmark.go b/internal/view/benchmark.go index bd6a8b900b..5601c42a18 100644 --- a/internal/view/benchmark.go +++ b/internal/view/benchmark.go @@ -65,7 +65,7 @@ func fileToSubject(path string) string { } func benchDir(cfg *config.Config) string { - return filepath.Join(perf.K9sBenchDir, cfg.K9s.CurrentContextDir()) + return filepath.Join(perf.K9sBenchDir, cfg.K9s.CurrentCluster) } func readBenchFile(cfg *config.Config, n string) (string, error) { From a34d7ae6bf39c8b59e2be85a4ad2f2fb8e415eac Mon Sep 17 00:00:00 2001 From: Artem Gorbatiuk Date: Wed, 8 Nov 2023 20:45:22 +0100 Subject: [PATCH 102/130] feat: add autoRefresh config field (#2256) (#2257) * feat: add autoRefresh config field Add autoRefresh: true to config test scenarios Update all instances of NewLiveView() to pass autoRefresh config value to LiveView * fix: rename generic autoRefresh config field to liveViewAutoRefresh * docs: document liveViewAutoRefresh config field * fix: use app config for NewLiveView creation --------- Co-authored-by: Artem Gorbatiuk --- README.md | 2 ++ internal/config/config_test.go | 2 ++ internal/config/k9s.go | 1 + internal/config/testdata/k9s.yml | 1 + internal/view/live_view.go | 1 + 5 files changed, 7 insertions(+) diff --git a/README.md b/README.md index d00c08fe1b..d4e6108d53 100644 --- a/README.md +++ b/README.md @@ -319,6 +319,8 @@ K9s uses aliases to navigate most K8s resources. ```yaml # $XDG_CONFIG_HOME/k9s/config.yml k9s: + # Enable periodic refresh of resource browser windows. Default false + liveViewAutoRefresh: false # Represents ui poll intervals. Default 2secs refreshRate: 2 # Number of retries once the connection to the api-server is lost. Default 15. diff --git a/internal/config/config_test.go b/internal/config/config_test.go index 3821fd4589..c57a45ed56 100644 --- a/internal/config/config_test.go +++ b/internal/config/config_test.go @@ -277,6 +277,7 @@ func (m *mockSettings) ClusterNames() (map[string]struct{}, error) { return nil, // Test Data... var expectedConfig = `k9s: + liveViewAutoRefresh: true refreshRate: 100 maxConnRetry: 5 enableMouse: false @@ -376,6 +377,7 @@ var expectedConfig = `k9s: ` var resetConfig = `k9s: + liveViewAutoRefresh: true refreshRate: 2 maxConnRetry: 5 enableMouse: false diff --git a/internal/config/k9s.go b/internal/config/k9s.go index 37c921333f..6bac7aff29 100644 --- a/internal/config/k9s.go +++ b/internal/config/k9s.go @@ -11,6 +11,7 @@ const ( // K9s tracks K9s configuration options. type K9s struct { + LiveViewAutoRefresh bool `yaml:"liveViewAutoRefresh"` RefreshRate int `yaml:"refreshRate"` MaxConnRetry int `yaml:"maxConnRetry"` EnableMouse bool `yaml:"enableMouse"` diff --git a/internal/config/testdata/k9s.yml b/internal/config/testdata/k9s.yml index 0587cd29bd..b9116b279e 100644 --- a/internal/config/testdata/k9s.yml +++ b/internal/config/testdata/k9s.yml @@ -1,4 +1,5 @@ k9s: + liveViewAutoRefresh: true refreshRate: 2 readOnly: false logger: diff --git a/internal/view/live_view.go b/internal/view/live_view.go index aeefd9cb41..d9d6af892b 100644 --- a/internal/view/live_view.go +++ b/internal/view/live_view.go @@ -48,6 +48,7 @@ func NewLiveView(app *App, title string, m model.ResourceViewer) *LiveView { maxRegions: 0, cmdBuff: model.NewFishBuff('/', model.FilterBuffer), model: m, + autoRefresh: app.Config.K9s.LiveViewAutoRefresh, } v.AddItem(v.text, 0, 1, true) From 458517fc14dae2665dfaf4f9301a2281666e2c4f Mon Sep 17 00:00:00 2001 From: Eng Zer Jun Date: Fri, 10 Nov 2023 08:10:42 +0800 Subject: [PATCH 103/130] chore: replace `github.com/ghodss/yaml` with `sigs.k8s.io/yaml` (#2280) At the time of making this commit, the package `github.com/ghodss/yaml` is no longer actively maintained. `sigs.k8s.io/yaml` is a permanent fork of `ghodss/yaml` and is actively maintained by Kubernetes SIG. Signed-off-by: Eng Zer Jun --- go.mod | 1 - go.sum | 3 +-- internal/dao/container_test.go | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 3aba6b95c3..0ead004103 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,6 @@ require ( github.com/fatih/color v1.16.0 github.com/fsnotify/fsnotify v1.7.0 github.com/fvbommel/sortorder v1.1.0 - github.com/ghodss/yaml v1.0.0 github.com/mattn/go-colorable v0.1.13 github.com/mattn/go-runewidth v0.0.14 github.com/petergtz/pegomock v2.9.0+incompatible diff --git a/go.sum b/go.sum index a3e09e5fe8..8bde55241a 100644 --- a/go.sum +++ b/go.sum @@ -128,8 +128,6 @@ github.com/fvbommel/sortorder v1.1.0 h1:fUmoe+HLsBTctBDoaBwpQo5N+nrCp8g/BjKb/6ZQ github.com/fvbommel/sortorder v1.1.0/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0= github.com/gdamore/encoding v1.0.0 h1:+7OoQ1Bc6eTm5niUzBa0Ctsh6JbMW6Ra+YNuAtDBdko= github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg= -github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= github.com/go-gorp/gorp/v3 v3.1.0 h1:ItKF/Vbuj31dmV4jxA1qblpSwkl9g1typ24xoe70IGs= @@ -137,6 +135,7 @@ github.com/go-gorp/gorp/v3 v3.1.0/go.mod h1:dLEjIyyRNiXvNZ8PSmzpt1GsWAUK8kjVhEpj github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= diff --git a/internal/dao/container_test.go b/internal/dao/container_test.go index 1bf5896b22..61df494829 100644 --- a/internal/dao/container_test.go +++ b/internal/dao/container_test.go @@ -8,7 +8,6 @@ import ( "github.com/derailed/k9s/internal/client" "github.com/derailed/k9s/internal/dao" "github.com/derailed/k9s/internal/watch" - "github.com/ghodss/yaml" "github.com/stretchr/testify/assert" v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" @@ -21,6 +20,7 @@ import ( "k8s.io/client-go/kubernetes" restclient "k8s.io/client-go/rest" versioned "k8s.io/metrics/pkg/client/clientset/versioned" + "sigs.k8s.io/yaml" ) func TestContainerList(t *testing.T) { From b3e85e9bbc555a363e2f49051905b932a6392b3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9mie=20Tarot?= Date: Fri, 10 Nov 2023 01:11:46 +0100 Subject: [PATCH 104/130] README.md: fix typo in netshoot URL (#2278) --- plugins/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/README.md b/plugins/README.md index 88b5e3ea22..f49134e2e4 100644 --- a/plugins/README.md +++ b/plugins/README.md @@ -16,4 +16,4 @@ Following is an example of some of plugin files in this directory. Other files a | log_full.yml | get full logs from pod/container | pods/containers | Ctrl-l | | [1]: https://kubernetes.io/docs/tasks/debug/debug-application/debug-running-pod/#ephemeral-container -[2]: https://github.dcom/nicolaka/netshoot \ No newline at end of file +[2]: https://github.com/nicolaka/netshoot From 893f15f802112b9a54684b3a2426022bd169a52e Mon Sep 17 00:00:00 2001 From: Jayson Wang Date: Fri, 10 Nov 2023 08:15:20 +0800 Subject: [PATCH 105/130] check if the Node already cordoned when executing Drain (#2275) * check if the Node already cordoned when executing Drain * ensure node cordoned --- internal/dao/node.go | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/internal/dao/node.go b/internal/dao/node.go index b878d0ea81..8f9cb0b5bd 100644 --- a/internal/dao/node.go +++ b/internal/dao/node.go @@ -84,10 +84,17 @@ func (o DrainOptions) toDrainHelper(k kubernetes.Interface, w io.Writer) drain.H // Drain drains a node. func (n *Node) Drain(path string, opts DrainOptions, w io.Writer) error { - if err := n.ToggleCordon(path, true); err != nil { + cordoned, err := n.ensureCordoned(path) + if err != nil { return err } + if !cordoned { + if err = n.ToggleCordon(path, true); err != nil { + return err + } + } + dial, err := n.GetFactory().Client().Dial() if err != nil { return err @@ -217,6 +224,16 @@ func (n *Node) GetPods(nodeName string) ([]*v1.Pod, error) { return pp, nil } +// ensureCordoned returns whether the given node has been cordoned +func (n *Node) ensureCordoned(path string) (bool, error) { + o, err := FetchNode(context.Background(), n.Factory, path) + if err != nil { + return false, err + } + + return o.Spec.Unschedulable, nil +} + // ---------------------------------------------------------------------------- // Helpers... From a3155d015dc9fea71b2c64dc0a680b9823f45f6f Mon Sep 17 00:00:00 2001 From: Alexandru Placinta Date: Fri, 10 Nov 2023 16:54:40 +0100 Subject: [PATCH 106/130] Add prompt border color customization (#2234) --- internal/config/styles.go | 22 ++++++++-- internal/ui/prompt.go | 10 ++--- internal/ui/prompt_test.go | 85 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 109 insertions(+), 8 deletions(-) diff --git a/internal/config/styles.go b/internal/config/styles.go index a5fa6b691e..89dbe630e8 100644 --- a/internal/config/styles.go +++ b/internal/config/styles.go @@ -45,9 +45,16 @@ type ( // Prompt tracks command styles Prompt struct { - FgColor Color `yaml:"fgColor"` - BgColor Color `yaml:"bgColor"` - SuggestColor Color `yaml:"suggestColor"` + FgColor Color `yaml:"fgColor"` + BgColor Color `yaml:"bgColor"` + SuggestColor Color `yaml:"suggestColor"` + Border PromptBorder `yaml:"border"` + } + + // PromptBorder tracks the color of the prompt depending on its kind (e.g., command or filter) + PromptBorder struct { + CommandColor Color `yaml:"command"` + DefaultColor Color `yaml:"default"` } // Help tracks help styles. @@ -287,6 +294,10 @@ func newPrompt() Prompt { FgColor: "cadetblue", BgColor: "black", SuggestColor: "dodgerblue", + Border: PromptBorder{ + DefaultColor: "seagreen", + CommandColor: "aqua", + }, } } @@ -511,6 +522,11 @@ func (s *Styles) Body() Body { return s.K9s.Body } +// Prompt returns prompt styles. +func (s *Styles) Prompt() Prompt { + return s.K9s.Prompt +} + // Frame returns frame styles. func (s *Styles) Frame() Frame { return s.K9s.Frame diff --git a/internal/ui/prompt.go b/internal/ui/prompt.go index dedbdfeb2e..117dd10017 100644 --- a/internal/ui/prompt.go +++ b/internal/ui/prompt.go @@ -202,7 +202,7 @@ func (p *Prompt) write(text, suggest string) { p.SetCursorIndex(p.spacer + len(text)) txt := text if suggest != "" { - txt += fmt.Sprintf("[%s::-]%s", p.styles.K9s.Prompt.SuggestColor, suggest) + txt += fmt.Sprintf("[%s::-]%s", p.styles.Prompt().SuggestColor, suggest) } fmt.Fprintf(p, defaultPrompt, p.icon, txt) } @@ -231,7 +231,7 @@ func (p *Prompt) BufferActive(activate bool, kind model.BufferKind) { p.ShowCursor(true) p.SetBorder(true) p.SetTextColor(p.styles.FgColor()) - p.SetBorderColor(colorFor(kind)) + p.SetBorderColor(p.colorFor(kind)) p.icon = p.iconFor(kind) p.activate() return @@ -260,12 +260,12 @@ func (p *Prompt) iconFor(k model.BufferKind) rune { // ---------------------------------------------------------------------------- // Helpers... -func colorFor(k model.BufferKind) tcell.Color { +func (p *Prompt) colorFor(k model.BufferKind) tcell.Color { // nolint:exhaustive switch k { case model.CommandBuffer: - return tcell.ColorAqua + return p.styles.Prompt().Border.CommandColor.Color() default: - return tcell.ColorSeaGreen + return p.styles.Prompt().Border.DefaultColor.Color() } } diff --git a/internal/ui/prompt_test.go b/internal/ui/prompt_test.go index b41c7ec232..41b1c96497 100644 --- a/internal/ui/prompt_test.go +++ b/internal/ui/prompt_test.go @@ -1,6 +1,7 @@ package ui_test import ( + "github.com/derailed/tcell/v2" "testing" "github.com/derailed/k9s/internal/config" @@ -45,3 +46,87 @@ func TestCmdMode(t *testing.T) { assert.Equal(t, f, v.InCmdMode()) } } + +// Tests that, when active, the prompt has the appropriate color +func TestPromptColor(t *testing.T) { + styles := config.NewStyles() + app := ui.App{} + + // Make sure to have different values to be sure that the prompt color actually changes depending on its type + assert.NotEqual(t, styles.Prompt().Border.DefaultColor.Color(), styles.Prompt().Border.CommandColor.Color()) + + testCases := []struct { + kind model.BufferKind + expectedColor tcell.Color + }{ + // Command prompt case + { + kind: model.CommandBuffer, + expectedColor: styles.Prompt().Border.CommandColor.Color(), + }, + // Any other prompt type case + { + // Simulate a different type of prompt since no particular constant exists + kind: model.CommandBuffer + 1, + expectedColor: styles.Prompt().Border.DefaultColor.Color(), + }, + } + + for _, testCase := range testCases { + model := model.NewFishBuff(':', testCase.kind) + prompt := ui.NewPrompt(&app, true, styles) + + prompt.SetModel(model) + model.AddListener(prompt) + + model.SetActive(true) + assert.Equal(t, prompt.GetBorderColor(), testCase.expectedColor) + } +} + +// Tests that, when a change of style occurs, the prompt will have the appropriate color when active +func TestPromptStyleChanged(t *testing.T) { + app := ui.App{} + styles := config.NewStyles() + newStyles := config.NewStyles() + newStyles.K9s.Prompt.Border = config.PromptBorder{ + DefaultColor: "green", + CommandColor: "yellow", + } + + // Check that the prompt won't change the border into the same style + assert.NotEqual(t, styles.Prompt().Border.CommandColor.Color(), newStyles.Prompt().Border.CommandColor.Color()) + assert.NotEqual(t, styles.Prompt().Border.DefaultColor.Color(), newStyles.Prompt().Border.DefaultColor.Color()) + + testCases := []struct { + kind model.BufferKind + expectedColor tcell.Color + }{ + // Command prompt case + { + kind: model.CommandBuffer, + expectedColor: newStyles.Prompt().Border.CommandColor.Color(), + }, + // Any other prompt type case + { + // Simulate a different type of prompt since no particular constant exists + kind: model.CommandBuffer + 1, + expectedColor: newStyles.Prompt().Border.DefaultColor.Color(), + }, + } + + for _, testCase := range testCases { + model := model.NewFishBuff(':', testCase.kind) + prompt := ui.NewPrompt(&app, true, styles) + + model.SetActive(true) + + prompt.SetModel(model) + model.AddListener(prompt) + + prompt.StylesChanged(newStyles) + + model.SetActive(true) + assert.Equal(t, prompt.GetBorderColor(), testCase.expectedColor) + } +} From 19952cd2820e6da1aff06fcc7c88d33c107f5ae6 Mon Sep 17 00:00:00 2001 From: Alexandru Placinta Date: Sat, 11 Nov 2023 01:51:26 +0100 Subject: [PATCH 107/130] Delete port forwards when pods get deleted or killed (#2247) --- internal/watch/forwarders.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/internal/watch/forwarders.go b/internal/watch/forwarders.go index 517a1ad4a9..c1c1b15c07 100644 --- a/internal/watch/forwarders.go +++ b/internal/watch/forwarders.go @@ -1,6 +1,7 @@ package watch import ( + "fmt" "strings" "github.com/derailed/k9s/internal/port" @@ -85,8 +86,15 @@ func (ff Forwarders) DeleteAll() { // Kill stops and delete a port-forwards associated with pod. func (ff Forwarders) Kill(path string) int { var stats int + + // The way port forwards are stored is `pod_fqn|container|local_port:container_port` + // The '|' is added to make sure we do not delete port forwards from other pods that have the same prefix + // Without the `|` port forwards for pods, default/web-0 and default/web-0-bla would be both deleted + // even if we want only port forwards for default/web-0 to be deleted + prefix := fmt.Sprintf("%s|", path) + for k, f := range ff { - if strings.HasPrefix(k, path) { + if k == path || strings.HasPrefix(k, prefix) { stats++ log.Debug().Msgf("Stop + Delete port-forward %s", k) f.Stop() From 5540b5a8256f4b5a06277d1455f402f78ba5853b Mon Sep 17 00:00:00 2001 From: Fernand Galiana Date: Sat, 11 Nov 2023 10:32:45 -0700 Subject: [PATCH 108/130] Add sanitize command (#2286) - Sanitize provides for clearing out pods in either completed/failed state #2277 --- Makefile | 2 +- change_logs/release_v0.28.1.md | 63 ++++++++++ go.mod | 1 + go.sum | 6 +- internal/dao/dp.go | 10 +- internal/dao/pod.go | 34 ++++++ internal/dao/port_forwarder.go | 5 + internal/dao/rs.go | 2 +- internal/dao/sts.go | 41 +++++-- internal/dao/types.go | 6 + internal/port/tunnel.go | 5 + internal/render/pod.go | 104 ++++++++++++++++- internal/render/pod_test.go | 180 +++++++++++++++++++++++++++++ internal/ui/dialog/confirm.go | 53 +++++++++ internal/view/browser.go | 2 +- internal/view/dp.go | 4 +- internal/view/exec.go | 6 +- internal/view/help_test.go | 2 +- internal/view/pod.go | 54 ++++++++- internal/view/pod_test.go | 2 +- internal/view/sts.go | 10 +- internal/watch/forwarders.go | 14 +-- internal/watch/forwarders_test.go | 183 ++++++++++++++++++++++++++++++ 23 files changed, 745 insertions(+), 44 deletions(-) create mode 100644 change_logs/release_v0.28.1.md create mode 100644 internal/watch/forwarders_test.go diff --git a/Makefile b/Makefile index 3954a30aed..87337a1b1d 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ DATE ?= $(shell TZ=UTC date -j -f "%s" ${SOURCE_DATE_EPOCH} +"%Y-%m-%dT%H: else DATE ?= $(shell date -u -d @${SOURCE_DATE_EPOCH} +"%Y-%m-%dT%H:%M:%SZ") endif -VERSION ?= v0.28.0 +VERSION ?= v0.28.1 IMG_NAME := derailed/k9s IMAGE := ${IMG_NAME}:${VERSION} diff --git a/change_logs/release_v0.28.1.md b/change_logs/release_v0.28.1.md new file mode 100644 index 0000000000..bb7cd0774b --- /dev/null +++ b/change_logs/release_v0.28.1.md @@ -0,0 +1,63 @@ + + +# Release v0.28.1 + +## Notes + +Thank you to all that contributed with flushing out issues and enhancements for K9s! I'll try to mark some of these issues as fixed. But if you don't mind grab the latest rev and see if we're happier with some of the fixes! If you've filed an issue please help me verify and close. Your support, kindness and awesome suggestions to make K9s better are, as ever, very much noted and appreciated! Also big thanks to all that have allocated their own time to help others on both slack and on this repo!! + +As you may know, K9s is not pimped out by corps with deep pockets, thus if you feel K9s is helping your Kubernetes journey, please consider joining our [sponsorship program](https://github.com/sponsors/derailed) and/or make some noise on social! [@kitesurfer](https://twitter.com/kitesurfer) + +On Slack? Please join us [K9slackers](https://join.slack.com/t/k9sers/shared_invite/enQtOTA5MDEyNzI5MTU0LWQ1ZGI3MzliYzZhZWEyNzYxYzA3NjE0YTk1YmFmNzViZjIyNzhkZGI0MmJjYzhlNjdlMGJhYzE2ZGU1NjkyNTM) + +--- + +## ♫ Sounds Behind The Release ♭ + +* [If Trouble Was Money - Albert Collins](https://www.youtube.com/watch?v=cz6LbWWqX-g) +* [Old Love - Eric Clapton](https://www.youtube.com/watch?v=EklciRHZnUQ) +* [Touch And GO - The Cars](https://www.youtube.com/watch?v=L7Gpr_Auz8Y) + +--- + +## A Word From Our Sponsors... + +To all the good folks below that opted to `pay it forward` and join our sponsorship program, I salute you!! + +* [Bradley Heilbrun](https://github.com/bheilbrun) + +> Sponsorship cancellations since the last release: `2` ;( + +--- + +## Feature Release + +### Sanitize Me! + +Over time, you might end up with a lot of pod cruft on your cluster. Pods that might be completed, erroring out, etc... Once you've completed your pod analysis it could be useful to clear out these pods from your cluster. + +In this drop, we introduce a new command `sanitize` aka `z` available on pod views otherwise known as `The Axe!`. This command performs a clean up of all pods that are in either in completed, crashloopBackoff or failed state. This could be especially handy if you run workflows jobs or commands on your cluster that might leave lots of `turd` pods. Tho this has a `phat` fail safe dialog please be careful with this one as it is a blunt tool! + +--- + +## Resolved Issues + +* [Issue #2281](https://github.com/derailed/k9s/issues/2281) Can't run Node shell +* [Issue #2277](https://github.com/derailed/k9s/issues/2277) bulk actions applied to power filters +* [Issue #2273](https://github.com/derailed/k9s/issues/2273) Error when draining node that is cordoned bug +* [Issue #2233](https://github.com/derailed/k9s/issues/2233) Invalid port-forwarding status displayed over the k9s UI + +--- + +## Contributed PRs + +Please be sure to give `Big Thanks!` and `ATTA Girls/Boys!` to all the fine contributors for making K9s better for all of us!! + +* [PR #2280](https://github.com/derailed/k9s/pull/2280) chore: replace github.com/ghodss/yaml with sigs.k8s. +* [PR #2278](https://github.com/derailed/k9s/pull/2278) README.md: fix typo in netshoot URL +* [PR #2275](https://github.com/derailed/k9s/pull/2275) check if the Node already cordoned when executing Drain +* [PR #2247](https://github.com/derailed/k9s/pull/2247) Delete port forwards when pods get deleted + +--- + + © 2023 Imhotep Software LLC. All materials licensed under [Apache v2.0](http://www.apache.org/licenses/LICENSE-2.0) diff --git a/go.mod b/go.mod index 0ead004103..c17dd61b42 100644 --- a/go.mod +++ b/go.mod @@ -30,6 +30,7 @@ require ( k8s.io/client-go v0.28.3 k8s.io/klog/v2 v2.100.1 k8s.io/kubectl v0.28.3 + k8s.io/kubernetes v1.28.3 k8s.io/metrics v0.28.3 sigs.k8s.io/yaml v1.3.0 ) diff --git a/go.sum b/go.sum index 8bde55241a..8b98445d5d 100644 --- a/go.sum +++ b/go.sum @@ -245,8 +245,8 @@ github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/u github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/karrick/godirwalk v1.16.1 h1:DynhcF+bztK8gooS0+NDJFrdNZjJ3gzVzC545UNA9iw= -github.com/karrick/godirwalk v1.16.1/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= +github.com/karrick/godirwalk v1.17.0 h1:b4kY7nqDdioR/6qnbHQyDvmA17u5G1cZ6J+CZXwSWoI= +github.com/karrick/godirwalk v1.17.0/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= @@ -628,6 +628,8 @@ k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 h1:LyMgNKD2P8Wn1iAwQU5Ohx k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9/go.mod h1:wZK2AVp1uHCp4VamDVgBP2COHZjqD1T68Rf0CM3YjSM= k8s.io/kubectl v0.28.3 h1:H1Peu1O3EbN9zHkJCcvhiJ4NUj6lb88sGPO5wrWIM6k= k8s.io/kubectl v0.28.3/go.mod h1:RDAudrth/2wQ3Sg46fbKKl4/g+XImzvbsSRZdP2RiyE= +k8s.io/kubernetes v1.28.3 h1:XTci6gzk+JR51UZuZQCFJ4CsyUkfivSjLI4O1P9z6LY= +k8s.io/kubernetes v1.28.3/go.mod h1:NhAysZWvHtNcJFFHic87ofxQN7loylCQwg3ZvXVDbag= k8s.io/metrics v0.28.3 h1:w2s3kVi7HulXqCVDFkF4hN/OsL1tXTTb4Biif995h/g= k8s.io/metrics v0.28.3/go.mod h1:OZZ23AHFojPzU6r3xoHGRUcV3I9pauLua+07sAUbwLc= k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 h1:qY1Ad8PODbnymg2pRbkyMT/ylpTrCM8P2RJ0yroCyIk= diff --git a/internal/dao/dp.go b/internal/dao/dp.go index 3c426e7f5f..8e21d0c46f 100644 --- a/internal/dao/dp.go +++ b/internal/dao/dp.go @@ -115,7 +115,7 @@ func (d *Deployment) Restart(ctx context.Context, path string) error { // TailLogs tail logs for all pods represented by this Deployment. func (d *Deployment) TailLogs(ctx context.Context, opts *LogOptions) ([]LogChan, error) { - dp, err := d.Load(d.Factory, opts.Path) + dp, err := d.GetInstance(d.Factory, opts.Path) if err != nil { return nil, err } @@ -128,7 +128,7 @@ func (d *Deployment) TailLogs(ctx context.Context, opts *LogOptions) ([]LogChan, // Pod returns a pod victim by name. func (d *Deployment) Pod(fqn string) (string, error) { - dp, err := d.Load(d.Factory, fqn) + dp, err := d.GetInstance(d.Factory, fqn) if err != nil { return "", err } @@ -136,8 +136,8 @@ func (d *Deployment) Pod(fqn string) (string, error) { return podFromSelector(d.Factory, dp.Namespace, dp.Spec.Selector.MatchLabels) } -// Load returns a deployment instance. -func (*Deployment) Load(f Factory, fqn string) (*appsv1.Deployment, error) { +// GetInstance fetch a matching deployment. +func (*Deployment) GetInstance(f Factory, fqn string) (*appsv1.Deployment, error) { o, err := f.Get("apps/v1/deployments", fqn, true, labels.Everything()) if err != nil { return nil, err @@ -240,7 +240,7 @@ func (d *Deployment) Scan(ctx context.Context, gvr, fqn string, wait bool) (Refs // GetPodSpec returns a pod spec given a resource. func (d *Deployment) GetPodSpec(path string) (*v1.PodSpec, error) { - dp, err := d.Load(d.Factory, path) + dp, err := d.GetInstance(d.Factory, path) if err != nil { return nil, err } diff --git a/internal/dao/pod.go b/internal/dao/pod.go index 10eaa888a8..a65e63d39f 100644 --- a/internal/dao/pod.go +++ b/internal/dao/pod.go @@ -500,3 +500,37 @@ func GetDefaultContainer(m metav1.ObjectMeta, spec v1.PodSpec) (string, bool) { return "", false } + +func (p *Pod) Sanitize(ctx context.Context, ns string) (int, error) { + oo, err := p.Resource.List(ctx, ns) + if err != nil { + return 0, err + } + + var count int + for _, o := range oo { + u, ok := o.(*unstructured.Unstructured) + if !ok { + continue + } + var pod v1.Pod + err = runtime.DefaultUnstructuredConverter.FromUnstructured(u.Object, &pod) + if err != nil { + continue + } + log.Debug().Msgf("Pod status: %q", render.PodStatus(&pod)) + switch render.PodStatus(&pod) { + case render.PhaseCompleted, render.PhaseCrashLoop, render.PhaseError, render.PhaseImagePullBackOff, render.PhaseOOMKilled: + log.Debug().Msgf("Sanitizing %s:%s", pod.Namespace, pod.Name) + fqn := client.FQN(pod.Namespace, pod.Name) + if err := p.Resource.Delete(ctx, fqn, nil, NowGrace); err != nil { + log.Warn().Err(err).Msgf("Pod %s deletion failed", fqn) + continue + } + count++ + } + } + log.Debug().Msgf("Sanitizer deleted %d pods", count) + + return count, nil +} diff --git a/internal/dao/port_forwarder.go b/internal/dao/port_forwarder.go index 5940eb4550..37812215c2 100644 --- a/internal/dao/port_forwarder.go +++ b/internal/dao/port_forwarder.go @@ -43,6 +43,11 @@ func NewPortForwarder(f Factory) *PortForwarder { } } +// String dumps as string. +func (p *PortForwarder) String() string { + return fmt.Sprintf("%s|%s", p.path, p.tunnel) +} + // Age returns the port forward age. func (p *PortForwarder) Age() string { return time.Since(p.age).String() diff --git a/internal/dao/rs.go b/internal/dao/rs.go index 6e1ddca3ee..7e7ae755b5 100644 --- a/internal/dao/rs.go +++ b/internal/dao/rs.go @@ -95,7 +95,7 @@ func (r *ReplicaSet) Rollback(fqn string) error { } var ddp Deployment - dp, err := ddp.Load(r.Factory, client.FQN(rs.Namespace, name)) + dp, err := ddp.GetInstance(r.Factory, client.FQN(rs.Namespace, name)) if err != nil { return err } diff --git a/internal/dao/sts.go b/internal/dao/sts.go index d15822032f..8e346233b1 100644 --- a/internal/dao/sts.go +++ b/internal/dao/sts.go @@ -67,15 +67,19 @@ func (s *StatefulSet) Scale(ctx context.Context, path string, replicas int32) er // Restart a StatefulSet rollout. func (s *StatefulSet) Restart(ctx context.Context, path string) error { - o, err := s.GetFactory().Get("apps/v1/statefulsets", path, true, labels.Everything()) + sts, err := s.GetInstance(s.Factory, path) if err != nil { return err } - var sts appsv1.StatefulSet - err = runtime.DefaultUnstructuredConverter.FromUnstructured(o.(*unstructured.Unstructured).Object, &sts) + + ns, _ := client.Namespaced(path) + pp, err := podsFromSelector(s.Factory, ns, sts.Spec.Selector.MatchLabels) if err != nil { return err } + for _, p := range pp { + s.Forwarders().Kill(client.FQN(p.Namespace, p.Name)) + } auth, err := s.Client().CanI(sts.Namespace, "apps/v1/statefulsets", []string{client.PatchVerb}) if err != nil { @@ -90,12 +94,12 @@ func (s *StatefulSet) Restart(ctx context.Context, path string) error { return err } - before, err := runtime.Encode(scheme.Codecs.LegacyCodec(appsv1.SchemeGroupVersion), &sts) + before, err := runtime.Encode(scheme.Codecs.LegacyCodec(appsv1.SchemeGroupVersion), sts) if err != nil { return err } - after, err := polymorphichelpers.ObjectRestarterFn(&sts) + after, err := polymorphichelpers.ObjectRestarterFn(sts) if err != nil { return err } @@ -115,8 +119,8 @@ func (s *StatefulSet) Restart(ctx context.Context, path string) error { } -// Load returns a statefulset instance. -func (*StatefulSet) Load(f Factory, fqn string) (*appsv1.StatefulSet, error) { +// GetInstance returns a statefulset instance. +func (*StatefulSet) GetInstance(f Factory, fqn string) (*appsv1.StatefulSet, error) { o, err := f.Get("apps/v1/statefulsets", fqn, true, labels.Everything()) if err != nil { return nil, err @@ -301,3 +305,26 @@ func (s *StatefulSet) SetImages(ctx context.Context, path string, imageSpecs Ima ) return err } + +func podsFromSelector(f Factory, ns string, sel map[string]string) ([]*v1.Pod, error) { + oo, err := f.List("v1/pods", ns, true, labels.Set(sel).AsSelector()) + if err != nil { + return nil, err + } + + if len(oo) == 0 { + return nil, fmt.Errorf("no matching pods for %v", sel) + } + + pp := make([]*v1.Pod, 0, len(oo)) + for _, o := range oo { + pod := new(v1.Pod) + err = runtime.DefaultUnstructuredConverter.FromUnstructured(o.(*unstructured.Unstructured).Object, pod) + if err != nil { + return nil, err + } + pp = append(pp, pod) + } + + return pp, nil +} diff --git a/internal/dao/types.go b/internal/dao/types.go index aa1f49e27b..23ac9e7221 100644 --- a/internal/dao/types.go +++ b/internal/dao/types.go @@ -155,3 +155,9 @@ type ContainsPodSpec interface { // Set Images for a resource SetImages(ctx context.Context, path string, imageSpecs ImageSpecs) error } + +// Sanitizer represents a resource sanitizer. +type Sanitizer interface { + // Sanitize nukes all resources in unhappy state. + Sanitize(context.Context, string) (int, error) +} diff --git a/internal/port/tunnel.go b/internal/port/tunnel.go index 99b5628155..8074372abb 100644 --- a/internal/port/tunnel.go +++ b/internal/port/tunnel.go @@ -32,6 +32,11 @@ func NewPortTunnel(a, co, lp, cp string) PortTunnel { } } +// String dumps as string. +func (t PortTunnel) String() string { + return fmt.Sprintf("%s|%s|%s:%s", t.Address, t.Container, t.LocalPort, t.ContainerPort) +} + // PortMap returns a port mapping. func (t PortTunnel) PortMap() string { if t.LocalPort == "" { diff --git a/internal/render/pod.go b/internal/render/pod.go index 984a9da92c..d055e2ec89 100644 --- a/internal/render/pod.go +++ b/internal/render/pod.go @@ -12,11 +12,27 @@ import ( "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/kubernetes/pkg/util/node" mv1beta1 "k8s.io/metrics/pkg/apis/metrics/v1beta1" "github.com/derailed/k9s/internal/client" ) +const ( + PhaseTerminating = "Terminating" + PhaseInitialized = "Initialized" + PhaseRunning = "Running" + PhaseNotReady = "NoReady" + PhaseCompleted = "Completed" + PhaseContainerCreating = "ContainerCreating" + PhasePodInitializing = "PodInitializing" + PhaseUnknown = "Unknown" + PhaseCrashLoop = "CrashLoopBackOff" + PhaseError = "Error" + PhaseImagePullBackOff = "ImagePullBackOff" + PhaseOOMKilled = "OOMKilled" +) + // Pod renders a K8s Pod to screen. type Pod struct { Base @@ -89,7 +105,7 @@ func (Pod) Header(ns string) Header { func (p Pod) Render(o interface{}, ns string, row *Row) error { pwm, ok := o.(*PodWithMetrics) if !ok { - return fmt.Errorf("Expected PodWithMetrics, but got %T", o) + return fmt.Errorf("expected PodWithMetrics, but got %T", o) } var po v1.Pod @@ -369,3 +385,89 @@ func checkContainerStatus(cs v1.ContainerStatus, i, initCount int) string { return "Init:" + strconv.Itoa(i) + "/" + strconv.Itoa(initCount) } } + +// PosStatus computes pod status. +func PodStatus(pod *v1.Pod) string { + reason := string(pod.Status.Phase) + if pod.Status.Reason != "" { + reason = pod.Status.Reason + } + + for _, condition := range pod.Status.Conditions { + if condition.Type == v1.PodScheduled && condition.Reason == v1.PodReasonSchedulingGated { + reason = v1.PodReasonSchedulingGated + } + } + + var initializing bool + for i := range pod.Status.InitContainerStatuses { + container := pod.Status.InitContainerStatuses[i] + switch { + case container.State.Terminated != nil && container.State.Terminated.ExitCode == 0: + continue + case container.State.Terminated != nil: + if len(container.State.Terminated.Reason) == 0 { + if container.State.Terminated.Signal != 0 { + reason = fmt.Sprintf("Init:Signal:%d", container.State.Terminated.Signal) + } else { + reason = fmt.Sprintf("Init:ExitCode:%d", container.State.Terminated.ExitCode) + } + } else { + reason = "Init:" + container.State.Terminated.Reason + } + initializing = true + case container.State.Waiting != nil && len(container.State.Waiting.Reason) > 0 && container.State.Waiting.Reason != "PodInitializing": + reason = "Init:" + container.State.Waiting.Reason + initializing = true + default: + reason = fmt.Sprintf("Init:%d/%d", i, len(pod.Spec.InitContainers)) + initializing = true + } + break + } + if !initializing { + var hasRunning bool + for i := len(pod.Status.ContainerStatuses) - 1; i >= 0; i-- { + container := pod.Status.ContainerStatuses[i] + if container.State.Waiting != nil && container.State.Waiting.Reason != "" { + reason = container.State.Waiting.Reason + } else if container.State.Terminated != nil && container.State.Terminated.Reason != "" { + reason = container.State.Terminated.Reason + } else if container.State.Terminated != nil && container.State.Terminated.Reason == "" { + if container.State.Terminated.Signal != 0 { + reason = fmt.Sprintf("Signal:%d", container.State.Terminated.Signal) + } else { + reason = fmt.Sprintf("ExitCode:%d", container.State.Terminated.ExitCode) + } + } else if container.Ready && container.State.Running != nil { + hasRunning = true + } + } + + if reason == PhaseCompleted && hasRunning { + if hasPodReadyCondition(pod.Status.Conditions) { + reason = PhaseRunning + } else { + reason = PhaseNotReady + } + } + } + + if pod.DeletionTimestamp != nil && pod.Status.Reason == node.NodeUnreachablePodReason { + reason = PhaseUnknown + } else if pod.DeletionTimestamp != nil { + reason = PhaseTerminating + } + + return reason +} + +func hasPodReadyCondition(conditions []v1.PodCondition) bool { + for _, condition := range conditions { + if condition.Type == v1.PodReady && condition.Status == v1.ConditionTrue { + return true + } + } + + return false +} diff --git a/internal/render/pod_test.go b/internal/render/pod_test.go index d65ff66748..cdecbaf156 100644 --- a/internal/render/pod_test.go +++ b/internal/render/pod_test.go @@ -194,6 +194,66 @@ func TestPodInitRender(t *testing.T) { assert.Equal(t, e, r.Fields[:17]) } +func TestCheckPodStatus(t *testing.T) { + uu := map[string]struct { + pod v1.Pod + e string + }{ + "unknown": { + pod: v1.Pod{ + Status: v1.PodStatus{ + Phase: render.PhaseUnknown, + }, + }, + e: render.PhaseUnknown, + }, + "running": { + pod: v1.Pod{ + Status: v1.PodStatus{ + Phase: v1.PodRunning, + InitContainerStatuses: []v1.ContainerStatus{}, + ContainerStatuses: []v1.ContainerStatus{ + { + Name: "c1", + State: v1.ContainerState{ + Running: &v1.ContainerStateRunning{}, + }, + }, + }, + }, + }, + e: render.PhaseRunning, + }, + "backoff": { + pod: v1.Pod{ + Status: v1.PodStatus{ + Phase: v1.PodRunning, + InitContainerStatuses: []v1.ContainerStatus{}, + ContainerStatuses: []v1.ContainerStatus{ + { + Name: "c1", + State: v1.ContainerState{ + Waiting: &v1.ContainerStateWaiting{ + Reason: render.PhaseImagePullBackOff, + }, + }, + }, + }, + }, + }, + e: render.PhaseImagePullBackOff, + }, + } + + for k := range uu { + u := uu[k] + t.Run(k, func(t *testing.T) { + assert.Equal(t, u.e, render.PodStatus(&u.pod)) + }) + } + +} + // ---------------------------------------------------------------------------- // Helpers... @@ -218,3 +278,123 @@ func makeRes(c, m string) v1.ResourceList { v1.ResourceMemory: mem, } } + +// apiVersion: v1 +// kind: Pod +// metadata: +// creationTimestamp: "2023-11-11T17:01:40Z" +// finalizers: +// - batch.kubernetes.io/job-tracking +// generateName: hello-28328646- +// labels: +// batch.kubernetes.io/controller-uid: 35cf5552-7180-48c1-b7b2-8b6e630a7860 +// batch.kubernetes.io/job-name: hello-28328646 +// controller-uid: 35cf5552-7180-48c1-b7b2-8b6e630a7860 +// job-name: hello-28328646 +// name: hello-28328646-h9fnh +// namespace: fred +// ownerReferences: +// - apiVersion: batch/v1 +// blockOwnerDeletion: true +// controller: true +// kind: Job +// name: hello-28328646 +// uid: 35cf5552-7180-48c1-b7b2-8b6e630a7860 +// resourceVersion: "381637" +// uid: ea77c360-6375-459b-8b30-2ac0c59404cd +// spec: +// containers: +// - args: +// - /bin/bash +// - -c +// - for i in {1..5}; do echo "hello";sleep 1; done +// image: blang/busybox-bash +// imagePullPolicy: Always +// name: c1 +// resources: {} +// terminationMessagePath: /dev/termination-log +// terminationMessagePolicy: File +// volumeMounts: +// - mountPath: /var/run/secrets/kubernetes.io/serviceaccount +// name: kube-api-access-7sztm +// readOnly: true +// dnsPolicy: ClusterFirst +// enableServiceLinks: true +// nodeName: kind-worker +// preemptionPolicy: PreemptLowerPriority +// priority: 0 +// restartPolicy: OnFailure +// schedulerName: default-scheduler +// securityContext: {} +// serviceAccount: default +// serviceAccountName: default +// terminationGracePeriodSeconds: 30 +// tolerations: +// - effect: NoExecute +// key: node.kubernetes.io/not-ready +// operator: Exists +// tolerationSeconds: 300 +// - effect: NoExecute +// key: node.kubernetes.io/unreachable +// operator: Exists +// tolerationSeconds: 300 +// volumes: +// - name: kube-api-access-7sztm +// projected: +// defaultMode: 420 +// sources: +// - serviceAccountToken: +// expirationSeconds: 3607 +// path: token +// - configMap: +// items: +// - key: ca.crt +// path: ca.crt +// name: kube-root-ca.crt +// - downwardAPI: +// items: +// - fieldRef: +// apiVersion: v1 +// fieldPath: metadata.namespace +// path: namespace +// status: +// conditions: +// - lastProbeTime: null +// lastTransitionTime: "2023-11-11T17:01:40Z" +// status: "True" +// type: Initialized +// - lastProbeTime: null +// lastTransitionTime: "2023-11-11T17:01:40Z" +// message: 'containers with unready status: [c1[]' +// reason: ContainersNotReady +// status: "False" +// type: Ready +// - lastProbeTime: null +// lastTransitionTime: "2023-11-11T17:01:40Z" +// message: 'containers with unready status: [c1[]' +// reason: ContainersNotReady +// status: "False" +// type: ContainersReady +// - lastProbeTime: null +// lastTransitionTime: "2023-11-11T17:01:40Z" +// status: "True" +// type: PodScheduled +// containerStatuses: +// - image: blang/busybox-bash +// imageID: "" +// lastState: {} +// name: c1 +// ready: false +// restartCount: 0 +// started: false +// state: +// waiting: +// message: Back-off pulling image "blang/busybox-bash" +// reason: ImagePullBackOff +// hostIP: 172.18.0.3 +// phase: Pending +// podIP: 10.244.1.59 +// podIPs: +// - ip: 10.244.1.59 +// qosClass: BestEffort +// startTime: "2023-11-11T17:01:40Z" diff --git a/internal/ui/dialog/confirm.go b/internal/ui/dialog/confirm.go index e7278e3441..fec298763e 100644 --- a/internal/ui/dialog/confirm.go +++ b/internal/ui/dialog/confirm.go @@ -10,6 +10,59 @@ const dialogKey = "dialog" type confirmFunc func() +func ShowConfirmAck(app *ui.App, pages *ui.Pages, acceptStr string, override bool, title, msg string, ack confirmFunc, cancel cancelFunc) { + styles := app.Styles.Dialog() + + f := tview.NewForm() + f.SetItemPadding(0) + f.SetButtonsAlign(tview.AlignCenter). + SetButtonBackgroundColor(styles.ButtonBgColor.Color()). + SetButtonTextColor(styles.ButtonFgColor.Color()). + SetLabelColor(styles.LabelFgColor.Color()). + SetFieldTextColor(styles.FieldFgColor.Color()) + f.AddButton("Cancel", func() { + dismissConfirm(pages) + cancel() + }) + + var accept bool + if override { + changedFn := func(t string) { + accept = (t == acceptStr) + } + f.AddInputField("Confirm:", "", 30, nil, changedFn) + } else { + accept = true + } + + f.AddButton("OK", func() { + if !accept { + return + } + ack() + dismissConfirm(pages) + cancel() + }) + for i := 0; i < 2; i++ { + b := f.GetButton(i) + if b == nil { + continue + } + b.SetBackgroundColorActivated(styles.ButtonFocusBgColor.Color()) + b.SetLabelColorActivated(styles.ButtonFocusFgColor.Color()) + } + f.SetFocus(0) + modal := tview.NewModalForm("<"+title+">", f) + modal.SetText(msg) + modal.SetTextColor(styles.FgColor.Color()) + modal.SetDoneFunc(func(int, string) { + dismissConfirm(pages) + cancel() + }) + pages.AddPage(confirmKey, modal, false, false) + pages.ShowPage(confirmKey) +} + // ShowConfirm pops a confirmation dialog. func ShowConfirm(styles config.Dialog, pages *ui.Pages, title, msg string, ack confirmFunc, cancel cancelFunc) { f := tview.NewForm() diff --git a/internal/view/browser.go b/internal/view/browser.go index 0678bfacd3..ccf06fcbb6 100644 --- a/internal/view/browser.go +++ b/internal/view/browser.go @@ -479,7 +479,7 @@ func (b *Browser) refreshActions() { aa[ui.KeyE] = ui.NewKeyAction("Edit", b.editCmd, true) } if client.Can(b.meta.Verbs, "delete") { - aa[tcell.KeyCtrlD] = ui.NewKeyAction("Delete", b.deleteCmd, true) + aa[ui.KeyZ] = ui.NewKeyAction("Delete", b.deleteCmd, true) } } } diff --git a/internal/view/dp.go b/internal/view/dp.go index 6ea1fb2648..5f473ed6e7 100644 --- a/internal/view/dp.go +++ b/internal/view/dp.go @@ -88,7 +88,7 @@ func (d *Deploy) logOptions(prev bool) (*dao.LogOptions, error) { func (d *Deploy) showPods(app *App, model ui.Tabular, gvr, path string) { var ddp dao.Deployment - dp, err := ddp.Load(app.factory, path) + dp, err := ddp.GetInstance(app.factory, path) if err != nil { app.Flash().Err(err) return @@ -99,7 +99,7 @@ func (d *Deploy) showPods(app *App, model ui.Tabular, gvr, path string) { func (d *Deploy) dp(path string) (*appsv1.Deployment, error) { var dp dao.Deployment - return dp.Load(d.App().factory, path) + return dp.GetInstance(d.App().factory, path) } // ---------------------------------------------------------------------------- diff --git a/internal/view/exec.go b/internal/view/exec.go index 67c2366a86..e80dca0a05 100644 --- a/internal/view/exec.go +++ b/internal/view/exec.go @@ -323,7 +323,7 @@ func launchShellPod(a *App, node string) error { return err } conn := dial.CoreV1().Pods(ns) - if _, err := conn.Create(ctx, &spec, metav1.CreateOptions{}); err != nil { + if _, err := conn.Create(ctx, spec, metav1.CreateOptions{}); err != nil { return err } @@ -351,7 +351,7 @@ func k9sShellPodName() string { return fmt.Sprintf("%s-%d", k9sShell, os.Getpid()) } -func k9sShellPod(node string, cfg *config.ShellPod) v1.Pod { +func k9sShellPod(node string, cfg *config.ShellPod) *v1.Pod { var grace int64 var priv bool = true @@ -379,7 +379,7 @@ func k9sShellPod(node string, cfg *config.ShellPod) v1.Pod { c.Args = cfg.Args } - return v1.Pod{ + return &v1.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: k9sShellPodName(), Namespace: cfg.Namespace, diff --git a/internal/view/help_test.go b/internal/view/help_test.go index 962109e072..2f29a6b765 100644 --- a/internal/view/help_test.go +++ b/internal/view/help_test.go @@ -21,7 +21,7 @@ func TestHelp(t *testing.T) { v := view.NewHelp(app) assert.Nil(t, v.Init(ctx)) - assert.Equal(t, 27, v.GetRowCount()) + assert.Equal(t, 28, v.GetRowCount()) assert.Equal(t, 6, v.GetColumnCount()) assert.Equal(t, "", strings.TrimSpace(v.GetCell(1, 0).Text)) assert.Equal(t, "Attach", strings.TrimSpace(v.GetCell(1, 1).Text)) diff --git a/internal/view/pod.go b/internal/view/pod.go index bb1574ce35..6e3ef7128f 100644 --- a/internal/view/pod.go +++ b/internal/view/pod.go @@ -27,8 +27,8 @@ import ( const ( windowsOS = "windows" powerShell = "powershell" - osBetaSelector = "beta.kubernetes.io/os" osSelector = "kubernetes.io/os" + osBetaSelector = "beta." + osSelector trUpload = "Upload" trDownload = "Download" ) @@ -71,6 +71,7 @@ func (p *Pod) bindDangerousKeys(aa ui.KeyActions) { ui.KeyS: ui.NewKeyAction("Shell", p.shellCmd, true), ui.KeyA: ui.NewKeyAction("Attach", p.attachCmd, true), ui.KeyT: ui.NewKeyAction("Transfer", p.transferCmd, true), + ui.KeyZ: ui.NewKeyAction("Sanitize", p.sanitizeCmd, true), }) } @@ -255,6 +256,35 @@ func (p *Pod) attachCmd(evt *tcell.EventKey) *tcell.EventKey { return nil } +func (p *Pod) sanitizeCmd(evt *tcell.EventKey) *tcell.EventKey { + res, err := dao.AccessorFor(p.App().factory, p.GVR()) + if err != nil { + p.App().Flash().Err(err) + return nil + } + s, ok := res.(dao.Sanitizer) + if !ok { + p.App().Flash().Err(fmt.Errorf("expecting a sanitizer for %q", p.GVR())) + return nil + } + + ack := "sanitize me pods!" + msg := fmt.Sprintf("Sanitize deletes all pods in completed/error state\nPlease enter [orange::b]%s[-::-] to proceed.", ack) + dialog.ShowConfirmAck(p.App().App, p.App().Content.Pages, ack, true, "Sanitize", msg, func() { + ctx, cancel := context.WithTimeout(context.Background(), 5*p.App().Conn().Config().CallTimeout()) + defer cancel() + total, err := s.Sanitize(ctx, p.GetTable().GetModel().GetNamespace()) + if err != nil { + p.App().Flash().Err(err) + return + } + p.App().Flash().Infof("Sanitized %d %s", total, p.GVR()) + p.Refresh() + }, func() {}) + + return nil +} + func (p *Pod) transferCmd(evt *tcell.EventKey) *tcell.EventKey { path := p.GetTable().GetSelectedItem() if path == "" { @@ -492,15 +522,27 @@ func getPodOS(f dao.Factory, fqn string) (string, error) { if err != nil { return "", err } - if os, ok := po.Spec.NodeSelector[osBetaSelector]; ok { + if os, ok := osFromSelector(po.Spec.NodeSelector); ok { return os, nil } - os, ok := po.Spec.NodeSelector[osSelector] - if !ok { - return "", fmt.Errorf("no os information available") + + no, err := dao.FetchNode(context.Background(), f, po.Spec.Hostname) + if err == nil { + if os, ok := osFromSelector(no.Labels); ok { + return os, nil + } + } + + return "", fmt.Errorf("no os information available") +} + +func osFromSelector(s map[string]string) (string, bool) { + if os, ok := s[osBetaSelector]; ok { + return os, ok } + os, ok := s[osSelector] - return os, nil + return os, ok } func resourceSorters(t *Table) ui.KeyActions { diff --git a/internal/view/pod_test.go b/internal/view/pod_test.go index 6db6f4d00f..1f942588d7 100644 --- a/internal/view/pod_test.go +++ b/internal/view/pod_test.go @@ -16,7 +16,7 @@ func TestPodNew(t *testing.T) { assert.Nil(t, po.Init(makeCtx())) assert.Equal(t, "Pods", po.Name()) - assert.Equal(t, 26, len(po.Hints())) + assert.Equal(t, 27, len(po.Hints())) } // Helpers... diff --git a/internal/view/sts.go b/internal/view/sts.go index e1feffab26..ee400f5788 100644 --- a/internal/view/sts.go +++ b/internal/view/sts.go @@ -38,7 +38,7 @@ func (s *StatefulSet) logOptions(prev bool) (*dao.LogOptions, error) { return nil, errors.New("you must provide a selection") } - sts, err := s.sts(path) + sts, err := s.getInstance(path) if err != nil { return nil, err } @@ -82,16 +82,16 @@ func (s *StatefulSet) bindKeys(aa ui.KeyActions) { } func (s *StatefulSet) showPods(app *App, _ ui.Tabular, _, path string) { - sts, err := s.sts(path) + i, err := s.getInstance(path) if err != nil { app.Flash().Err(err) return } - showPodsFromSelector(app, path, sts.Spec.Selector) + showPodsFromSelector(app, path, i.Spec.Selector) } -func (s *StatefulSet) sts(path string) (*appsv1.StatefulSet, error) { +func (s *StatefulSet) getInstance(path string) (*appsv1.StatefulSet, error) { var sts dao.StatefulSet - return sts.Load(s.App().factory, path) + return sts.GetInstance(s.App().factory, path) } diff --git a/internal/watch/forwarders.go b/internal/watch/forwarders.go index c1c1b15c07..453df6054b 100644 --- a/internal/watch/forwarders.go +++ b/internal/watch/forwarders.go @@ -1,7 +1,6 @@ package watch import ( - "fmt" "strings" "github.com/derailed/k9s/internal/port" @@ -23,7 +22,7 @@ type Forwarder interface { // Container returns a container name. Container() string - // Ports returns the port mapping. + // Port returns the port mapping. Port() string // FQN returns the full port-forward name. @@ -50,9 +49,9 @@ func NewForwarders() Forwarders { return make(map[string]Forwarder) } -// BOZO!! Review!!! // IsPodForwarded checks if pod has a forward. func (ff Forwarders) IsPodForwarded(fqn string) bool { + fqn += "|" for k := range ff { if strings.HasPrefix(k, fqn) { return true @@ -64,9 +63,9 @@ func (ff Forwarders) IsPodForwarded(fqn string) bool { // IsContainerForwarded checks if pod has a forward. func (ff Forwarders) IsContainerForwarded(fqn, co string) bool { - prefix := fqn + "|" + co + fqn += "|" + co for k := range ff { - if strings.HasPrefix(k, prefix) { + if strings.HasPrefix(k, fqn) { return true } } @@ -91,8 +90,7 @@ func (ff Forwarders) Kill(path string) int { // The '|' is added to make sure we do not delete port forwards from other pods that have the same prefix // Without the `|` port forwards for pods, default/web-0 and default/web-0-bla would be both deleted // even if we want only port forwards for default/web-0 to be deleted - prefix := fmt.Sprintf("%s|", path) - + prefix := path + "|" for k, f := range ff { if k == path || strings.HasPrefix(k, prefix) { stats++ @@ -109,6 +107,6 @@ func (ff Forwarders) Kill(path string) int { func (ff Forwarders) Dump() { log.Debug().Msgf("----------- PORT-FORWARDS --------------") for k, f := range ff { - log.Debug().Msgf(" %s -- %#v", k, f) + log.Debug().Msgf(" %s -- %s", k, f) } } diff --git a/internal/watch/forwarders_test.go b/internal/watch/forwarders_test.go new file mode 100644 index 0000000000..aa061ba066 --- /dev/null +++ b/internal/watch/forwarders_test.go @@ -0,0 +1,183 @@ +package watch_test + +import ( + "testing" + + "github.com/derailed/k9s/internal/port" + "github.com/derailed/k9s/internal/watch" + "github.com/rs/zerolog" + "github.com/stretchr/testify/assert" + "k8s.io/client-go/tools/portforward" +) + +func init() { + zerolog.SetGlobalLevel(zerolog.FatalLevel) +} + +func TestIsPodForwarded(t *testing.T) { + uu := map[string]struct { + ff watch.Forwarders + fqn string + e bool + }{ + "happy": { + ff: watch.Forwarders{ + "ns1/p1||8080:8080": newNoOpForwarder(), + }, + fqn: "ns1/p1", + e: true, + }, + "dud": { + ff: watch.Forwarders{ + "ns1/p1||8080:8080": newNoOpForwarder(), + }, + fqn: "ns1/p2", + }, + "sub": { + ff: watch.Forwarders{ + "ns1/freddy||8080:8080": newNoOpForwarder(), + }, + fqn: "ns1/fred", + }, + } + + for k := range uu { + u := uu[k] + t.Run(k, func(t *testing.T) { + assert.Equal(t, u.e, u.ff.IsPodForwarded(u.fqn)) + }) + } +} + +func TestIsContainerForwarded(t *testing.T) { + uu := map[string]struct { + ff watch.Forwarders + fqn, co string + e bool + }{ + "happy": { + ff: watch.Forwarders{ + "ns1/p1|c1|8080:8080": newNoOpForwarder(), + }, + fqn: "ns1/p1", + co: "c1", + e: true, + }, + "dud": { + ff: watch.Forwarders{ + "ns1/p1|c1|8080:8080": newNoOpForwarder(), + }, + fqn: "ns1/p1", + co: "c2", + }, + "sub": { + ff: watch.Forwarders{ + "ns1/freddy|c1|8080:8080": newNoOpForwarder(), + }, + fqn: "ns1/fred", + co: "c1", + }, + } + + for k := range uu { + u := uu[k] + t.Run(k, func(t *testing.T) { + assert.Equal(t, u.e, u.ff.IsContainerForwarded(u.fqn, u.co)) + }) + } +} + +func TestKill(t *testing.T) { + uu := map[string]struct { + ff watch.Forwarders + path string + kills int + }{ + "partial_match": { + ff: watch.Forwarders{ + "ns1/p1|c1|8080:8080": newNoOpForwarder(), + "ns1/p1_1|c1|8080:8080": newNoOpForwarder(), + "ns1/p2|c1|8080:8080": newNoOpForwarder(), + }, + path: "ns1/p1", + kills: 1, + }, + "partial_no_match": { + ff: watch.Forwarders{ + "ns1/p1|c1|8080:8080": newNoOpForwarder(), + "ns1/p1_1|c1|8080:8080": newNoOpForwarder(), + "ns1/p2|c1|8080:8080": newNoOpForwarder(), + }, + path: "ns1/p", + }, + "path_sub": { + ff: watch.Forwarders{ + "ns1/p1|c1|8080:8080": newNoOpForwarder(), + "ns1/p1_1|c1|8080:8080": newNoOpForwarder(), + "ns1/p2|c1|8080:8080": newNoOpForwarder(), + }, + path: "ns1/p1", + kills: 1, + }, + "partial_multi": { + ff: watch.Forwarders{ + "ns1/p1|c1|8080:8080": newNoOpForwarder(), + "ns1/p1|c2|8081:8081": newNoOpForwarder(), + "ns1/p2|c1|8080:8080": newNoOpForwarder(), + }, + path: "ns1/p1", + kills: 2, + }, + "full_match": { + ff: watch.Forwarders{ + "ns1/p1|c1|8080:8080": newNoOpForwarder(), + "ns1/p1_1|c1|8080:8080": newNoOpForwarder(), + "ns1/p2|c1|8080:8080": newNoOpForwarder(), + }, + path: "ns1/p1|c1|8080:8080", + kills: 1, + }, + "full_no_match_co": { + ff: watch.Forwarders{ + "ns1/p1|c1|8080:8080": newNoOpForwarder(), + "ns1/p1_1|c1|8080:8080": newNoOpForwarder(), + "ns1/p2|c1|8080:8080": newNoOpForwarder(), + }, + path: "ns1/p1|c2|8080:8080", + }, + "full_no_match_ports": { + ff: watch.Forwarders{ + "ns1/p1|c1|8080:8080": newNoOpForwarder(), + "ns1/p1_1|c1|8080:8080": newNoOpForwarder(), + "ns1/p2|c1|8080:8080": newNoOpForwarder(), + }, + path: "ns1/p1|c1|8081:8080", + }, + } + + for k := range uu { + u := uu[k] + t.Run(k, func(t *testing.T) { + assert.Equal(t, u.kills, u.ff.Kill(u.path)) + }) + } +} + +type noOpForwarder struct{} + +func newNoOpForwarder() noOpForwarder { + return noOpForwarder{} +} + +func (m noOpForwarder) Start(path string, tunnel port.PortTunnel) (*portforward.PortForwarder, error) { + return nil, nil +} +func (m noOpForwarder) Stop() {} +func (m noOpForwarder) ID() string { return "" } +func (m noOpForwarder) Container() string { return "" } +func (m noOpForwarder) Port() string { return "" } +func (m noOpForwarder) FQN() string { return "" } +func (m noOpForwarder) Active() bool { return false } +func (m noOpForwarder) SetActive(bool) {} +func (m noOpForwarder) Age() string { return "" } +func (m noOpForwarder) HasPortMapping(string) bool { return false } From 7af4b2d890b9c0981d008c7fff2c272d6a61fb36 Mon Sep 17 00:00:00 2001 From: Jayson Wang Date: Sun, 12 Nov 2023 09:47:44 +0800 Subject: [PATCH 109/130] try to get the os name form the pod assigned node (#2282) * get the os name from the node when needed * code quality * remove err sentinel --------- Co-authored-by: Fernand Galiana --- internal/view/node.go | 2 +- internal/view/pod.go | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/internal/view/node.go b/internal/view/node.go index 9cce2783b7..630118323a 100644 --- a/internal/view/node.go +++ b/internal/view/node.go @@ -151,7 +151,7 @@ func (n *Node) sshCmd(evt *tcell.EventKey) *tcell.EventKey { defer n.Start() _, node := client.Namespaced(path) if err := ssh(n.App(), node); err != nil { - log.Error().Err(err).Msgf("SSH Failed") + log.Error().Err(err).Msgf("Node Shell Failed") } return nil diff --git a/internal/view/pod.go b/internal/view/pod.go index 6e3ef7128f..a526b0cca4 100644 --- a/internal/view/pod.go +++ b/internal/view/pod.go @@ -522,26 +522,26 @@ func getPodOS(f dao.Factory, fqn string) (string, error) { if err != nil { return "", err } - if os, ok := osFromSelector(po.Spec.NodeSelector); ok { - return os, nil + if podOS, ok := osFromSelector(po.Spec.NodeSelector); ok { + return podOS, nil } - no, err := dao.FetchNode(context.Background(), f, po.Spec.Hostname) + node, err := dao.FetchNode(context.Background(), f, po.Spec.NodeName) if err == nil { - if os, ok := osFromSelector(no.Labels); ok { - return os, nil + if nodeOS, ok := osFromSelector(node.Labels); ok { + return nodeOS, nil } } - return "", fmt.Errorf("no os information available") + return "", errors.New("no os information available") } func osFromSelector(s map[string]string) (string, bool) { if os, ok := s[osBetaSelector]; ok { return os, ok } - os, ok := s[osSelector] + os, ok := s[osSelector] return os, ok } From eb7460e8d8a8e67acff5980a80982162d7460a00 Mon Sep 17 00:00:00 2001 From: derailed Date: Sat, 11 Nov 2023 23:16:14 -0700 Subject: [PATCH 110/130] restore delete shortcut --- internal/view/browser.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/view/browser.go b/internal/view/browser.go index ccf06fcbb6..0678bfacd3 100644 --- a/internal/view/browser.go +++ b/internal/view/browser.go @@ -479,7 +479,7 @@ func (b *Browser) refreshActions() { aa[ui.KeyE] = ui.NewKeyAction("Edit", b.editCmd, true) } if client.Can(b.meta.Verbs, "delete") { - aa[ui.KeyZ] = ui.NewKeyAction("Delete", b.deleteCmd, true) + aa[tcell.KeyCtrlD] = ui.NewKeyAction("Delete", b.deleteCmd, true) } } } From 694159b857314de5b69f251e42a5931f32105cb8 Mon Sep 17 00:00:00 2001 From: derailed Date: Sat, 11 Nov 2023 23:16:14 -0700 Subject: [PATCH 111/130] K9s release v0.28.2 - Restore delete shortcut --- Makefile | 2 +- change_logs/release_v0.28.2.md | 63 ++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 change_logs/release_v0.28.2.md diff --git a/Makefile b/Makefile index 87337a1b1d..e59570082b 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ DATE ?= $(shell TZ=UTC date -j -f "%s" ${SOURCE_DATE_EPOCH} +"%Y-%m-%dT%H: else DATE ?= $(shell date -u -d @${SOURCE_DATE_EPOCH} +"%Y-%m-%dT%H:%M:%SZ") endif -VERSION ?= v0.28.1 +VERSION ?= v0.28.2 IMG_NAME := derailed/k9s IMAGE := ${IMG_NAME}:${VERSION} diff --git a/change_logs/release_v0.28.2.md b/change_logs/release_v0.28.2.md new file mode 100644 index 0000000000..94514d8638 --- /dev/null +++ b/change_logs/release_v0.28.2.md @@ -0,0 +1,63 @@ + + +# Release v0.28.2 + +## Notes + +Thank you to all that contributed with flushing out issues and enhancements for K9s! I'll try to mark some of these issues as fixed. But if you don't mind grab the latest rev and see if we're happier with some of the fixes! If you've filed an issue please help me verify and close. Your support, kindness and awesome suggestions to make K9s better are, as ever, very much noted and appreciated! Also big thanks to all that have allocated their own time to help others on both slack and on this repo!! + +As you may know, K9s is not pimped out by corps with deep pockets, thus if you feel K9s is helping your Kubernetes journey, please consider joining our [sponsorship program](https://github.com/sponsors/derailed) and/or make some noise on social! [@kitesurfer](https://twitter.com/kitesurfer) + +On Slack? Please join us [K9slackers](https://join.slack.com/t/k9sers/shared_invite/enQtOTA5MDEyNzI5MTU0LWQ1ZGI3MzliYzZhZWEyNzYxYzA3NjE0YTk1YmFmNzViZjIyNzhkZGI0MmJjYzhlNjdlMGJhYzE2ZGU1NjkyNTM) + +--- + +## ♫ Sounds Behind The Release ♭ + +* [If Trouble Was Money - Albert Collins](https://www.youtube.com/watch?v=cz6LbWWqX-g) +* [Old Love - Eric Clapton](https://www.youtube.com/watch?v=EklciRHZnUQ) +* [Touch And GO - The Cars](https://www.youtube.com/watch?v=L7Gpr_Auz8Y) + +--- + +## A Word From Our Sponsors... + +To all the good folks below that opted to `pay it forward` and join our sponsorship program, I salute you!! + +* [Bradley Heilbrun](https://github.com/bheilbrun) + +> Sponsorship cancellations since the last release: `2` ;( + +--- + +## Feature Release + +### Sanitize Me! + +Over time, you might end up with a lot of pod cruft on your cluster. Pods that might be completed, erroring out, etc... Once you've completed your pod analysis it could be useful to clear out these pods from your cluster. + +In this drop, we introduce a new command `sanitize` aka `z` available on pod views otherwise known as `The Axe!`. This command performs a clean up of all pods that are in either in completed, crashloopBackoff or failed state. This could be especially handy if you run workflows jobs or commands on your cluster that might leave lots of `turd` pods. Tho this has a `phat` fail safe dialog please be careful with this one as it is a blunt tool! + +--- + +## Resolved Issues + +* [Issue #2281](https://github.com/derailed/k9s/issues/2281) Can't run Node shell +* [Issue #2277](https://github.com/derailed/k9s/issues/2277) bulk actions applied to power filters +* [Issue #2273](https://github.com/derailed/k9s/issues/2273) Error when draining node that is cordoned bug +* [Issue #2233](https://github.com/derailed/k9s/issues/2233) Invalid port-forwarding status displayed over the k9s UI + +--- + +## Contributed PRs + +Please be sure to give `Big Thanks!` and `ATTA Girls/Boys!` to all the fine contributors for making K9s better for all of us!! + +* [PR #2280](https://github.com/derailed/k9s/pull/2280) chore: replace github.com/ghodss/yaml with sigs.k8s. +* [PR #2278](https://github.com/derailed/k9s/pull/2278) README.md: fix typo in netshoot URL +* [PR #2275](https://github.com/derailed/k9s/pull/2275) check if the Node already cordoned when executing Drain +* [PR #2247](https://github.com/derailed/k9s/pull/2247) Delete port forwards when pods get deleted + +--- + + © 2023 Imhotep Software LLC. All materials licensed under [Apache v2.0](http://www.apache.org/licenses/LICENSE-2.0) From 24e244ca821e7aa7f15a475caff36904ce2cb6be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Loiselet?= Date: Sun, 12 Nov 2023 17:42:50 +0100 Subject: [PATCH 112/130] fix(#1359): add option to keep missing clusters in config (#2213) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Clément Loiselet --- README.md | 2 ++ internal/config/config_test.go | 2 ++ internal/config/k9s.go | 9 +++++++++ 3 files changed, 13 insertions(+) diff --git a/README.md b/README.md index d4e6108d53..7eb680e472 100644 --- a/README.md +++ b/README.md @@ -357,6 +357,8 @@ K9s uses aliases to navigate most K8s resources. currentContext: minikube # Indicates the current kube cluster. Defaults to current context cluster currentCluster: minikube + # KeepMissingClusters will keep clusters in the config if they are missing from the current kubeconfig file. Default false + KeepMissingClusters: false # Persists per cluster preferences for favorite namespaces and view. clusters: coolio: diff --git a/internal/config/config_test.go b/internal/config/config_test.go index c57a45ed56..9530a353ad 100644 --- a/internal/config/config_test.go +++ b/internal/config/config_test.go @@ -297,6 +297,7 @@ var expectedConfig = `k9s: showTime: false currentContext: blee currentCluster: blee + keepMissingClusters: false clusters: blee: namespace: @@ -397,6 +398,7 @@ var resetConfig = `k9s: showTime: false currentContext: blee currentCluster: blee + keepMissingClusters: false clusters: blee: namespace: diff --git a/internal/config/k9s.go b/internal/config/k9s.go index 6bac7aff29..37bb6044f3 100644 --- a/internal/config/k9s.go +++ b/internal/config/k9s.go @@ -25,6 +25,7 @@ type K9s struct { Logger *Logger `yaml:"logger"` CurrentContext string `yaml:"currentContext"` CurrentCluster string `yaml:"currentCluster"` + KeepMissingClusters bool `yaml:"keepMissingClusters"` Clusters map[string]*Cluster `yaml:"clusters,omitempty"` Thresholds Threshold `yaml:"thresholds"` ScreenDumpDir string `yaml:"screenDumpDir"` @@ -206,9 +207,17 @@ func (k *K9s) validateClusters(c client.Connection, ks KubeSettings) { } for key, cluster := range k.Clusters { cluster.Validate(c, ks) + // if the cluster is defined in the $KUBECONFIG file, keep it in the k9s config file if _, ok := cc[key]; ok { continue } + + // if we asked to keep the clusters in the config file + if k.KeepMissingClusters { + continue + } + + // else remove it from the k9s config file if k.CurrentCluster == key { k.CurrentCluster = "" } From b3029eefbdf9d3f985add909609c9afaea57e2ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Blaise?= <32685572+clementblaise@users.noreply.github.com> Date: Sun, 12 Nov 2023 12:03:47 -0500 Subject: [PATCH 113/130] Add crossplane plugin (#2204) --- plugins/crossplane.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 plugins/crossplane.yml diff --git a/plugins/crossplane.yml b/plugins/crossplane.yml new file mode 100644 index 0000000000..8b16340dce --- /dev/null +++ b/plugins/crossplane.yml @@ -0,0 +1,13 @@ +plugin: + # List all the resources managed by a Composite Resource + kube-lineage: + shortCut: Ctrl-X + confirm: false + description: "Kube Lineage" + scopes: + - all + command: sh + background: false + args: + - -c + - "kubectl lineage -d 6 --exclude-types Event,ProviderConfigUsage.aws.upbound.io,ProviderConfigUsage.kubernetes.crossplane.io --show-group --context $CONTEXT $RESOURCE_NAME $NAME | less" \ No newline at end of file From a2a7544a6f5c819c2ff067e3ef9b3475dfbb7a0a Mon Sep 17 00:00:00 2001 From: MrLuje Date: Sun, 12 Nov 2023 18:07:46 +0100 Subject: [PATCH 114/130] fix: trigger a single log refresh after changing 'since' (#2202) --- internal/view/log.go | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/internal/view/log.go b/internal/view/log.go index bf22e5b3d9..a5f9e34355 100644 --- a/internal/view/log.go +++ b/internal/view/log.go @@ -33,15 +33,16 @@ const ( type Log struct { *tview.Flex - app *App - logs *Logger - indicator *LogIndicator - ansiWriter io.Writer - model *model.Log - cancelFn context.CancelFunc - cancelUpdates bool - mx sync.Mutex - follow bool + app *App + logs *Logger + indicator *LogIndicator + ansiWriter io.Writer + model *model.Log + cancelFn context.CancelFunc + cancelUpdates bool + mx sync.Mutex + follow bool + requestOneRefresh bool } var _ model.Component = (*Log)(nil) @@ -338,9 +339,12 @@ func (l *Log) Flush(lines [][]byte) { } }() - if len(lines) == 0 || !l.indicator.AutoScroll() || l.cancelUpdates { + if len(lines) == 0 || (!l.requestOneRefresh && !l.indicator.AutoScroll()) || l.cancelUpdates { return } + if l.requestOneRefresh { + l.requestOneRefresh = false + } for i := 0; i < len(lines); i++ { if l.cancelUpdates { break @@ -364,6 +368,7 @@ func (l *Log) sinceCmd(n int) func(evt *tcell.EventKey) *tcell.EventKey { } else { l.model.SetSinceSeconds(ctx, int64(n)) } + l.requestOneRefresh = true l.updateTitle() return nil From 21f1987fba707ed4460c6291a2494d8e06f66cfa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 Nov 2023 10:10:50 -0700 Subject: [PATCH 115/130] Bump actions/setup-go from 4.0.1 to 4.1.0 (#2200) Bumps [actions/setup-go](https://github.com/actions/setup-go) from 4.0.1 to 4.1.0. - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](https://github.com/actions/setup-go/compare/v4.0.1...v4.1.0) --- updated-dependencies: - dependency-name: actions/setup-go dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0de092ec61..6133c17697 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,7 +19,7 @@ jobs: uses: actions/checkout@v4.1.1 - name: Install Go - uses: actions/setup-go@v4.0.1 + uses: actions/setup-go@v4.1.0 with: go-version-file: go.mod cache-dependency-path: go.sum From 23e600bef54f51298747ef85fb18664e7e3d21d1 Mon Sep 17 00:00:00 2001 From: Takumi Sue <23391543+mikutas@users.noreply.github.com> Date: Mon, 13 Nov 2023 02:23:46 +0900 Subject: [PATCH 116/130] Use current k9s NS if new context has no default NS (#2197) * Fix resetting active namespace when switching ctx * Respect existing behavior and set k9s's active ns if no ns specified in the context --- internal/client/config.go | 20 ++++++++++++++++++++ internal/client/config_test.go | 6 ++++-- internal/dao/testdata/config | 1 + internal/view/app.go | 1 + 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/internal/client/config.go b/internal/client/config.go index e9373dfde6..6086ac3159 100644 --- a/internal/client/config.go +++ b/internal/client/config.go @@ -94,6 +94,19 @@ func (c *Config) CurrentContextName() (string, error) { return cfg.CurrentContext, nil } +func (c *Config) CurrentContextNamespace() (string, error) { + name, err := c.CurrentContextName() + if err != nil { + return "", err + } + context, err := c.GetContext(name) + if err != nil { + return "", err + } + + return context.Namespace, nil +} + // GetContext fetch a given context or error if it does not exists. func (c *Config) GetContext(n string) (*clientcmdapi.Context, error) { cfg, err := c.RawConfig() @@ -283,6 +296,13 @@ func (c *Config) CurrentUserName() (string, error) { func (c *Config) CurrentNamespaceName() (string, error) { ns, _, err := c.clientConfig().Namespace() + if ns == "default" { + ns, err = c.CurrentContextNamespace() + if ns == "" && err == nil { + return "", errors.New("No namespace specified in context") + } + } + return ns, err } diff --git a/internal/client/config_test.go b/internal/client/config_test.go index eb02cc530e..cf2e854945 100644 --- a/internal/client/config_test.go +++ b/internal/client/config_test.go @@ -111,7 +111,7 @@ func TestConfigCurrentNamespace(t *testing.T) { }{ "default": { flags: &genericclioptions.ConfigFlags{KubeConfig: &kubeConfig}, - namespace: "default", + namespace: "", }, "withContext": { flags: &genericclioptions.ConfigFlags{KubeConfig: &kubeConfig, Context: &bleeCTX}, @@ -128,7 +128,9 @@ func TestConfigCurrentNamespace(t *testing.T) { t.Run(k, func(t *testing.T) { cfg := client.NewConfig(u.flags) ns, err := cfg.CurrentNamespaceName() - assert.Nil(t, err) + if ns != "" { + assert.Nil(t, err) + } assert.Equal(t, u.namespace, ns) }) } diff --git a/internal/dao/testdata/config b/internal/dao/testdata/config index 5541a687e2..74d10be07c 100644 --- a/internal/dao/testdata/config +++ b/internal/dao/testdata/config @@ -21,6 +21,7 @@ contexts: name: fred - context: cluster: blee + namespace: zorg user: blee name: blee - context: diff --git a/internal/view/app.go b/internal/view/app.go index b0bf03566c..a921d443d0 100644 --- a/internal/view/app.go +++ b/internal/view/app.go @@ -405,6 +405,7 @@ func (a *App) switchContext(name string) error { ns, err := a.Conn().Config().CurrentNamespaceName() if err != nil { log.Warn().Msg("No namespace specified in context. Using K9s config") + ns = a.Config.ActiveNamespace() } a.initFactory(ns) From 9d804c6c17901e197e05053d7d8925538ee82d9f Mon Sep 17 00:00:00 2001 From: Nick Mills-Barrett Date: Sun, 12 Nov 2023 17:32:02 +0000 Subject: [PATCH 117/130] Add env var to disable node pod counts (#2168) * Add env var to disable node pod counts * Move disabling pod counting to config * Correct alias context function name --- internal/config/k9s.go | 1 + internal/dao/node.go | 11 ++++++++--- internal/keys.go | 1 + internal/view/node.go | 6 ++++++ 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/internal/config/k9s.go b/internal/config/k9s.go index 37bb6044f3..4afbb2b111 100644 --- a/internal/config/k9s.go +++ b/internal/config/k9s.go @@ -29,6 +29,7 @@ type K9s struct { Clusters map[string]*Cluster `yaml:"clusters,omitempty"` Thresholds Threshold `yaml:"thresholds"` ScreenDumpDir string `yaml:"screenDumpDir"` + DisablePodCounting bool `yaml:"disablePodCounting"` manualRefreshRate int manualHeadless *bool manualLogoless *bool diff --git a/internal/dao/node.go b/internal/dao/node.go index 8f9cb0b5bd..9504f110be 100644 --- a/internal/dao/node.go +++ b/internal/dao/node.go @@ -155,6 +155,8 @@ func (n *Node) List(ctx context.Context, ns string) ([]runtime.Object, error) { nmx, _ = client.DialMetrics(n.Client()).FetchNodesMetricsMap(ctx) } + shouldCountPods, _ := ctx.Value(internal.KeyPodCounting).(bool) + res := make([]runtime.Object, 0, len(oo)) for _, o := range oo { u, ok := o.(*unstructured.Unstructured) @@ -164,9 +166,12 @@ func (n *Node) List(ctx context.Context, ns string) ([]runtime.Object, error) { fqn := extractFQN(o) _, name := client.Namespaced(fqn) - podCount, err := n.CountPods(name) - if err != nil { - log.Error().Err(err).Msgf("unable to get pods count for %s", name) + podCount := -1 + if shouldCountPods { + podCount, err = n.CountPods(name) + if err != nil { + log.Error().Err(err).Msgf("unable to get pods count for %s", name) + } } res = append(res, &render.NodeWithMetrics{ Raw: u, diff --git a/internal/keys.go b/internal/keys.go index 522d0f9bdb..f184b49d5f 100644 --- a/internal/keys.go +++ b/internal/keys.go @@ -30,4 +30,5 @@ const ( KeyWithMetrics ContextKey = "withMetrics" KeyViewConfig ContextKey = "viewConfig" KeyWait ContextKey = "wait" + KeyPodCounting ContextKey = "podCounting" ) diff --git a/internal/view/node.go b/internal/view/node.go index 630118323a..d70b2b517b 100644 --- a/internal/view/node.go +++ b/internal/view/node.go @@ -5,6 +5,7 @@ import ( "fmt" "time" + "github.com/derailed/k9s/internal" "github.com/derailed/k9s/internal/client" "github.com/derailed/k9s/internal/dao" "github.com/derailed/k9s/internal/ui" @@ -26,10 +27,15 @@ func NewNode(gvr client.GVR) ResourceViewer { } n.AddBindKeysFn(n.bindKeys) n.GetTable().SetEnterFn(n.showPods) + n.SetContextFn(n.nodeContext) return &n } +func (n *Node) nodeContext(ctx context.Context) context.Context { + return context.WithValue(ctx, internal.KeyPodCounting, !n.App().Config.K9s.DisablePodCounting) +} + func (n *Node) bindDangerousKeys(aa ui.KeyActions) { aa.Add(ui.KeyActions{ ui.KeyC: ui.NewKeyAction("Cordon", n.toggleCordonCmd(true), true), From 5a8dc2d4b34cc7deae5cdb3493b02660aed54f02 Mon Sep 17 00:00:00 2001 From: Alexandru Placinta Date: Sun, 12 Nov 2023 18:52:10 +0100 Subject: [PATCH 118/130] Add colour config for container picker (#2140) --- internal/config/styles.go | 17 +++++++++++++++++ internal/view/picker.go | 9 ++++++--- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/internal/config/styles.go b/internal/config/styles.go index 89dbe630e8..9e1194165c 100644 --- a/internal/config/styles.go +++ b/internal/config/styles.go @@ -104,6 +104,7 @@ type ( Xray Xray `yaml:"xray"` Charts Charts `yaml:"charts"` Yaml Yaml `yaml:"yaml"` + Picker Picker `yaml:"picker"` Log Log `yaml:"logs"` } @@ -126,6 +127,13 @@ type ( Indicator LogIndicator `yaml:"indicator"` } + // Picker tracks color when selecting containers + Picker struct { + MainColor Color `yaml:"mainColor"` + FocusColor Color `yaml:"focusColor"` + ShortcutColor Color `yaml:"shortcutColor"` + } + // LogIndicator tracks log view indicator. LogIndicator struct { FgColor Color `yaml:"fgColor"` @@ -321,6 +329,7 @@ func newViews() Views { Xray: newXray(), Charts: newCharts(), Yaml: newYaml(), + Picker: newPicker(), Log: newLog(), } } @@ -370,6 +379,14 @@ func newStatus() Status { } } +func newPicker() Picker { + return Picker{ + MainColor: "white", + FocusColor: "aqua", + ShortcutColor: "aqua", + } +} + func newLog() Log { return Log{ FgColor: "lightskyblue", diff --git a/internal/view/picker.go b/internal/view/picker.go index 4ead1fcaf1..c789a37037 100644 --- a/internal/view/picker.go +++ b/internal/view/picker.go @@ -30,14 +30,17 @@ func (p *Picker) Init(ctx context.Context) error { if err != nil { return err } + + pickerView := app.Styles.Views().Picker p.actions[tcell.KeyEscape] = ui.NewKeyAction("Back", app.PrevCmd, true) p.SetBorder(true) - p.SetMainTextColor(tcell.ColorWhite) + p.SetMainTextColor(pickerView.MainColor.Color()) p.ShowSecondaryText(false) - p.SetShortcutColor(tcell.ColorAqua) - p.SetSelectedBackgroundColor(tcell.ColorAqua) + p.SetShortcutColor(pickerView.ShortcutColor.Color()) + p.SetSelectedBackgroundColor(pickerView.FocusColor.Color()) p.SetTitle(" [aqua::b]Containers Picker ") + p.SetInputCapture(func(evt *tcell.EventKey) *tcell.EventKey { if a, ok := p.actions[evt.Key()]; ok { a.Action(evt) From 7ece5436810a8921b114edb99b1e8064ec8c5377 Mon Sep 17 00:00:00 2001 From: Fernand Galiana Date: Sun, 12 Nov 2023 10:59:09 -0700 Subject: [PATCH 119/130] Fix merge issues with PR #2168 (#2288) --- internal/config/config_test.go | 2 ++ internal/config/testdata/k9s.yml | 1 + internal/render/node.go | 6 +++++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/internal/config/config_test.go b/internal/config/config_test.go index 9530a353ad..ee17101195 100644 --- a/internal/config/config_test.go +++ b/internal/config/config_test.go @@ -375,6 +375,7 @@ var expectedConfig = `k9s: critical: 90 warn: 70 screenDumpDir: /tmp + disablePodCounting: false ` var resetConfig = `k9s: @@ -428,4 +429,5 @@ var resetConfig = `k9s: critical: 90 warn: 70 screenDumpDir: /tmp + disablePodCounting: false ` diff --git a/internal/config/testdata/k9s.yml b/internal/config/testdata/k9s.yml index b9116b279e..e98a2180cf 100644 --- a/internal/config/testdata/k9s.yml +++ b/internal/config/testdata/k9s.yml @@ -31,3 +31,4 @@ k9s: view: active: po screenDumpDir: /tmp + disablePodCounting: false diff --git a/internal/render/node.go b/internal/render/node.go index b5331a6f16..11e6d3989c 100644 --- a/internal/render/node.go +++ b/internal/render/node.go @@ -77,6 +77,10 @@ func (n Node) Render(o interface{}, ns string, r *Row) error { nodeRoles(&no, roles) sort.Sort(roles) + podCount := strconv.Itoa(oo.PodCount) + if pc := oo.PodCount; pc == -1 { + podCount = NAValue + } r.ID = client.FQN("", na) r.Fields = Fields{ no.Name, @@ -86,7 +90,7 @@ func (n Node) Render(o interface{}, ns string, r *Row) error { no.Status.NodeInfo.KernelVersion, iIP, eIP, - strconv.Itoa(oo.PodCount), + podCount, toMc(c.cpu), toMi(c.mem), client.ToPercentageStr(c.cpu, a.cpu), From 46a1ed0cf100b0107546403b30a7208e31dfafee Mon Sep 17 00:00:00 2001 From: Jayson Wang Date: Mon, 13 Nov 2023 02:00:35 +0800 Subject: [PATCH 120/130] storageclasses view keeps the same output as kubectl get sc (#2132) * storageclasses view keeps the same output as kubectl get sc * fix sc test * rollback labels and valid field and add test case --- internal/render/helpers.go | 7 +++++++ internal/render/sc.go | 21 ++++++++++++++++++--- internal/render/sc_test.go | 2 +- internal/render/testdata/sc.json | 3 ++- 4 files changed, 28 insertions(+), 5 deletions(-) diff --git a/internal/render/helpers.go b/internal/render/helpers.go index 422c6d8f57..95ed2cf6ef 100644 --- a/internal/render/helpers.go +++ b/internal/render/helpers.go @@ -304,6 +304,13 @@ func boolPtrToStr(b *bool) string { return boolToStr(*b) } +func strPtrToStr(s *string) string { + if s == nil { + return "" + } + return *s +} + // Check if string is in a string list. func in(ll []string, s string) bool { for _, l := range ll { diff --git a/internal/render/sc.go b/internal/render/sc.go index dc6de66c7c..a2995eab7e 100644 --- a/internal/render/sc.go +++ b/internal/render/sc.go @@ -5,8 +5,10 @@ import ( "github.com/derailed/k9s/internal/client" storagev1 "k8s.io/api/storage/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/kubectl/pkg/util/storage" ) // StorageClass renders a K8s StorageClass to screen. @@ -19,6 +21,9 @@ func (StorageClass) Header(ns string) Header { return Header{ HeaderColumn{Name: "NAME"}, HeaderColumn{Name: "PROVISIONER"}, + HeaderColumn{Name: "RECLAIMPOLICY"}, + HeaderColumn{Name: "VOLUMEBINDINGMODE"}, + HeaderColumn{Name: "ALLOWVOLUMEEXPANSION"}, HeaderColumn{Name: "LABELS", Wide: true}, HeaderColumn{Name: "VALID", Wide: true}, HeaderColumn{Name: "AGE", Time: true}, @@ -26,7 +31,7 @@ func (StorageClass) Header(ns string) Header { } // Render renders a K8s resource to screen. -func (StorageClass) Render(o interface{}, ns string, r *Row) error { +func (s StorageClass) Render(o interface{}, ns string, r *Row) error { raw, ok := o.(*unstructured.Unstructured) if !ok { return fmt.Errorf("Expected StorageClass, but got %T", o) @@ -39,8 +44,11 @@ func (StorageClass) Render(o interface{}, ns string, r *Row) error { r.ID = client.FQN(client.ClusterScope, sc.ObjectMeta.Name) r.Fields = Fields{ - sc.Name, - string(sc.Provisioner), + s.nameWithDefault(sc.ObjectMeta), + sc.Provisioner, + strPtrToStr((*string)(sc.ReclaimPolicy)), + strPtrToStr((*string)(sc.VolumeBindingMode)), + boolPtrToStr(sc.AllowVolumeExpansion), mapToStr(sc.Labels), "", toAge(sc.GetCreationTimestamp()), @@ -48,3 +56,10 @@ func (StorageClass) Render(o interface{}, ns string, r *Row) error { return nil } + +func (StorageClass) nameWithDefault(meta metav1.ObjectMeta) string { + if storage.IsDefaultAnnotationText(meta) == "Yes" { + return meta.Name + " (default)" + } + return meta.Name +} diff --git a/internal/render/sc_test.go b/internal/render/sc_test.go index 80e13393d0..60cd56f242 100644 --- a/internal/render/sc_test.go +++ b/internal/render/sc_test.go @@ -13,5 +13,5 @@ func TestStorageClassRender(t *testing.T) { assert.NoError(t, c.Render(load(t, "sc"), "", &r)) assert.Equal(t, "-/standard", r.ID) - assert.Equal(t, render.Fields{"standard", "kubernetes.io/gce-pd"}, r.Fields[:2]) + assert.Equal(t, render.Fields{"standard (default)", "kubernetes.io/gce-pd", "Delete", "Immediate", "true"}, r.Fields[:5]) } diff --git a/internal/render/testdata/sc.json b/internal/render/testdata/sc.json index afd1d892c3..c8ad58efe6 100644 --- a/internal/render/testdata/sc.json +++ b/internal/render/testdata/sc.json @@ -20,5 +20,6 @@ }, "provisioner": "kubernetes.io/gce-pd", "reclaimPolicy": "Delete", - "volumeBindingMode": "Immediate" + "volumeBindingMode": "Immediate", + "allowVolumeExpansion": true } \ No newline at end of file From 79a2d50bb2a1c67e842af55447b86a36ec7739e0 Mon Sep 17 00:00:00 2001 From: Aleksei Romanenko Date: Sun, 12 Nov 2023 13:02:39 -0500 Subject: [PATCH 121/130] Add snapcraft config (#2123) * Add snapcraft config * Update snapcraft config --- snap/snapcraft.yaml | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 snap/snapcraft.yaml diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml new file mode 100644 index 0000000000..682f054b40 --- /dev/null +++ b/snap/snapcraft.yaml @@ -0,0 +1,42 @@ +name: k9s +base: core20 +version: 'v0.27.4' +summary: K9s is a CLI to view and manage your Kubernetes clusters. +description: | + K9s is a CLI to view and manage your Kubernetes clusters. By leveraging a terminal UI, you can easily traverse Kubernetes resources and view the state of you clusters in a single powerful session. + +grade: stable +confinement: classic + +architectures: + - amd64 + - arm64 + - armhf + - i386 + +plugs: + kube-config: + interface: personal-files + read: + - $HOME/.kube/config + +apps: + k9s: + command: bin/k9s + plugs: + - network + - network-bind + - home + - kube-config + +parts: + build: + plugin: go + source: https://github.com/derailed/k9s.git + source-tag: $SNAPCRAFT_PROJECT_VERSION + override-build: | + make test + make build + install $SNAPCRAFT_PART_BUILD/execs/k9s -D $SNAPCRAFT_PART_INSTALL/bin/k9s + build-packages: + - build-essential From a02f2c64a311cbc010c64d46bd5e870740f1aa6d Mon Sep 17 00:00:00 2001 From: Jimmy Merrild Krag Date: Sun, 12 Nov 2023 19:04:08 +0100 Subject: [PATCH 122/130] Update README.md with snap install (#2262) --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 7eb680e472..aaec3434d1 100644 --- a/README.md +++ b/README.md @@ -56,6 +56,11 @@ K9s is available on Linux, macOS and Windows platforms. ```shell sudo port install k9s ``` +* Via [snap](https://snapcraft.io/k9s) for Linux + + ```shell + snap install k9s --devmode + ``` * On Arch Linux From 344990e096ce5173dbdff7fe140d0078afe2d9b1 Mon Sep 17 00:00:00 2001 From: Alexandru Placinta Date: Sun, 12 Nov 2023 19:08:16 +0100 Subject: [PATCH 123/130] Pod view resembles more the output of kubectl get pods -o wide (#2125) --- internal/model/table_int_test.go | 2 +- internal/render/pod.go | 19 ++++++++++--------- internal/render/pod_test.go | 4 ++-- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/internal/model/table_int_test.go b/internal/model/table_int_test.go index 7667efb8b6..41e5ce8268 100644 --- a/internal/model/table_int_test.go +++ b/internal/model/table_int_test.go @@ -105,7 +105,7 @@ func TestTableHydrate(t *testing.T) { assert.Nil(t, hydrate("blee", oo, rr, render.Pod{})) assert.Equal(t, 1, len(rr)) - assert.Equal(t, 22, len(rr[0].Fields)) + assert.Equal(t, 23, len(rr[0].Fields)) } func TestTableGenericHydrate(t *testing.T) { diff --git a/internal/render/pod.go b/internal/render/pod.go index d055e2ec89..8d62ff4a76 100644 --- a/internal/render/pod.go +++ b/internal/render/pod.go @@ -80,8 +80,12 @@ func (Pod) Header(ns string) Header { HeaderColumn{Name: "NAME"}, HeaderColumn{Name: "PF"}, HeaderColumn{Name: "READY"}, - HeaderColumn{Name: "RESTARTS", Align: tview.AlignRight}, HeaderColumn{Name: "STATUS"}, + HeaderColumn{Name: "RESTARTS", Align: tview.AlignRight}, + HeaderColumn{Name: "IP"}, + HeaderColumn{Name: "NODE"}, + HeaderColumn{Name: "NOMINATED NODE", Wide: true}, + HeaderColumn{Name: "READINESS GATES", Wide: true}, HeaderColumn{Name: "CPU", Align: tview.AlignRight, MX: true}, HeaderColumn{Name: "MEM", Align: tview.AlignRight, MX: true}, HeaderColumn{Name: "CPU/R:L", Align: tview.AlignRight, Wide: true}, @@ -90,13 +94,9 @@ func (Pod) Header(ns string) Header { HeaderColumn{Name: "%CPU/L", Align: tview.AlignRight, MX: true}, HeaderColumn{Name: "%MEM/R", Align: tview.AlignRight, MX: true}, HeaderColumn{Name: "%MEM/L", Align: tview.AlignRight, MX: true}, - HeaderColumn{Name: "IP"}, - HeaderColumn{Name: "NODE"}, HeaderColumn{Name: "QOS", Wide: true}, HeaderColumn{Name: "LABELS", Wide: true}, HeaderColumn{Name: "VALID", Wide: true}, - HeaderColumn{Name: "NOMINATED NODE", Wide: true}, - HeaderColumn{Name: "READINESS GATES", Wide: true}, HeaderColumn{Name: "AGE", Time: true}, } } @@ -126,6 +126,11 @@ func (p Pod) Render(o interface{}, ns string, row *Row) error { strconv.Itoa(cr) + "/" + strconv.Itoa(len(po.Spec.Containers)), strconv.Itoa(rc), phase, + strconv.Itoa(rc), + na(po.Status.PodIP), + na(po.Spec.NodeName), + asNominated(po.Status.NominatedNodeName), + asReadinessGate(po), toMc(c.cpu), toMi(c.mem), toMc(r.cpu) + ":" + toMc(r.lcpu), @@ -134,13 +139,9 @@ func (p Pod) Render(o interface{}, ns string, row *Row) error { client.ToPercentageStr(c.cpu, r.lcpu), client.ToPercentageStr(c.mem, r.mem), client.ToPercentageStr(c.mem, r.lmem), - na(po.Status.PodIP), - na(po.Spec.NodeName), p.mapQOS(po.Status.QOSClass), mapToStr(po.Labels), asStatus(p.diagnose(phase, cr, len(ss))), - asNominated(po.Status.NominatedNodeName), - asReadinessGate(po), toAge(po.GetCreationTimestamp()), } diff --git a/internal/render/pod_test.go b/internal/render/pod_test.go index cdecbaf156..466dd202b6 100644 --- a/internal/render/pod_test.go +++ b/internal/render/pod_test.go @@ -159,7 +159,7 @@ func TestPodRender(t *testing.T) { assert.Nil(t, err) assert.Equal(t, "default/nginx", r.ID) - e := render.Fields{"default", "nginx", "●", "1/1", "0", "Running", "100", "50", "100:0", "70:170", "100", "n/a", "71", "29", "172.17.0.6", "minikube", "BE"} + e := render.Fields{"default", "nginx", "●", "1/1", "0", "Running", "0", "172.17.0.6", "minikube", "", "", "100", "50", "100:0", "70:170", "100", "n/a"} assert.Equal(t, e, r.Fields[:17]) } @@ -190,7 +190,7 @@ func TestPodInitRender(t *testing.T) { assert.Nil(t, err) assert.Equal(t, "default/nginx", r.ID) - e := render.Fields{"default", "nginx", "●", "1/1", "0", "Init:0/1", "10", "10", "100:0", "70:170", "10", "n/a", "14", "5", "172.17.0.6", "minikube", "BE"} + e := render.Fields{"default", "nginx", "●", "1/1", "0", "Init:0/1", "0", "172.17.0.6", "minikube", "", "", "10", "10", "100:0", "70:170", "10", "n/a"} assert.Equal(t, e, r.Fields[:17]) } From 32b9493a0d72ce287ce7c5974af83868df98280e Mon Sep 17 00:00:00 2001 From: Fernand Galiana Date: Sun, 12 Nov 2023 11:33:01 -0700 Subject: [PATCH 124/130] Clean up issues introduced by #2125 (#2289) --- internal/model/table_int_test.go | 2 +- internal/render/node.go | 4 ++-- internal/render/pod.go | 1 - internal/render/pod_test.go | 4 ++-- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/internal/model/table_int_test.go b/internal/model/table_int_test.go index 41e5ce8268..7667efb8b6 100644 --- a/internal/model/table_int_test.go +++ b/internal/model/table_int_test.go @@ -105,7 +105,7 @@ func TestTableHydrate(t *testing.T) { assert.Nil(t, hydrate("blee", oo, rr, render.Pod{})) assert.Equal(t, 1, len(rr)) - assert.Equal(t, 23, len(rr[0].Fields)) + assert.Equal(t, 22, len(rr[0].Fields)) } func TestTableGenericHydrate(t *testing.T) { diff --git a/internal/render/node.go b/internal/render/node.go index 11e6d3989c..2e892b104b 100644 --- a/internal/render/node.go +++ b/internal/render/node.go @@ -53,11 +53,11 @@ func (Node) Header(_ string) Header { func (n Node) Render(o interface{}, ns string, r *Row) error { oo, ok := o.(*NodeWithMetrics) if !ok { - return fmt.Errorf("Expected *NodeAndMetrics, but got %T", o) + return fmt.Errorf("expected *NodeAndMetrics, but got %T", o) } meta, ok := oo.Raw.Object["metadata"].(map[string]interface{}) if !ok { - return fmt.Errorf("Unable to extract meta") + return fmt.Errorf("unable to extract meta") } na := extractMetaField(meta, "name") var no v1.Node diff --git a/internal/render/pod.go b/internal/render/pod.go index 8d62ff4a76..afbcd7da81 100644 --- a/internal/render/pod.go +++ b/internal/render/pod.go @@ -124,7 +124,6 @@ func (p Pod) Render(o interface{}, ns string, row *Row) error { po.ObjectMeta.Name, "●", strconv.Itoa(cr) + "/" + strconv.Itoa(len(po.Spec.Containers)), - strconv.Itoa(rc), phase, strconv.Itoa(rc), na(po.Status.PodIP), diff --git a/internal/render/pod_test.go b/internal/render/pod_test.go index 466dd202b6..e439b6caf2 100644 --- a/internal/render/pod_test.go +++ b/internal/render/pod_test.go @@ -159,7 +159,7 @@ func TestPodRender(t *testing.T) { assert.Nil(t, err) assert.Equal(t, "default/nginx", r.ID) - e := render.Fields{"default", "nginx", "●", "1/1", "0", "Running", "0", "172.17.0.6", "minikube", "", "", "100", "50", "100:0", "70:170", "100", "n/a"} + e := render.Fields{"default", "nginx", "●", "1/1", "Running", "0", "172.17.0.6", "minikube", "", "", "100", "50", "100:0", "70:170", "100", "n/a", "71"} assert.Equal(t, e, r.Fields[:17]) } @@ -190,7 +190,7 @@ func TestPodInitRender(t *testing.T) { assert.Nil(t, err) assert.Equal(t, "default/nginx", r.ID) - e := render.Fields{"default", "nginx", "●", "1/1", "0", "Init:0/1", "0", "172.17.0.6", "minikube", "", "", "10", "10", "100:0", "70:170", "10", "n/a"} + e := render.Fields{"default", "nginx", "●", "1/1", "Init:0/1", "0", "172.17.0.6", "minikube", "", "", "10", "10", "100:0", "70:170", "10", "n/a", "14"} assert.Equal(t, e, r.Fields[:17]) } From 1bfd824ab4803345a34308eff7c87eba2a66c6c1 Mon Sep 17 00:00:00 2001 From: Chris Werner Rau Date: Sun, 12 Nov 2023 19:35:46 +0100 Subject: [PATCH 125/130] feat: allow for multiple plugin files in $XDG_DATA_DIRS/k9s/plugins (#2029) --- internal/config/plugin.go | 46 +++++++++++++--- internal/config/plugin_test.go | 61 ++++++++++++++++++---- internal/config/testdata/plugins/test1.yml | 12 +++++ internal/config/testdata/plugins/test2.yml | 12 +++++ 4 files changed, 116 insertions(+), 15 deletions(-) create mode 100644 internal/config/testdata/plugins/test1.yml create mode 100644 internal/config/testdata/plugins/test2.yml diff --git a/internal/config/plugin.go b/internal/config/plugin.go index 2e1fbe3941..029bda8995 100644 --- a/internal/config/plugin.go +++ b/internal/config/plugin.go @@ -6,11 +6,14 @@ import ( "path/filepath" "strings" + "github.com/adrg/xdg" + "github.com/rs/zerolog/log" "gopkg.in/yaml.v2" ) -// K9sPlugins manages K9s plugins. -var K9sPlugins = filepath.Join(K9sHome(), "plugin.yml") +// K9sPluginsFilePath manages K9s plugins. +var K9sPluginsFilePath = filepath.Join(K9sHome(), "plugin.yml") +var K9sPluginDirectory = filepath.Join("k9s", "plugins") // Plugins represents a collection of plugins. type Plugins struct { @@ -42,23 +45,54 @@ func NewPlugins() Plugins { // Load K9s plugins. func (p Plugins) Load() error { - return p.LoadPlugins(K9sPlugins) + var pluginDirs []string + for _, dataDir := range xdg.DataDirs { + pluginDirs = append(pluginDirs, filepath.Join(dataDir, K9sPluginDirectory)) + } + return p.LoadPlugins(K9sPluginsFilePath, pluginDirs) } -// LoadPlugins loads plugins from a given file. -func (p Plugins) LoadPlugins(path string) error { +// LoadPlugins loads plugins from a given file and a set of plugin directories. +func (p Plugins) LoadPlugins(path string, pluginDirs []string) error { f, err := os.ReadFile(path) if err != nil { return err } - var pp Plugins if err := yaml.Unmarshal(f, &pp); err != nil { return err } + + for _, pluginDir := range pluginDirs { + pluginFiles, err := os.ReadDir(pluginDir) + if err != nil { + log.Warn().Msgf("Failed reading plugin path %s; %s", pluginDir, err) + continue + } + for _, file := range pluginFiles { + if file.IsDir() || !isYamlFile(file) { + continue + } + pluginFile, err := os.ReadFile(filepath.Join(pluginDir, file.Name())) + if err != nil { + return err + } + var plugin Plugin + if err = yaml.Unmarshal(pluginFile, &plugin); err != nil { + return err + } + p.Plugin[strings.TrimSuffix(file.Name(), filepath.Ext(file.Name()))] = plugin + } + } + for k, v := range pp.Plugin { p.Plugin[k] = v } return nil } + +func isYamlFile(file os.DirEntry) bool { + ext := filepath.Ext(file.Name()) + return ext == ".yml" || ext == ".yaml" +} diff --git a/internal/config/plugin_test.go b/internal/config/plugin_test.go index 961118fcc5..8350625e67 100644 --- a/internal/config/plugin_test.go +++ b/internal/config/plugin_test.go @@ -7,18 +7,61 @@ import ( "github.com/stretchr/testify/assert" ) -func TestPluginLoad(t *testing.T) { +var pluginYmlTestData = config.Plugin{ + Scopes: []string{"po", "dp"}, + Args: []string{"-n", "$NAMESPACE", "-boolean"}, + ShortCut: "shift-s", + Description: "blee", + Command: "duh", + Confirm: true, + Background: false, +} + +var test1YmlTestData = config.Plugin{ + Scopes: []string{"po", "dp"}, + Args: []string{"-n", "$NAMESPACE", "-boolean"}, + ShortCut: "shift-s", + Description: "blee", + Command: "duh", + Confirm: true, + Background: false, +} + +var test2YmlTestData = config.Plugin{ + Scopes: []string{"svc", "ing"}, + Args: []string{"-n", "$NAMESPACE", "-oyaml"}, + ShortCut: "shift-r", + Description: "bla", + Command: "duha", + Confirm: false, + Background: true, +} + +func TestSinglePluginFileLoad(t *testing.T) { p := config.NewPlugins() - assert.Nil(t, p.LoadPlugins("testdata/plugin.yml")) + assert.Nil(t, p.LoadPlugins("testdata/plugin.yml", []string{"/random/dir/not/exist"})) assert.Equal(t, 1, len(p.Plugin)) k, ok := p.Plugin["blah"] assert.True(t, ok) - assert.Equal(t, "shift-s", k.ShortCut) - assert.True(t, k.Confirm) - assert.Equal(t, "blee", k.Description) - assert.Equal(t, []string{"po", "dp"}, k.Scopes) - assert.Equal(t, "duh", k.Command) - assert.False(t, k.Background) - assert.Equal(t, []string{"-n", "$NAMESPACE", "-boolean"}, k.Args) + + assert.ObjectsAreEqual(pluginYmlTestData, k) +} + +func TestMultiplePluginFilesLoad(t *testing.T) { + p := config.NewPlugins() + assert.Nil(t, p.LoadPlugins("testdata/plugin.yml", []string{"testdata/plugins"})) + + testPlugins := map[string]config.Plugin{ + "blah": pluginYmlTestData, + "test1": test1YmlTestData, + "test2": test2YmlTestData, + } + + assert.Equal(t, len(testPlugins), len(p.Plugin)) + for name, expectedPlugin := range testPlugins { + k, ok := p.Plugin[name] + assert.True(t, ok) + assert.ObjectsAreEqual(expectedPlugin, k) + } } diff --git a/internal/config/testdata/plugins/test1.yml b/internal/config/testdata/plugins/test1.yml new file mode 100644 index 0000000000..6d8eec1363 --- /dev/null +++ b/internal/config/testdata/plugins/test1.yml @@ -0,0 +1,12 @@ +shortCut: shift-s +confirm: true +description: blee +scopes: + - po + - dp +command: duh +background: false +args: + - -n + - $NAMESPACE + - -boolean diff --git a/internal/config/testdata/plugins/test2.yml b/internal/config/testdata/plugins/test2.yml new file mode 100644 index 0000000000..379dee9151 --- /dev/null +++ b/internal/config/testdata/plugins/test2.yml @@ -0,0 +1,12 @@ +shortCut: shift-r +confirm: false +description: bla +scopes: + - svc + - ing +command: duha +background: true +args: + - -n + - $NAMESPACE + - -oyaml From b2775871c5436a1b3afe361327e68b38c0a7e41d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8rgen=20Jervidalo?= Date: Sun, 12 Nov 2023 19:37:01 +0100 Subject: [PATCH 126/130] Add support for using custom kubeconfig with log_full plugin (#2014) Support for using the log_full plugin (added in #2002) if starting k9s with a custom kubeconfig file (the `--kubeconfig` flag) --- plugins/log_full.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/plugins/log_full.yml b/plugins/log_full.yml index ad19e6f5cd..304a86d384 100644 --- a/plugins/log_full.yml +++ b/plugins/log_full.yml @@ -15,6 +15,8 @@ plugin: - $NAMESPACE - --context - $CONTEXT + - --kubeconfig + - $KUBECONFIG log-less: shortCut: Shift-L description: "logs|less" @@ -33,6 +35,8 @@ plugin: - $NAMESPACE - --context - $CONTEXT + - --kubeconfig + - $KUBECONFIG log-less-container: shortCut: Shift-L description: "logs|less" @@ -53,3 +57,5 @@ plugin: - $NAMESPACE - --context - $CONTEXT + - --kubeconfig + - $KUBECONFIG From 8b5ffce61ac34596deab2b381b3089aa2adcf6d8 Mon Sep 17 00:00:00 2001 From: Sebastien Tardif Date: Sun, 12 Nov 2023 13:38:23 -0500 Subject: [PATCH 127/130] fix brew command in the readme (#2012) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index aaec3434d1..b3c0ad1394 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ K9s is available on Linux, macOS and Windows platforms. * Via [Homebrew](https://brew.sh/) for macOS or Linux ```shell - brew install derailed/k9s/k9s + brew install k9s ``` * Via [MacPorts](https://www.macports.org) From 46d4681933a0ec3acd76a7d45062b04694453908 Mon Sep 17 00:00:00 2001 From: Olivier Orand Date: Sun, 12 Nov 2023 19:45:05 +0100 Subject: [PATCH 128/130] Add context to get-all (#1701) --- plugins/get-all.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/get-all.yml b/plugins/get-all.yml index b6b1c46036..1e1d871945 100644 --- a/plugins/get-all.yml +++ b/plugins/get-all.yml @@ -10,7 +10,7 @@ plugin: background: false args: - -c - - "kubectl get-all -n $NAME | less" + - "kubectl get-all --context $CONTEXT -n $NAME | less" get-all-other: shortCut: g confirm: false @@ -21,4 +21,4 @@ plugin: background: false args: - -c - - "kubectl get-all -n $NAMESPACE | less" + - "kubectl get-all --context $CONTEXT -n $NAMESPACE | less" From f37d472c5bb9ce82b9f01089e15a3bc357f69a10 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 12 Nov 2023 13:55:04 -0500 Subject: [PATCH 129/130] Provide white blur so images work in dark modes (#1597) --- assets/k9s-xmas.png | Bin 149553 -> 216155 bytes assets/k9s.png | Bin 83432 -> 130038 bytes assets/k9s_err.png | Bin 11918 -> 28934 bytes assets/k9s_helm.png | Bin 35792 -> 45025 bytes assets/k9s_small.png | Bin 11443 -> 28832 bytes assets/k9s_xray.png | Bin 50868 -> 107635 bytes assets/k9salpha.png | Bin 72287 -> 142155 bytes 7 files changed, 0 insertions(+), 0 deletions(-) diff --git a/assets/k9s-xmas.png b/assets/k9s-xmas.png index 979cf02c8a763edbbe5951fe0e3e5d4df1d04b55..e85148777acf6de464f65496c827ec4749c90bda 100644 GIT binary patch literal 216155 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%0Aa(Ap;FYyVy3#c#|qgdIDd<8zL8 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%0A6fcoVN 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Πz#TC+mlp$~jaHlwf5;9Lp?=@%q^m-gYeU7oJCf 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

2B%J{j9yjk)}Pufj=F93x)~$GWyAbkr83X* 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 U{A8XFcncZyPfgY0>lTmy4~_egJOBUy diff --git a/assets/k9s_err.png b/assets/k9s_err.png index 4553b2150f46cc51b1718be1dad9253a2ad979f0..7bc1c542d260486648c0d32742397fbb27bb4200 100644 GIT binary patch literal 28934 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

E+dw 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%0DVt!?u&XqrhHVSxjlx4>; zx3`5pU2_P~ZbH#z3DhaZ-~I2*w`YWJhc-#gyN9*8qzxO3;1&xwAM8A$f^u&9;5;;9 z$5{61FkeHO0~1oFKN;gnM!}Og@eWRQUH_hI>J{T(T)e2RHuH)4w64j#qe6{$a%Sai zC%;we@T!CM3m-XR3=rBt4nDb+u6QlFoGUsD0S*Xw#z4XXi{H@7uHUHxuap>^b1R%y zRG3iGQ}i!LG>;GL6?7qa0p+g81#x3An;j*8oIfPdg}{EmuYZ3E(JNXLGf)53U0#>z zj}x4QRDQ;LbqWk9IZk?et|~MZv_6|7o%(lVZkkOCA1wfx!L8A6)xah9@^E}`N@8kp zEiitXN1hnra)fdDM53YW7nRimCB1dOUB;xYq(|oyUe^xGDnO2F^Ftb2Zv8uxd-m(; zUF4}>R8^yt5^jnGo+5%rL*|Nxx)Ja}XKXP0S+j!HRcS*_alxX>nr-TaX&}q! zWrfO`_o}GdXuVwYP{n4uSE5=(Nb{lX$suPFsxd7zV-vnZ`iH&5`}|Ajp$-~qYW7m) zoIbmzdVoa(Oc$W}nicbZPrmMxk#)n#@OKr`n#>KC>MU<$?SHfg_J~M-A!npP(oXu* z{L`dmayVbC&cbP@dhl;h@26z;L}mDv4zZMO2fPNnBli&1>^}x9*xcgcCEU4H^01Sg(U?%3xmT^pEag{f_QD z&`Z%yuq0elM~wmYzz%JKw&*LO+A+PUf7GABsf$X#FAkb?^z2EDJoY3NSj!fL>dZv} zairAAkzoA;B)P7kAyuL*u9F(d8L1DF3)_= z>#`@i{U1--&QbEb!xFMA*@Q&JK2X3v>2PjSl}mqF4w;R)+4Zswq`5m(93W5i)Y|*E z@X5qWwD~>co3Xvu{Zq|1VI{%r0oNz)G?zB-YL%||dc}!7@|-a;_yXd?$x)4A(+;=8 z|B>8)Qv3(9KRu`x_vBb(doElnA=vwRdao&4vo+|KUb3koAJDbAmex3Ai;4h zvgY>~^zEU3=YR=^FjCpskN7~(9ZkAI$HrF9nH&1Wej{J=$sT>KsHC`jf%Tfco^s2L zpJc3CD9h`~2Jshg*SQ1WlU=_pTarBd@@LNul==K7g!rOU`q#z|ZGPCCjT`T>3Zrq7 z+$B16&^!fC%s@{pzycR}o?f~teDQd|fje115GSI)_vg=d=H})p@>FSQX~X+hA6uOu zY8J(G^@-6SM=ws`n@06pOSt}ZTRE3doQQFzri61u-jPPsLbuT=ik|a zY=C|FK8G8=^%>LHKg`5T|I|WApl{jLF=2wTJn3&C1!kWG?m<@gteqt(y6N;@UrT+k zxhsa$(>xwS7Nf?&fl2?V)!zjs`gqPJ-`{xjKtUa-t7H2ws6xP_b>9y1TeRt8yg8F4 zlX)vWLzmk~;gh#!X;n(WDaW<#pK80SIGnY&_O1~2>cMHC*lohccf3kwk{c{yhFv_zAhD0^<#r41Ot zb9PN7JPaH2DpNnPO1LR@)d{{Y21wrg*^e*NRGIxvl?>gGV#e4Sr`0tTasHCx=Mq0= zZvKrgkeHvJR!PZ}5c?BeF?wnhlh4!R*Y_bQ%`LW$j@G~t0?{*Iy*51G&AjRYqoz7q ze7N7=f3CUtPa;27aZg_G`lQN+H|*78yPzkg$`5P157AOo*-913ILN%SZwObB>;g>? ztetS(eh6KZddrO0f10T87n%?uioP}(6)7dv%A(hom`+&KvM`#ATJ@+Fvm-~UU3t+C znw{MHb-JDthdp>dol!iV@57V3dwMPc16j|&z}HF%tJ}eX9S_7mxU;Jg^^Js0{N1yH z3epdqZW>Y^PfEtm@f1a-!6|#~F(L~&iWOqu$+;1rLbbvSxUjkm0%`v$hx~Grg9H}* z6B@S@?%r$`hI=9Ww|`}WcIDn({g!By*2KS#a-MdO zm~9vi9eH3h>f$qhS$Uh<$QBxMFR=~iY1r+iz@bc7x=Z~-u1+o$rB!)UottGhq3PS_ zp%}{IXDc9nY8z2=0ymXIL3rjN6Y=&==6-PNAop@kk;$-_IaN~bdu#GLImY)1qU4EB z-PXCT!p0_OWNMhIRArjnn{Y66;0u7N=#ar zb0u#j-))xGciIP1OYT_4io1Jx;mRd-d#HugjMAr$l8FK&H`l_JMnbqlnZ8c`{O3CX zs;jNXpb{9KJlt`W14Ky+dyhyLscE|p;@w?2JE`SA*C{xJs5#h4Ik>-@v?vJr6ke^W za1wH7;3nNw=%J$rYb%hp2q1bI$hGCX4-p1Jd1CNDQ0UR*KSOG7`c}dDt$Qb8-O`}ybDzuAs&lTr^By^~vn;V0u z!P?9+7c&&kA3iL#chF%+gZR;xfdMJNR5^CtV1t9IQJ)FqDTgK}<80BtXV$Ups>2uE zAL7;!B9QrZ*$ewey-JlwisQ_AjFD{owg&>E^KEc=;(Vm%Ae%yvd4vHv!soX1n+3eb zB$6E^%d#eYw}+RE9uui12se9fd|{G_4Wm(JoQ_zS3IPGZ^)<;zX+ymJA47ScP`lws z)md>BZ|?3e;)jfB7au-1f&3;l4GsKzNP9=ebGlY*oaHFt?|}!9WHMiLA2gU3o@-;q zs1oG~G8EC7OMmSxYFSagk1fd;pxtqi|CXt7Xfy5bfmnFK>#ccm0t<@l&qmZwvtV7L z{12>${0pa$BDj}qyAR0T5>IR7_#i1eZ%37*3{VY+_=tzFXvq&4jqs$BK8|*dd8GHn zEYbGXF1){N@_JbUZe7(!)+r);3TcPSMNRn2UAxe|S zU)?9CrhtwgvUp6DD)0Ps`+57K6%x1WPbMzm_qIm2gUEM^{{ATfL>?M+jK zo1b)%3>~{Y$Vi5Qu z=x3egCnEF^(9mf3ajTcKr)IGnXLoB-A7)zyAzAuJRiG96x}~?#$=VkiziIC22`i-r zl4Kxy1t1NFmTV_paB&PCxuJjNTw={0(X5yY%||@QL?pYldU$$z`j4VgFLMG}I*0Z4 zJqY?Q8PH|ye0tZJiYd7Qf>a$uu8u6(nTY+FF)v*^U)4S7t2z|aqL(il7Rp?y&q^3I zW7sr54lzO~4407B{h=~@jn9zx6KygY`qX5mp~Y{-k@_0ok_gA9v@^1R{fWon&+78U z9N=X+5t%M5`*~R)zs?>CezSUN)(3ew5T;Zvb;aEzxi$_D56{TX-T~1ZU!RWo_frcF z&RY|Dgw!Z|3%Q{xMO3=WtoIY2L*~Ed2kNmdG0iM8Z8@L1ugbt!B-w`K_0(Kh7$nd} z_p>V1>U1RqeVH+>OtvoXmTq-}HTX=#l}Tn$)9{+v1aC-;;vlspkrbz$@2eYu|e{!Ow+EWuF;WL@68GE3qbjdFt zO4hB?DXU!la@b!tXc-pr*{yb;p4Iv%zqE!9nE#bKe9gpInMVKTdp4cwk6S>31!gE%3o~~q&^s6qm159p4MrBWY}E;U zf^lJZT-xp}bGi(8R&atP&IUm2dUwa+n6kGSr`V(~yz4%H?0$6fm{`mO8z^jo#84ljwD@4XKQ*hX*DG6GD~~>R%$c5^ z>3_;~c6Za%FCgG@*_OTzzfhKlc5RP+@$p99gs~pGy!{y}6^~D({<6 zG*@@Xn_6%XvB>d)17fnj$lT-QM@e??$cHI*cFduT(?4gU2%lOUyv>Gmb^IAwZZetA z-#FRXU1$UTeO4F;MFk*W=LDreiB5(dS=-s^cmMX;(GheT{Kq@OiP1MHG<_@9cQjWM z2=zz37<2Q*TC>7y=uGb<@k$I)ccN!mQid<|p8mCg{_T)Br&pA?;t@9``>RRZg6LN} zPo56!4=oB*)ilZWf-;*pt(KW)ZHj7_4T9JEDV;b87Gu#Qos<+K)D{E5 zl`EoJYP*OHy<7;9*>j(uNB1tr-0N?b+hBVT`}1e**x32y8)ge~WlfSPE#$=Kj&=J@ z84V2^7Z+alf4v^AA|;=02#b$rV zSMh>>JJLlL$)cqH+T>?QR=_oKaC*Ae8v^@%))ph5k%fh4DoRl|F=JiFYG6-ENfc`k4n( zRKkV_GhJ(^2()Zix*v*=a$#Ti2uk|+;t>(_V^TeCL{P0zQr;80VfgTDdWNl`y?~04^7|75k1X>z=s?D3o|rN+R(ZAutt`C$|Luq z=x9a5uF;T!g1@?)^deAbFzzN!s0yVLhaB@tt|};p@?pcb&HFk-a5dCoE8@`-M@bW)TFzgS%#xR+pCUok>yeM@~){BPF+MJ%IrZqV+IWSN~hZ z^QMM&hT=!|95g0{Ogv|Mvl>uJJ5b_l^3ML@ZvCSbdWC?264TELQ8z5sOh0hJcjFti zNQ!UueJYhqf1}X%g>6`l>EG`sLMY%TtaP-mZSC~i&7DwIarLkW?RLStI%6L2AW-_T zyPnL+l*p3$=YjKNb|yx!dCstL-dN-OhMk>z(7YynR9Nq731!VfJVQ~|Lm(~@?fcW6 zNGyPQ5?%QwCnoC9V)b*y8cvyF=cmSkCKPXa| z;fyUSqXPrle;6MyiG74*suBvcTUGe~T70U)$u1&DZ^<*c!(CtRe=pIG_|R_CVkhW- z{Uze=O{i`CPV^-4nVOm!@HrqHdjZN?rj(SFRaCB4!amT7R`ui+E-UVz8S+z$Krd3Z z`*cdW)nKeiIx_93_={Q|Lln1$yqYBNsN|LCmnG1p&%~3FeJ`gEk&y5Lx_19h4naj4 ze4)#2p2dX>uN@@fxOkqABR^(mM7%c7U1t2Q4{Yqut_t+3>`zaoUxO{~35S*C>ak^H zKJ9RD#N1w!?z?b`JcMcszS=gZC5fuBUUM6^4TU1aFS{vIr0k&KTgp*w9$1a?NE#0t zE-%xK`bjB>i@+w>a2{=}uQSER$74hfy#67&0g4)ET97TB1?c_@mJCTaVD~o7K)2o-ZW^B*Q%q&>BG(=B}?ZjiezrPV#Hb#^KPiCs5?fK=Lb=6K= z2pJY&cUB!=mJ7@rj)vQRuFXmmXczgq&OR;wJ3>CuT<{Cl9nED_yjxD9u3Ro$SuyHhYVz)6cFt9RQTwSa-+yQX08Avh1&0Lx&tpd3A zKQ{Ylz5*aspwXdBGYaqxMKk%cGhfIXqct0j-O7>2sc}zkP!YPo2N4C7p4c^w0)aO= zIy$d|2k1zh7lQ;TV|)E22He@jEA}pDb99V}9CNc`33KLs5)z9pt*-I3^B%)zIs?02 z-;SQnG4KhB93A2oGC3$Oy}3b`Y2^E5@gVsIIfYr)(4Tfq#MQpc>0_EmAwCTwC)21^ z6G-|K2&oCtir=G?Dnhp#3RbF4j=1n|xsUFwYpogXF`%Ez@Z(Ir=<+LB1qxk5${NY3 z7YT1}8orZ%LyJiu$?R#mT|Nn{_AM~4CJ9()_=^ja_Njak>R5E^)+2nTyGOeXPnsu zQMRYWbnsv1zt@II;{9}TUKV(INzEE1lU7{@U2tcR7uFv;JdOHh=a%wiLYfA<$mfb$n*U|{D0w}OUohsgJ>r@J zCmHhCOcEtWwGJI71Md5Tc;^~K)55vyKUa4_1C|A^HxTdh{oh_+IE3@gU+?el$!4#z zuL%M133C5+_4R$A?cw9e=XbuDhv35+g(@y0JK4X*s-U1CWAsu5~>vU`MY*aZK(C} zXd;6oh$#5dvZ5f?gP5QiK@DK`d0!wa<)rp@Qpf9TUZxFBQvwp2GsVwJU^LeeakZJ1<~rx^D4-IS87G zVnYqUU9G672u8C@#s+59BPZ~1KN=VJ#RV32q=D=$ZtcsqcPuF$wKoDk(t? z5SdDnBksNa{rN-`QEU3(%2XK)cPyHkU9OmE3>#7dtgbl+5YT0Oe=n`XfRk>S$XX1JZcqL1Vu82V7gsB?H8m34H1ir zG5~=BY`d!;x0cq0m;c-@4x4Gb@gq zzrBuu(clNRQ^Bjfow`0(jhez$waktf`cOB>#ty!EouzNqhC2+RdaUI#C(PB5kbXgn z9+=avDDJvl`Sgw7J*v8z8RUsxQq#Xg0M6Fyf*iyzz(M2;f;$rBH|PJHA#JK^YAOIL z+&nTeG71P45EKGMLTb$Ea@5I`=)G$t6qQ|U z@?%>Psg^MAu-%A$*JmBWNKjHqa+RNF9a`8>#w44pPdZ!14xTAXt8=aAwaH68Y+%+- z;$WSJX5BvHBPOdSExz#GihQdm{1s;_JO!jG*>*Gxjw$-0J&mN6aMlPn!@6 zLJGBX*4pU>!`3z71TDNGOTYDZ5Yw}Vjn7wkZ)@%#F7g}X69O-30>wG;{Y|m?5%#BHuq&oMNFVQn$YZNIyPh z5|RuFa7$AW(=^wMGvZTGymuyZg6gjy|5Co4WXW$8qF9q$vKdr4eD8)4R5;r4_G)d< zT(x!O1qy1cfY4{xB=1QJ7)fdjl|;D`+m@AYFI$%7C5%eZ@=Yz#&nE9Y>x0XRDI&x( zWMtUlV^A4VTd#Uyz0%SRf2Tw2@G+z!WbATVmB~dQkFptQ$*J4eAs|P5u+Z9quH3DG zB88=Kc>sZ#I9*2V|2hppT@j%o$>7cfMtTTHQK3kn%O!aMDF=K`K|+qh7;WZ+L$qvY z$JslOe-cp4hBsb<00CQb-~mk?s`p!>&jri&>J{@}hjt=ngX(n0KX3+lw0-0Te*iQQ z364+w*De-t-%mme5m{pUBPz;{eWp54j+Y6s(JD>;Q9^!IWZ;L8smUcL@QU|RvFxg_ z)BJ_ZN@pW!P(?4je$XQ@=~0{4{nJ#F6(DS+$AU3r7H`6rD3@<3G)bZwHAF@*Wl5Td zK}5u7);<$7@wJ31Ac!#g0#Xv3*%J~%oTamJ4a<}*IfYFc`K6nqC2c`l^@+!)g{3t? z41%GSP5?shrQvZf(bIQ<7=jrzttrrdtD8O+QKS9M$4#eGGS6n-z$e!1M}>Y*lS*7A zQ=~?PAKMPxgJ{rg1k$zOM+e9isFG$+B#l@g2f5_Kx{Kzayocn?Q3jtv(4z;UfFRNX z+Pc7u!+U!bTjTnYwj`p}s7X%+`X8a_wA_1g%K)c7qhHm0=)@cTscB^;fOm8G&1mQ0 zcy)c9i;0QJeFLl;-B0W1mm9w4YGs=L1+7{^k=Q=i*w@0UvlNG;;FbL9+VfHI^*Lmi zJkwpag&OCK(PMEkPfh2`}Ft)X{l+x4Fa|Qv}^ry#1k(WG)%Vo zJ+OnTTD~}(F_Z0A^n+BNO;OY3+*Lg7K%f-G1G9MJA&Fqvgq5|cD`<8Z2SFdBn!A6w z2xM`LM>Fm@%B2z@U$(q}tzRUzv}5XK^R>E+j=vcFvruI1iO}O0i=s3J4F(-hFZ%P; z1Egu=cU3_Hr$@&GNXaUf&TfH$QMc0rMmc`xjC&>p(IP!3{A^dJ=QVzbyJ+2RQ<&V?AI= zW7<7Oze*a!+ttewluL=8N?jsE0zL`*-A`MxXVQb%E3}ETb0VN~q6Wx6eE9GUbYQ8M zbuM~weD{~idMRKsHL-DTvd2mpOk-y#YJ>nbmr{`~f zIZg@EY)e9U*Y7YWuL06@Glbv(k7*MK^t38cYwQ7? z8L(deb!k#3Z>@W7?p^MUffS&64fT(7ZQJZB*~^Xmlnwf62g)CNXKHaTh+Qrilr+?v zcTP8NcpG0*?cAS!jy3IE+>c=gf1P@s{JX&t>+ z&Obp9e1i|my}n(9=iO1o^?_C-szPpQcy~-Z{fz~3%TmPkbTF0x3_k>5umpv1vGF3Wz>Vq$WvH^o#+d1=D)r5= zwJe1{96}2Un(7fgH6tFQJe<;jIKYTlu!GqIMEfI%M-SbANe3=G(BBASh|c>_nZ5BAy+b>CG)plI>c4_Xy8=a!Y6q>HAPoun z)xaZnA}-ahy4)SXIPnnRu-<1oL4YnoO8TkqSYZEIHI}8|J!GqoPb(+yaM+=($JIkt zXPcb6Z+5QRih9W8cKQozQelQ7cjJOw+CMlkxZ z%@ic(!TCagzh0hEHwM13o3E zx;k)?hXeEmYiRIhE7_rtkR8!6p3!BA@mOjV+0Q$<`?mQ$ArE|n05coNg4guC^56Kp zs5&0c6v+U^^+Xt_wBuyXJ~$4suxf`s2lhbo zpdzKdO0Lk()7V%p_8dX}rZ<|dX0#o9rmZM>Xi-hbuggJe7I3l?^vg~iVLK+!FFH8Qey6YIU)HJf}=tTJ8;81~z8VH@? z(|+~UOPb4=xOZ+{}S8gtLg3!2McPtUl-0?tj7*K_Z-X#9cI zBM)d9`7r4sF-B~O#s3RRAhq9hhKGmu2%ZibGiT@NnH^?P&VvL}wSjN9fTettPb!`x zQ8s)<6&V!9k|4Tp|DZ>!sCbl=WzoKiS@PSA=LtfJKr_n=aQ6)Gq%|6qALfVMjjZ zXaGXTq*Q6OtDraaR{;5Tn~}@q&g61AWqW%&)8F6kJ@?vWnx+9(Gm-t|SVgt?P%T|3 zW-qGQizKT@PRoX{pqL$m1MYG%QGMw#`X;DxpYN~j6BFs)#Jd)ORy;%i%2EEaa+aZ;%i09Kog$*Bna z?FL09RhQ9(4@Ekr%8n4&OgiaW4UG0H5AsKnmuQ(xrYn=LSVBFcjlTZ3*p<$qD31N` z%CzS#UNE07V?x7C$FSk|2S_H965{ida+mjkVI3WP=P#zF2wAPPHaDp}eR@Qu=fD(0 z;7ir%UC$Hqy3hhnc9kX_kHPsLy~S+2KrLIMF11nI7A!Uk;ocrbPR(EhEUcNz<(NZalLg5G~kKB}Ekdg#OBd{BZ$Abh4Qg{bL<$W(7^M@#Pe51sxmZmXDs^ex5#l ztXROXf+&DE18TwN`)l*a$UFaHa*}SRlTI{B<;&(V!eP2bM{tBg_*xb=Yb^?Pos`m| zY|7KsrxJ|xaplwyLN|~U8O;PqswAWWnhb_!;4W*7G`m=Rw8X8Q1Vg>O3`Qb!jg6r+ zn{={S+KB{ODs^P;{rM0~9ONtebQZl@MQ*q0IL4@T^&v~vV-A-IOmY)du288I!03oq z0QsYWh-MUvITWdkMQ)-U>+#9Rl9hZj$UxsP=T6OaR7s*ytI?}z_=7>Nj*Ss^I%&t_ zRBzq-!qHaAZbu3Pu+PpS2LdF@WmX?AV+jYDm>XiXl_&3%Xjma`)=7vKCLyCr5*mVz zWMHtTAtoAalvI&{qK$Sl%Y)l@|IVDx|C{F0lKP3)``-kD!M_>o?PZ|1mp~+fL)X#r zd0IO=Xz}<9z1jg?Ul;~v0a;fs4eKz9oh}{_in=*Z=y@&6an@>=I9vER|j#cx)IZ6>bQ5Z zL{<}oO<~mGFDGW;l1;;Vd4}nc>ptTBgIxS4XkUC!hukRH=zClZuTCQ?w zx8k#xNHq0h)%PV#RCFKf&m8!7K14B^2(uYkRWYhnM78>2l@PlfWnci?+7Nr_EPV1B3w?K4i6Sdp;NA*Z^!70 zX9(;Tu;&_>d@Ve~V@!{Z5=bUZxAv(++aR|0{#?2kjmqt4REbHF^`FAwN^f^JgOLdR zXU^c3W%O*8`qQTv+uH~sFbP4^5+duJ2es?ii**DVjdB{Nqr#tFev`Y89_c&F%a$Uv zUjgKg#oFaoCbh-jOc8UbjdqOHV-hlo>>*?7r&tRRN`6SwY(oBmZAy~ejyg1ib!v*H z&Bnv6Efzoei0)X-rV7#e+moYY000`bNklPrU|V|+ z|45j=x8CAcs@f_&d16{M4DA&_{wTsMO;07anVe5zQR-;=apG$U1v_$Bvk*8Rs0vm~{LUH@qYJhyP? z@1Yw8lA`Qwc$%5PIzCR(Fu1k0#?s14u{VW8*BRGaZX>g=1S!s+o0*7YeI`DXJc*-C|6 zu}C7DC0i_BC|TYg~X-d?h`8r69G zOl<#Uc?iZEOH1z9>})waJx$}eK8wg^5xE?5lap*OFWV8~MB>qFV0c>kj~lA@Cx$wU zuJ$2gwqFsNU7OdH9gOxOx?(_tRWN)ax{sml=BVO>U2jRL-xj%ePMw>#Gja*!bj6e4$f3 zNJWtFAHRAfbkxQcJ^4pCnG>YOq)@Mjq z(9IE|q1Wi0Xj4~;d~o|Vo)ezf0Lf6Oe$DTvy-#2~{5O0)T2?D7(J1E6B-}e7dY6~& z(b?Jh!1VOdTqK!9E*6=eoMdNx-OQIOVeTVRm3q7V?fHc(#LN8@wEz;w-*9Fa4g962 zbQjjJS}nM3Hq`w-5ijsT2mh_;I*P7iZnvRQ!HCB(EEc>zAHjhE!dI^Ff9rZ%e)Z~p z{T7xaOW@3z>YF1YgjZJZCK7a&cNxmwL~g|q#|+seWE9Co$v#2Ku|Qfglc_fT>h=i- zk>)^-1cSKDX0*>xQp|mQ#PfNAv6$o03%r0TNzJ>D9wGPkBJcC34!y|Q8e@HZ#3Pa8 zPu*Gr&aXn+3sdFD&_$Lqqv&!s@-cct zpL&lb6J6^#ds-xhhe^EoCQH-Pyzlk$uFb~%u`#wTUL-#@M$2qIR?H^>YP*dk9%mpB zc$K7oRptb#TaqNNESpn4-_5?>-i4{rQ6@qmdRi@f%gfj@85G07ZZ^|!*y$?78A<+@ zobN2yXE@$M9SIpb7177zbc4Bt?@=t~nv2VliB|4d4Y6&H=f6JN-F1;8t?x6pJ=VGxjKQshf=%!Z|#-JFFPQF!!g}6JbeG+ z>@1USyg?uu#goaPG#X#teQLK+73CE`z5-y#1F~#wba&VKdU_Zi7+@q6B48LeGZ~x@ zA7ZXlP;~w9q1aRvlhukM6&X(7BO1C%+R}G|Ttr62O|mn9IalD~pKhI02sjYGw(jP(1p%isBzY?tRrw8v1T<8Ryo(2Y7Ho)uE@Mb@`dHlRs1 zd$f~Ztv*OEE-IO&B}e4UnetnwPBAewglA_5TOxt_5}+6^7xh-_6+nJh8GAya z(7?buv%|xThC&1YTPA~JX$fn!iqdYs@Bzq@gv(-~WVhq1?l6)1kgVqv!gU7en8QI5 zDkjNKygiG#EOX^M2CDMY&eF=3g?8Z!`9~H|yCM^~_lO@O!A?QF z@boD|SFfT(B53>j>P4eL^T`v=o;tzjY~5XY=AfBr zylA+}B1!haNQBnzE~4?NaK33^fSN3mTw6PH92V?DFuu34;@X&+s*FxeQHjUlz>7qq zxJF0$^Y4C_kMG^n-hA@JxdHWrC19SL7-+u!=07LbIm>Ew3R(6epXfCds1%qCtg^Xw zldVkCdYrAcX(4n9g}-dxxbfdT+1TiunVjV8$OuDyeR%SDOt~CVqk(R>QyCcGVXej| zj~~AR$VtuabS`}7+O_+adVBHh>|lHJ2y>@{bPz&)0XQ^8p&1C!h(zc(ofwit%P?pG znh^AvGFaLhtdv{`$$9MSkuf6(vR(oB^gs#)4`Qeo- z-0$hB#+H}4G(5%J>F<-QPxGuYi7bbZIZ=H9L$nxjMp5;rEIzse&D@FDx&_cGsg%5w zPOJByJh?qSIJhu3JWT({2o^=5q3bN~?sEOX1N3xSeFcycm|v3AnKNhZUkZl_KYWO- zP&n3E-?rH(kB*WK23blbiEeDr?sSkFVn@ZvF_i*uQkV3PIWNYl$q1IlwWkRN# zt-6_(t}-#_q|4v^&h4A;y|cZWHq)tg&Vbc&=1k)|=gy(;>|i`Mhaq{r$bkSWj~)>^ zLCN?Q7=O01;z^u3RqE;QKLiMXkxEhh-~&t(6P%krMR0Hu$vw?xVVr1v2$|rC!6DG` zC<*$#tK7Ts0f|E0jNUl$%!dXdDny5D_Oy}9DX9k!td(G}YO`2qwpv)zX-8RzW>yH} z6+lj4Ca}*8598n2ITkns(DeDpPff9`X}ov+I<+TH+?$5cXn;77oivaPii#}|dcQU{ z6QGoE(Gb1I=OVE;zb@z^-khSE^fKjl@uxrRVd>%Z_UiJ|-+3p--}&ys0%Bu>#*-&U zn}cpQ4a1<2&;RtEIGH42M~HT%R-@191iKwktL-^0!@yE3qTgL3CPl~$f1hMynu0!n zg6~8*$6;tCicAL9NNj)1ou@lqnuXtcy+J|9cI#R{%MI=|128>9AN( zYqc*0ho&f0dU{BXjd5dZix2PK#hl5g&-U~*KM$owy7A!tjh_aBJ#SBTxp|OvfaE~i+{XvgTmsX4Ix_3 zUUoX`4UsSK<4->RmHxdSbTR63uvtBYz<$E3lu@uF=q1{)k!*wrn*vl5H|Sq);;Vu% zbXo{BMMjckltKZsVc_$4_--mCy>|j0RT&i3VxdzkV(sWCl9h@x%ue_$>)|Wpee=lX zANg^7`wAc@@gPutwzI>jfdQ<$yQuB< z5n$+MGqs)`(nCYs$z*u<=RYU0yQ{W2<^~wOVQg*3Ot)_QqVwieFKyk;c6}6CvYhZr zB_vFkqyQRjHrg%>OApb7a|~o3(3^jXx4enHnZf8(&^3)#wTic^i}+E&@fUyiUNJ&O zb*P&@M|oB^z~&*}cbQ$s7_q=SInNAOBA8@9GPV6#U- zs(n+>{1re>U^OB1JC7eT)!)zDy|rj7}fSk zg#(PXwzRxybvl36Jbm6uOOr^oN0BA-iLX~eM#73k?!~ZlQ85qm#Pb^KJ=^#zYjjth z;V*At*VD*`g4-WtrGG#VHe1D3yYpX`oAPh=u3q4P z_F;C1xxZ`S*?544V-U$4M3vkq*!III>30N&j#ExC9el{v+Hd&q_L2*&+WID+x%BF_ zKbeI&ISZEy3*(h|*h+#DC;_uGA9_SoOL^m=W2;m>)T zeuHdh1Uejzk?@tJ7{*G4u|GVIWBoilSmN zJ5f|8l43ygO9&mClwzU#7Ww!udH=V+_^V>E z__tqm-th_`UxPV7c6N3BWT>z2ZJ*Ogwb3A+P9qWtTf#6}t*>g0oXPF@&Xr5m$@w3# zoOzv8YZzI!d}WVKprcbm7c~^>SOBw9z#@0Bs10NcH*A>Tqw|i!K_8DLR!GMHWB!oZ`iX~aGmDou+6}u8w z-t!&&;FrAT6D0Wvsd8RiaaCNYO6-*5-P$Y*kZks4KrqZO%tp`BJ=1;j0FfmNJJ!lT z`u7F;*6s7ZeeUVA{F=GV(Ld~yiG@I5?{vwLSa-#B#LnZy&PAIY*Gb)( zU;g;a$d(3SCBex~F9wxfk!)xr00c)u%BesFE&ya_wfoFwD~F zXDevMGK;0-Aj0risuctR^-kzjz4L!Ue#a5|q|Q`{ZC8l77dX*APGatTE`R>v8~H;1 z4|^pJMi- zHXD(8aqDsQ*mYd2{|9_=SI;4T?ZWfFK#M%b*Bc`g?e3ij*ZzE!Qr7X1=4kXL5!Vf_ zU4D=8*_00>V^A;2y3&X0!u-mPv6Mr^M6EI4K@7L5y*Z<)zr3@X#M2rbMzg( zfNl-4lwD&K^~A_II=j!ZS?*zGqZ32vK&XM8zFT|oswGm|NLfWOHwc#IiD$pyNcs}( znHzYlJm#yfGUN5~&$r$RCZW`5TkAxz4gyxym|s{>=ht-K$$?4zh377!)!eLS``8Q* zQt`#X6-FrDr{sRw*s_Kqbrd5-q&P=BKTg-?m&7)w@YmLHX>L4`W~kK&g~Nn|5J@R< z1mf_7Y_e`^12yD_8Oykz)2`zj|+x$(mS_V~f<8O`<_WSXBJd`vIyI!X*rQL|z>Imcj z;YQ-uGy-lnS}{+^T%c`jkt3-~6#a+T4EC@d>?IlMLXUQ#_&c#g42d60y0!%)#P{Y= zNi2}^PEMC1s(3_!u$m>RWoQW&@Q4kvnFLFdOB{>0(A4k4ovIO3n~D1U1l(@i%67!9 zYTLL}6-5XI=L_QSB+)^(m?oNS(;bQ6YK>8=*9jP9!j-S-*qWptKbynH(7S&`)g1=4 z3B&TC8$n8D6T0E1W=E*m8n%S(n36yh61Q5ztrqdQ41$_LP|Mf%M(&z+-vaS@-C_jC~P6pM6rc0yOzR@2Igl6w;AI*vdb z{>zbUHc~8=3jXG10vj7xQeygiR01`OS`AeQto{z>*5~=~>Q#I`KP@dWnwpvkhQdVs zAv~TCs!KyrRD=-Q4wP+UTP8Jgi)vM;l+#HUa%8hva=9$2tQAD4RpHibsjo=b?j4kz z%xmwds`1OSXYseR;GUYov(qeF09r0bhhcDjWP~qQSA9AA0oqJD0&#d?gs|)NI=I~k zA#e+UOHuHtDu&ynpp7$(b3=`o^&3 zj=@`iiL@!{TVuf3<5*J(EZ5qa`uER1v)W#H1z#*iaBb~Q9@4THyYZbmRUCMb#$b*>9R3%r zpjZO~#pAIU!R6(9Cd68*N-h*)a(o0eI7CT5sRx z#nY#e@wgdjfJ_fZAP0nYRrQ@49wwH_;4R&ov0-^U=q?wV+3fgUud}G@Uri^IR9jo` ztDsecAecz-jA`=1nKN`Niq{c{!y^*};p*?#hhj1O3kxXLyYf)_NRax>O!RiGh7sL;9*VbEq;+YDpPV^EhpGl0fjB(;#TpEI>_sPq(P>4dkPGM_nd|Eb6x@=j>>cq?p`r*UWJf7X| zD%f5xm1-67G}(697 zpG-`ct!K|-8wR0`4FpgM1}O{;p?wQ(|Z_Pa0IfCvFi0dS1s#x`#UD-)jb|c z!61pTG1hIn;Tj@L+jcE7HWqkWh|=>TBeV?+0FbNKxiL4#wTX#830>dQpPPSD1{A(2eJliNc-{`eV2?fUW_-2HBJRsaA107*qoM6N<$f~49wod5s; literal 35792 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 diff --git a/assets/k9s_small.png b/assets/k9s_small.png index 7f827fb1aef1233cac0bc5e1fa7e6380433edc6c..1ccfd3a6d8b628a21a306cf9b5796fda02c4c8af 100644 GIT binary patch literal 28832 zcmeFYRa9Kf7B1SjyE`;aaCdiicZVR2OK^9$KyZiPkl;>$;2vCqgx~}cB%GCh`?%+2 zk8#i2W~}aBy{c+fO{s56HL>cda%jlJ$RH31O+j8-6ZjkhUe<{4!23{CFbW7nYT>V~ z@2P3wLkV$rwRLc^q4e~F*ihQ|I@p3hzH8-q4q2oh-6LPD@Jyj?DYL?_NH6*)?tL_5 z6ia>VE~fpKUSY`#r0{Cgs@mrv19 z<6z{s=~yp;;?+&~Wl#T4;jD(`^+F1Zf|>h^i{Qb2u}U@{nT0ntK|yz?!AG*U-n*iV zpVB3-15{4BLdt^Y$_L^E<5iv#t_&C@^l&^1Ps|G$28X>|qrxy*(TYYv*3sqO# zVCFo`VCp#0_;{#i=u44Ed;MWQus=Z=SFk>nL@C_*t8rCfmJkoOB2!0(rqZh(eIlME zW2L$_ozOk|YMT|s+Pb!__lX7m=jAI~{uj&9GD;z~O^#EYZxaVZ5cJ5O?sj0TCixd8 zTiOlm@&eaL8JOzV!3P%PZIVuYCtBzszd<@o0 zihpq4ok+qh(RW@vOpBm=ggsSa=+b#bPgBaE=xvwi@I=qAnfHrZ?#M92k|}azGd=Dr zkChFJgL}CM5?NiNe=XNr*KZ|DWDJD18>2?+pK$7g9P@ke@HseNx4k|&bdz^-5VoG= zyW)h*dC&Z?71{7IVagj@Lklt*Lna6rZC<;SUHk0VRle!6m#RkYRcY8c#eS+Ei5S_g zM@}tZ$-lN|b{0D3Px9Ir(p~2K{5_{#`h7OxkBviU#$4w#W69iSRmH@-2*t*gW6`-@ z@8{`VyiWov-l+L&Y_=Yw91{-D8z3_rhOk?06ppgIQqY|bIFBpa_XX&;eOYO>H=P8|#1TJci4~QvO$e0HBzC-64=^YB zB4ZvSMC<#S$v8xj-vZkxE~$z?-tV@}TcmbCJW{jq)67h_91&XPTAf33ch*JiC!*@b z`A?3Un&*KVLu+gUtlYW^?^}lXPu{-`XVGU}QM?T}vq~Qob}r)*T*+6Gu`W&@3wnt0 zhgu9Wy_7LtGc*jE!|Jigl9cctR%zU?u1~w(V8qOg`%uf0DL8ltm-tnaayh#D+NeXj z;DC1!Ty-2dA)0F47IL-mybL+rYIQp2NmCR|#Aj|3Fq9>dchj>mcT1GMnj@A@Uc~;r zX(@<%8-Ln8G;e5EHwK3x!)b9Xk&yH)3j=luhtb5RjR2jsqCA-w<#JxQWcS0gn$X;C zk6Sgr*h-m|VPtbhQ(^vAVwVA9#t_o;{3c1lo@hXBSr}1v1-e73q~p6dCL7HMVRssu z#<3i22NNMxNOII$X5uM#DP!2;gdPUed1;GMW8PhjkrAw$2wGMLF44njQ4|(s{m*bv zVq^>Vs=@-BpPwC;0zd!AxDc#+@C+GW^68Pb51r#ZMMuZ4I>h*)`R$rTqx)Aq47|F9 z7K@_&sjT8#2U?HN#Z*}n$81YvydrjswOre8`48EgS>1oGC;p!=tDZ)k4aQXQNX-wbpq6Ag>2m#o@t#rpA+b2#G z1S*1Y17Tjt#MTwAANh(6MQ|*8qpzN~gSX#2e%PypUE%UlxhMudQ@z17n)CPW55iK# zI78e&AwD2RG^0~)TWRY=m4gM{)8szJ@pgoU!de17jLK> z;SxItq!E<0Sk|Y%+eRdPTN%hTT$xFpionU;CQfz|jcGY>eM^k)G-fxwu}amw0(Ymz z(<#%Ky;dB#q38wa>uKKnXhiVspY0^7i2qH0+^ya7&8qA});xZk$G` zpQb9+_-55OsGePIix)eO>Cd5d@|0V2_yt4ys~+PU??Q1COq!r)X|e6?!z7n^DG_DQ z&|=h|#R-tp2;FofJImgQ(892t=^VauCL98gy8@^c)XN&U~ z#vPtx0q#m3!>EXoL5~vKkp!knPNFbhC~X+NC(1Ci?Gyerx7uz*lJ9m3iSzcjLn+m= zG}S=I+YkKF^D~+%Ga%A9Bzx-DhM1D!i0JqW-U58e&;=A?dm+1EsaRfNaWRD{G1FR5 zV1$tPVBPu22QpZVo*12wI7#R1&lUGoc*NoKwLdCm+#R}>8DEtuQmG|GwytC7b29yMxLR7%E!XygtU!`qs#`R#O2Z|gzPZM(kt!cP%cTIL-eqzC6Q~- z^r^-oB6yqTRQ4^3xL?3qbiQFI=s(V~k$hV)h2$CCLMBI0Nx z2ST|`4%~$6ZVg;9Dt!MO&Jw}62<7gfQ($NQm3=Y*G7nzhj0xMx9V?2U-irl6Nfw-X zne-q7^PjvhnZh-FBy4>NNY3o1{bsuu_-6R5DLX(7{wKc)OVX2@MFeIvccM*}A> z?#d6>oF-9e9@{v>7K1c~AI6ia?g@Olb`hCQphaG(5 zgNqbqe^MhXW(I7C=Qg-LCUO=V`FZx1vOja1&gIG2f0L$%O&#UQ8>!&23I_qvlBoJ*ypWt*+PFnvu%5hx2ur}1{qpPJS7C~GVM*VGtr~HKYMP(#-NCu&Qj!2|opNlI|YJMd?N_$JKMhgx~v!<`(h!LKI3LjjI;kDk4 zi&3n{fVdgaE9Eibp2CLU**SqUCOuEZ3tiC8LbMjEheyy2auy6n-|W!)cW2%GWNCulSbVMN z&XkFa`oL0q#BIj_aS6L1#-&THlBIM;{FsnY8DX#0jT_R?9D>!~5Nf7sT0-Fr^&}7j zlK|C#{fV$*%9AAowZ@q7!2~*r#p4H@MKRQthl@&z}%!z2b=5Fv~%2p3C z<{9wpq%*3#(}bBk$)j44pxwE(K1LGRET@u!w)E>oQZ626o9f_R+<2X^{NyGdPyA)E`c7tC;sgPD@2OEr+P5#IGDf|h=V39ZhuIamMl?){WV(}(W`2*ua3s4$x1 z)R+-F$BC|E?-_5u&U06BldFg2iz3#cvbjbGK1Uyk(+OL}J-!=_q31_9FR@Kp3$KI* z#h@qfa%)OWj)v*aPEx4b4|2h3WGYwu?!Zaf!}Ohkw=3IT9s^fhItZV~$VL>Gf3BX( ztCUiif=RR$7F~5xWBGMdmhuy3LX2nfmB1h=B}3YmOV_GV?A@vn9MG{Y*;Yc;2dtT5 z94v(S!=H_Dr8D^uC$VZTWROfqAr&ObR_fL!jvylL5(*m&3rZV&MWRp-6W&SJ^JRQA z%#U3|_b2~t98}aTkCPI%7DRc#JyqcWGxAh;X-)83w_^+r0_Tw4w;9Cdm9Z0W2Lq=| z!k+Ax0i9eq`o-kMsij6tYxi4|oNpYSzWqUWZITt_zE!Uld}I_%I4ya12T$oZkJs#?oo5Yjw=Z+! zVH?_T%u4;Of4$s|omPg;>BS&ZbQXESK`1cis?HMztD#T?y$Ew(xSGPLW#3-jOEtrh zf;z4p+8+a(ZOA&S7=3@3HVo~z#6`(0(%2$PY%ikNV7WL~Ow;E;&_7IjN%jy89lgkv zOyOsUi*8F&CG98+n?r-df8>Zl>?z-hisp}n2M3O*TfEF=MXlj;{EcL>aJ)7qo?S#$ zT0v&~4q^@4MF)>qpuwUDIl=l^(LU+B^HGs9+Ie>v9h2?2xiVtZxSLnOe|0DqUjVavByjsW>#3o`vjuAa0-Vdu=E0Vd^ z>bi?l7rP7dXl+s~XJGPLLu)1qMogvvUg;BmE`OeRPh|o>?I8}ey zIvE_J9;<+UNyR$C)0&@>OGyRW**8E*EF_72P#1+G>M=ghAYo2zC3TB#jHv;Sba;rQ zI~qIelGfQS;c<*X332k%Di9ZvUNk~)$5S+Ev>-;ZQk)dOly{{svvR)mgkux)=d5bh zA-OvgcdX<1S|hvZI<45BGGH$)Dn;uMmI#qZGEbe=N^^c9K+Up9jrHsQZkIt&W4}-0 z0Af3hgk5#7Bi1od&y`^wn2O2OYnAu`zac49>FUEBQ;eVF4X=I%UQrFfe2~z@*;>-LnXG43_SYQ-$H|_0Jj4h#~4NR-JiI$t!lxl0!v@ zRG@s>(nll(m#HzEms_Vy%i_dgOE2lQV#%(2I;bk`Gf-C&Xy99&`@+=m3|lGNC;vNv z0(uC&H3DidEl?2`DHN_kvYq{2IbIN zd@ih``6AJEm*=m%RKDewl7h-RP7^NiNvUCAGGl%o73~a`3=R~65RMq)Yw3mlJH}P7 zk)ZZ<9qusyckwW`5b_=~AOEJH<#WGK%xWgIy}YC<@#G#~72CEE*eFd}Mx{h~J>O&O zPDzAa3}&B>6|iC8w^k*~b21XYc;ti?@IjVSe z>*RHfFK7sLr{5%Foi;rS&o7U0z?;v))P!L26{1H88rVgrT*?_`w6KxYoVeb>f2yy7 z=VG$zA%mLCfOPc)Y9EMQHFuV2vKWUE_#tLcxO@liSA0PG=zH}Uy)cO)H=<=6 zZ@>|$Gnf#z;ffMk1dSfPbI?1IBxMX`2-v$c&0K;Ms0o2B#W&tukW;eg~&^= zybIfLQ0>-h?E{MsnTWAT1mC?|ch`76U@t^vHXawr1|zB<&Be(j!67TH5fn!=K%pJy z(b>i%fSn{xi$)2yOfS#+uh50V`{(zjIE7a=3@)ES_`DF2sUl~l1x~rY3Ayd0+m4{5 zJ}rt0$UQha!khMmDRi?fRw|&}7Y{b&6Cdwo9BglC;9Hwg-5{&Jslc;PWv)kooLph} z=aIXyyw3S}8_{7aiQA+6X4W2R6*Z?KT?aY0&{fgE>cU0UQnCWpeLf?^PKlZ@J_WUm ztoG1FyS*Z4XFD^<#s7&Rp)#v6cGSqzh+mt^LKrej^X+V`-z?c3m6_2MMgP$jk#x#X zQld2El;280Gebv-K$tVXC|A&+nY%X{kq;vrmi7}Nbj@T+pnW-`+50TusobH1VHywQH&UFrS;A-?i4zz_%;9n+g~%HjyeHoXR+@6} z7~^@Ac7+sbXAJfwL5yl%;eIR>5b>mak1@g{&j0NllD@ehj{8^QYR*nX5$V>l-tcMH zS$Y%O>}0$PSVBP*y7lbzs7N@NK+yKn@OhtD_~oe2{YMH|Ll4pg2zWfU`v$Jlr~}ga z9e*oAu-(#3!99o5VK|Px=b9%4jvZZtkH=|wJX2voI+3gPM->cb^D>SwzKZ5hj3b#k zieSt^iZFSGN(K^`%Apm~*hMhBv^9ZWG)KrSZ-D(G&xf3 zC8V>#MaM3q!f9nKYN|%1X&7ABl!L(l=KNow2~|$^87uX3yxdTqx5b@q4a%F^lD8R? zk5~tI&`hr!Tl-{3x=t3eg-<6h8CsJ{;T@s)4NXmE9mu$+zhU#?@t&`NO>42O;49&s!RaWUet>f1#7p~+{6x{ zb!HJcX*|DFiz0WnD7$6@GaEgxV$lFa9{COW{r;cb+T)Qgr6I7_+ z{|t}E!^fvtBWJq;5_qS zIV?WoRUzR>lPr((BwHCfI7Us&a7uE)@w=TdCdxNRa=%WDUw-)9iv@yq-b&;#u3lGC z!dv2Jhvg3_eN)D_{os;aDeJXF@Li-ztwZC$vX0&xMOSj&OJ+J1ns!jlP@0kVz-C$2 zZT4k)hjnfeBIGs6#ze$YV*z@F#dFWn51EUCwRKVuI168jDVAnh$XxZ$7@g zb&369orog_dInufCk5#o~VI33hGNn&WNCd>VMPBIOoQvUo(5SR|lXKQcvrZ|3E z4HotgSqmX@TcY}v_)u0WBCVWr{G%~Nd}J+>kf5VVYiI@KK=6m+xvi#C8W6YSTUqub z!3b*ZyP}_uQ-T&D52e+w%%jLR+xLA5-c0tf^Z;UFcYt{^4#kHbdbi1A%us)+oMIO&L)RvQ=( zPAG=ox=IyaT869*S*8lpF;bUIne`bnmz#!>H7V@%z(DdyO?Z4uJ$ii@)0UPIY5U46 z8Dw^0DLnDAQCMm;Wq^tpGt4!~?!4!9#l5;mM{tS20_ZwxWm zd5guBpG%#D86SzSYnX$llIR=8U*jnF6@@5SXWHmpn`R`>`M4S3^vQ&haiu^EEPf** z5*SyzF%;Wr*nUZ&DW&AOJvq4lhth%OSR0gVl3zx#g!l7K@MV|LD>2bS+Q@zJ$N2pK zRH$N;B2%w-7gnRyg`feu9YxoN2_Ex@^jk-*cycI__5KkrEv>td39_P>@f4NS%rNfA z0CHckQrFMWfgizb;^${jVUK%f-rY1gx*3PATQ;ZbQk<%FW8oBIE1e%?TDorWAI!wiVQrmi;>k;F}28 z-qRBz$j0X5#A$HpNbAi&1X$;Qda0`y?<@N@CB@MUrFp#DSRZ#1NBJgnRu zAf67cE|h<0T3EVzd5VC+Ks)6>*5?dSQTZo%7mvS70gwlquLXpSgO#1l*_rL%M|gP3 zcmqWKzM%i>2oG)G44qBW#>3Ui-O5JB+s4I{`rk=dTm5r9#LM03FLtc0*le6^oPn+$ zz^okqF{PY>iuylC{1JhjgEQo>QGl@jqo=2X?Z1TeA8Y&5@)tY*z7SyeKk5EQ?|<HyH;<>2Du3h zas4IwoIa%5N z^+est!qXNQAOcpgu%cAc`d5p#gR_m6r^O#}a`5u-aB*{Ta&dEWad7kT{Hv3$jk^b6 zihqc5u(NXgjqo462m;&ylC}6_r~rY#MgYtRO1axuc)Gf4ySh4wfd8zC^3TY>?3+^f zZ(5Oe@Bn)F{W1B!8@-l|+uy$ZZ4Wp({MAHB`Ip@aT3G#U5)TV+8|%L&0>=HV$;#fs z#m)xU;D5KMe>`{izi7)AP&gkq7Y~a7hlMo@H;;t?izTNm9}Bwxw}3S_2Rl2bmCb)r z_i(lK^s#Wak+1_e1-Jn$=r3+48U7|q#{cZ@V{h|EQ0&0&X6I$$;L+yf5ai$!gN&^2?=l@yP|8L?#{#VLl;{t?1K0rb< zEgRAaBt!6)N^;VFrA44$QeDBo9TG&|zykzgrT+7R@+}wh1|A}KDyYaH9KvHlVWHb{ zWl(}ZlpqCZ32ooCvmU=3+@&7T-^=qlJs0avlkDv1?B8L==op~keNY)bXKtK&DOe`V z{Zwh^izl{{4px{v&+<*A)}Wm9BR!e zz(9󍿖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 P6f}gArec-6dGP-MxgMb) literal 11443 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

RE4P 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 literal 50868 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%0AoNBtvFr91g=@EX<>dl$yLT8Zg%l@b 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�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

  • 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+o!*A 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 RiTVo-pY6<;NO{CT;a|TOHE#d_ literal 72287 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ƒ!EllRbiEx-OhD& zbabFsdnr63zg!@(A{eahgfM*fOyB5r!uu~A;N|6oQZ}9@M?@DX1GX27ok<1cUsEYf zaf+Ic%sFjYaK44|M)vd2r?aKwfzzxSp|!v~BBqF`_`)FJ?41Da2+kPb67*MR<1Zor z{QCIQ8G@EKnk6}uEIM=4i$By{o;8{E{i9HRj#Mzcg?a1lfu!YuBseH}8@k_GSrAx7 z?4ZY>vr0JxW36Jrwx5A|o2rakQ>I_%(^0TrW0hA>T2{XXVcF$%G}<~+=5Q`P-ovEF zC(;(IXW8k-?4K;La+`mui{;jtpAN!El{x8P<8=>pSuve2{a~&)KQW?GpBKN<5)i5{j zyHv2JpF14QoQ$^%rZd&4!AC@pHbzH+@X@S(t2#9vy{~(wx`!F$*Li`QnC>bT1xy1T zRjk2AO)cWsu&I=D*VfM*E0>QP?4<8bisT;C&?D zA5_Us-yQhN@H5zB+b)ClyNfh~nTTKvGv7@JfS6DVa|qLdnw&AOVr`Ta zGuryp5QZLWJTgtT`QVDR#_o+0S;U7*T)o7Ej=jE#6^Zs}-Np3ed9wv`@s&>A6`6I zml$`c*Z;0y?^XP5D) zgTr`*qBl_`Xg`MW2i)~(G#4c`@iJ((f|U#4L_)70&$ zR*TcMSmf`7mjjC0BUN71_eiFCHaG4HO%50i2k$b{rm!cbNN{*-O7&fK3*(iJ`|HA( zxd!O?g>w%`R8eB>_xh42zJaGpi$*Z3m2A;a?X=!cx#K8KDHWR9p}`Gu6CXysy;J;>0GMzFHNO3d(=h2$EqP+lx7DLza=PCDEW96^K!S3hjH-5$xlbL6Yt?&G%mK4NGlav@{S7u=t8td-quEU`pySoh8KUq%34QfW1If*Ag zuWyl&_((J3KznqQc>h}Vo+uD*3$x}(}z&z@JDIVUT0ooiGsL`Mn zo*mI@t9F~4AJeQ{=n)S}^dsk`yZ1cO2HNH`zQDZ756ygSg}UX%Z5Zb_@ehF=+ZlHt z=M9th=Nk17NBvmnDruH*&=bvuuzret^+YXFK;aa5kdZcUE!pGy+w%X-zVA|$Wc{Ok zi8ub;5-6$DEe?n#<3}WwykI|;Vcv`JP_}r)j<3$}0UJqE6U@A$!p9tkNN57V!gRFp zy+k6Yqnev{HG7k;{pXQppZFpuX`U@Ln|I1i(W)28mzF8dCs;MaQ#_-SEASi)SZqcz zJ7dGu|7ud$a(G=NL1rH{sy4$^d%6quy4m_Kg!`|qQb}T4V@#g)hMQ31$Ln3<`QOds zZaka@+gH2mba~!WB%4qqOAq46_~Jx7awQbb8bR#HQ<8%dVs~mFY@V?z*GOd9-FmSi z&S-uif4ge{wBZI@<=Xs0=8~4;z$7B($%2pq8+gFWIDkq3E45ly)?^_27RuvSebsgg z3=Pv>Sm++j8ftaL0?X)~@4PGTiR_JRPfdx$aZ|WpOYk>aUKd5zt57pHd93h}OL1-h zCK$Q(X`)rP8`R{6%t$YKznk|!YI2CHI1(26V1t?j-kVL?o2-os`2Yg%7yO?VfWl}p z`mPxzLWMA5d(!rfhqQh_wTe)m8-d$1GwX9<;2EPqo93Ti%K#8WA z^XH+L{IpJ2C66fAP{QycvlrCVl#e5SSW>D89r=2~J>nI(5tca=@O~#k@k6y(C2Y(s z$W^VJO|IJNePkZ&xU?KQr|a*@2je|(VjX&L(vzon!aN2<$UrCO+XOUSbI#^Hi;1r^ z;%yHlEE2f`tPp^=8W651z8%vv6dRA-N1Xq2-^yb)Dx7}t=;n%!>9vAP6cBq`hdd)5 zhAd;O-T01VAW~yOU1vf|oeQ{qP&}R=hsCp34rEvPl)zwL?#Mz^-P- zlO*%C-@x@*+kfBSpaZ@H+Ej&CVaPOOr3|rQOy;6wW4V$sWcf}YQHvxK&iVM2RvC>! z{<7GM7p}9k+;v!b_$atLf#tnDd0;s=qLE)mpNBSog<*j2z72lwPQ#vTwHd^;zuVhx z#=QX}k$Bj2eK)9kH_D;gM*pT_e4ZDUDsudW>ZVvZ<^6w`*3|W7K=LYp1vx1)VMwA2 zw`KNkAJ1Z@*0$nvE3JrDoOe&2=ZZACCguN)`wTp|>~J=nLP%I$nk z4;B_Y-FML+fHta#Si`UrCLyk&WA$2lKO4)?j4(5WG0BzvCHS@W1CxJJmT0+I zW=k^Yr-;xm+ol^Ed2EGdo%s;>JT{swkp5LH^J0+Oex;A$(1F?fzUqcs_WpSdB`;kJ zG?%6-Ar1Ka$+aH@j~(y<2h=}vsf&@qjI&^T`e%TMy1LV#E_b!yU}%}2@EGR4Y1fB5 zwv2#~Eq0*q0~g48YPpt}@I}Z)l8x2l!~V-rs60q@o@AcN}+y0-J`fSrE}sf0J}6> zgB?sz&JEtEi`CkAyDEI$;9B4}@Mx8=9{jU{5zfk;yXZ%@Gi8m#f|5nTVw0oJ)oQSM z8mze*uANEk77_Y}9EM*Wk)N+1HHFLH@0mKDr@eP`z}~RQDIQyS&>a7Tm}KEZ2;iKFEeCHo=m`mB&SQQ&IQmvDe4l$#6#Yc_}fQA?(>hjTaZo zn0M7qWDnHb1-0NaY)GFMb}?IH1Yrv z83`KEyu91et`FnhYN>7i<~F$s1bJzpToLul)oPYKU5YF9#3S0Rg%Ih8CH^?8( zndt43*`Kh_zuSm}BSx;=jR`M75#Q|OvCT-HAq8=7JO+KPDrUp*{@7@x%0Q}?=44pd zQP!emyDU5PC1;vdEx4ltd?VPft0)t3#;kGYS{j7(HnqC|a@R?=4tK1LTt~22Grv;9 zavM5_G4MgD4OprIG(!`_unj55gVE>W*;c>V`hRc*J7{e@Zdtx3h}f;xWoor*lTe8O z8r|U=g}-dAMes~>Jqpg~IDKrUs$d6?#cl3vcvJcVL2!O&-!nlrJc!_dT{!8th>x8TTU#M)^P8zq&*PEacM zL>i$mG8f83_n8E^i4msL71y(A#IlV8;ce%KgF|eXP7}@M)E}Cwy|Ys~;XKh&W8FEf zoTNnaquGPMD(DZ0W{7#q0D5S8uJq6i)(p|ejpX1g(EtSNuugM$81LQ?ZK)AuL|h)+ z%GV$DssAiMGt1v-N}y~eB`+WLBe7VQwYvM+h%fOCiM;W{N2BchPu})lI%V@jGs-rZ z?KAXsI8A4O0>lX?wGk1>gcxa%H*x&t1s!iv!+Smd{pQg^055hhUnQNL67y`uRN76X zggT`iR}rA|E^!U=AK$TrTl)i7fw3W*kYGeBtL2fZe?2D@?;y>r`%%s|1=yc+it6*U z6t^0|m9Vd7qhz1Zl?pP|Oa`c@3~t7C57^d{?8l}tv~u5Zhm66zre>9k9grqzfU>K% zj)uIkO&exoyzu&FXT?O$My{jIuc07_Oz%VOWLtial8A9 zsDg{}ZfkWy388hXBUg*y-F$m`%^9bQrF{v~-}$`4zkIyhOK363-J5!joGzEf-?d({ z?eDo2y-0UD-pdvzpX;d2c&T5^X2r>5shzx^9Q`=0y`e5j3rm^R*B3Onz#*&xTb0#* z+yqjdin6zEc*|p&@jUsoOaP^Eb@NqLTMyU<{+Fd^97l9=uQ`3wnY@PwE_c+uV#>)5 zQ}z2tuMOvUmV%U_Mc%ek26f1eS+61bXND1#HXH?Gw2;o6F(RIUzr+_)7E2rMA9q)M zJ<{$tl-MnMS1*rcr_?-OF&{^5DYY$*T2D=jGe)(;KKcEN)6d;M-}MYoW?aAT3l%EX zHuVi+w`HOF+$@IS=*SQUtC}klNfenmxJ9qrIBXnhx1j0 z$nDO1Xtu%D+Ve*;S)py;-s8xA7K0^y=WQk@d2UBB=PoiUi8w4YRvPpm_TVFq2FFOV zrW-LU=pk7#|(ei4MPm5o8Rd|vLZ_UVW z{!{Y+f)WEz*fVmJRkfSpH?@!5 z<{3fEkIT+hSfX`JaQo+wmm)?_@&=v$L5A~Eb9*+CqO9f9_h>1TmoL~we;&JOuh3{Y z24;4q5L_QFf=V;l{`QO*e?B^7+}hEA_rI&pRxD7%)>rKWLR?e^w!is@=ZfD1j}I*e zV9*S~uQz&zgh^eRfPmvd_<{8;DeM3nj!r^ZW)W;?{RcNN; zpINk%s%+&$_wiL3qQuKCsa%CdnqfbARgg8A-^&(hh!bInT@`tY@ZGa7KLTT7HQA#Gu<~W^A zWZxE9xUhBfcCgZNH50A%a~{f{2tPTTi^0>-6M^0<+-TW%`8=>274U-UEmFC|)kZYs;)*0?>Pq4i8pL!%Z z@-J2U3Pv>m{ZXYGwS>o;qMx|RK(DqG=|R0x*E`}rM_km6~C)62UzF~|I+ z*z{*dNBInVQmt0g!nC5TM@V9!@44l;^L5+w*hQ-8zH`<~(I#;g`i%J#{IXQSmyVTC zq;1;{+(!x~Q*H}#(25&L!zP~K;M?2(RV^=8T0uahO)PBnLs_uZ*wuSzXRzEoEh0BD z#y9>02aS}q%J_nYamRJ=k@Zh8U6F(wwH5G+(A&nKG(u57(_Q$V& z_%29BC2OmvmZprGlPE2NDQapn?VG4KMF=Vab{Q)@hC|9N0v|q~vCg5JB)_9@Lk=39RTLH&hj_SyjW-s4N{G)m7=pCN_2=TUdj;(4(bL}?-fi!;jp8j?@nZvuiHde4NJrGjBQD$(?|<#7t%;wqz4EKQ(GzKug>20^O0iy74$ma~ASz+Hp zvuO{y^HWfH<1bn!yu63LT_KhfBu#uw z>;<_Y!O3vdgJ^aOlW++og_f*0e&%c~MjpD777671pr@AT?4u+|_Hz@4uM-9tx84W) zFfyM#XmrEjKE!?KH(YP{GuHc$v}Ztdm0jFUp)ZlsbcyW?Sl7Sw`Uhv|@;qxz3D!lQ z{e#0@{kH{2#b10FRz>^GJKp2xh~2O6Z_s+9@6qUU{RvpRIBZ8V5Zd+=gtVPpQMDDA zP>n&9&2Iuql(VPv5~F_b0b8EVwxjtqX6JWwocwpoqF&Sv_i9y<1`LN2I{U`Ew{_Po zk78B!H8Z{Y;6G8quFS!&)XRfG_>`@gJlI-uS0 zud?0v5U51u1&yO^`hv^aBR*BHwOvK02otCr*=C1q^^BktDf#1aUOWZ$N@rl3Zr!q& z!ABa2M#HhdrjNjvfVou5)K}Wo?jr|VE-fzCE||`u)Z@98X|GxyXK$ZNg9EIw4IZ|Y zD$Fy!@!@|kMn1uyhULhzF#gM$>|ewT(#ah8W_Ym4JYmpmDNzp@zF9XR=NiO~tgo@5 za6kikw@a4~=Z{p{qD;*3*Fi(xrN=>j`;}qmj$K?rMTy=={dulnh*}!+^bv|+NC|2_ zltceJ?<$&f%$6+MMqF(@JdgJE$S}7OvI;wSOAXAm+Z?73=eUi=^?5gzkAU|kkSQrv?IqD4NDrA>qr{VL~oKR{rs*i@@LoY&+p2OlRDeMyA`Zg5ha3$L#O#ig53gtR=Ii%@X)(r0E$p@e_&R8ki*rqx8gz$T}jTUiR zo!?A4U3xX1Nd*jB-3H2WV;GJ8*xps8ndIL$IrQK(f|>Il{5#NrSRiU z1ngJw- z?&dq*d*AQ;_>(!aXYI9DJnPwOu^EnuW433RwJJ_KLp!Zjn^-*lMHze6%W+p(jydC; zGV)>W+#S)Y|J;UP=ddBU((j@u7}f;+)c*Sv0zQ{80mROapaEIh!`-qUJ-x09xPRd3cmA1Mx^7soJ3CIy0(AOj%n%F?e2rjR9L1kK3}-Q1}Rm1=Mm=gws9M!rF`wQb!zE_BXUc>#7{-@Jz-2VMw9{IycL4J$yfCv2 zTdSqgBl0EP3C8cxKL&#MkeY!rtvF!(;F|MDPOU5~#89pE1TvnvQCDHfn@7%Dz@DEmiLQB%wXVjY1Mqi<_=-YR~=8wfk5Fzea*_CyTw`V>hu5G&azB!A|hI<+a- zebH@&DD_qew{qpxoKuOJTT|Z|b}};xPhDDPLc|9~LPkb~yZ!~4s5~zg^Az^p<0yXi zm)z{M1|?2Z1onTV!9S{B6ws=t*`RBfcdDPat*24{nz<}yAx#Yd=DV->_ZMD7=nuSW zg|&{)(9ZjR{jdr!OJ4q&E4~qs5i0(1O9s?kd|q?Jnv04q5f^(O?0P<+LY}1OUc|T! zcY*F?DqX((wH^nA04{>_^7a<{xDq+Uz&G;o3uG~{Y9cV5>8}^F2N;Gnj?BMtjv9k; ze$H_p>kywx>xq8kjZwVDK7JL?-cEuD1$E&rO_$#sjKXb-$*_|=>1CI#tC%V$FlM0m zh^J!vb4<;Lm_u99@%oCLK(8Zmn^#4I9S;!%be4*KUvJPlxKht(l}r2tA6|R>ywOe| zLis|FX8I68m2BC-uHI+Ka9tt|gDNIED@#@`ozFFINK^k(K4A40p1M3jwvUVQ zWU?Bj_gYETSB0a>Q5~AoF)@FUlv1mj;tub~d|}%R6dAH@1^kA{F>Vxn)OK-ic9~53 z6U*$L{5r^Rb5KO~8VAg*XNf31oCa}rA|DJJ^D8&lcJUUY0E>XVAV5Xy**PWw?vkt6 z8H1exL$gWPpHn%iRv~%^vsr7L0xv|Z{(vdWo(YZATtn0e%U|&Boas;51dgKvk_2;-`6Ja znst$q?XngGfHR1BK=&>^F=4uSTX^Z#(@T$92SVHMmh!RgsKE{(j*2msPWkLMl8yjc ze$#yWyn7~DxLl78<8#O%u59;y`TCz~X5KeiGOI7yG)$~06>)6~3;9gy(`+J*3|p4h z77pSYPza)@&4N|A_GGB>^xd}*FSlyFZ)4K2NWBpf5{Uni!mD3LVL%L zKRkW2;9>!%wti9W-H8HdO8`f&MAMcs2JtmncW47pgOqLLTU{&8H=axq*=XDUeJhf5 zLH4va5>h>CE7%v@(8Xx7A@aDd0?Q`0Ci+X32g;)Qgs81ZQTebJQ4$UU$6CC{uZI7o zHWYz#-H9k-nV-+tq6W?#Aw1>nh;lXI;(;Z4ar7SjzZPOwI^+mkERI?kXizJ~HrqrF z+xA`QeF}_Q$&MFy@ME%#(F!>vr%+92pqCUSZMo3vbQ5X}Rnv7nDq@EuAy6i71?c z5aSgh$}6hQ1g9HCjvN6v{6^TZ#Mbtw=fNZDt6N53uG`g#9gc_2#?rr`JqeYKKGq97ViJf*ch=1Y;e?Xiy$AXB{it3%Boa!A2uv z@zY$G*J{SX3fKgXJ&X%(9&H?(NHON3hgVe8iJu92>iun*`~;sPD#5%s*-=aQ)XUPo zGD`sTHqTGAIIof-OJ2RSa@ALLB7Eshx8>P?}5Z{r*V<7J2gxe4Oy6l64mVZN94&6Qh zl~^Pr#v6*JYsphl2%afsGhg4&e-ClR3?7mr{d{M4HEi4)w>crn$EP!;?UBec>W|C8 z25%+}>dNB&1^BM$bl5HR+#u_O%H12cjjG$TcQ!C|-fKs+WcNTTN`Xn1LBV=Okj&?f z@D7(57tgBj*KSjztcD5u(cHu5wM|r_!)aAzR|Yi1WJf^nf!x0} z{xoP%Ty<>hD^(=)BWg`Dmq))(BjUXXS5yaZlSvv!Ul;|D*}TpK=s}yFWmU13`a=7y z9i;xNw{3J_@m(%^2riOV#$=j-Rck|`8mohHnr}z6E6(r4H3){nb{0NS&us%avx%$z z$vtgzx9#=yXyB~X8-Y1)u#@3bbHjnT2e z;Yc%Zu-@#Vv)~wJlM@i%dc;8#1pSq_9zC0Nc;%L>(@exohI#*IUJdjITmKC z=duYG@xHn%>X(->v)rCnVLQ9L`PRfIJB|4QY@$|Ve23bd=J1`cp;SV>0{@$vi7BIg zts)zY{z}VB(Nr^n##vlvV5jyb%tW++4djc{hfDGJPd*08NKGXS^)pU)hfOVVN1G^(_4f%s3hhg79vDW8go^UjwwX3 zlNvSH2{A8XoM%8OBBv$g9RO#RKs+%9BDoCsD}K3Rl`dX;S+Ew0-+mkt(Uah_1BIw^ z9m-@~iXM($i%fl=QN!UM-AF$Zs8(hWwGPsY6#qKl!M)`;Fm^vkpB-lS%Ygiv0_L4Y zDeJq<9x{HF0vHCW=A{Fn{qLV;$UTKyCfnaDcv7>Y@Ko|zD$bf}aTwDd!~M5@hEr6c zK5{A?zOKgp^hgPMe4g&{FE0-(a*8^I6QLKzOhn3ssh9nv?&dt z%0k7eZzrBno=_fQ=>vol?B@7k5^%i?fOWYn6L?f+ek+Q_{* zA*4z>8QHv&+OV;@F8z!1bG*0jIvWEefAcjdSm@9lsQ0epIy(`UkwR83w=acgKvpOJ zr2lGj7_l9jF<;#TC?Gl8$ANT$uX4<8*qo?Yh2#DIg&ZK8#YcPVT8={kKbSI59|gb$ zvdyfDPjdv(zsUc83BBFS-1d==8Rx;7{VmpAUxuFSwVfycYL~Z4n>K8qsU{oo(WU+} zgYaNx%=x5VLpc3LFnq{bL9V7m@al>RGMHxn!tbE*^QfgOH_7q)*-h%zH4`ak)$wsf zG~y!0BxOuRuXqEpSRZH57>Tp@)~Fu*&@5_fL>%P**_E(9e~a?rg~GnG@xM@VWYP=Q zC)6o#cAOBsPakAVdX84-rRjiiJ(0T891P$9n(Kp|F^7oD9sI3yDU~RII)jp;GfR_Uyd_U_a_yM`_aqW`E?;2BW_V1$pv0s+`$BJ z+y`#p+$JfhgcwWLslOnOCaN6!?9-=b=Zg^6h^^w;?rRO0WSaIAtgLCvjbr?bEOvt| z_RdeuC{HUz#JDY#{Ff<_)N7cquK>7(bHj-V4qvCr9)&In;svn=R)GxoB%LOU-Pl&5 zDpLPfZ#aAJTOA9ckxr#mX8qU+Dld3P`xCf^;HlE)X`m4Vpg^B=pBG5L27D&F3Cn#b z)4RM1y@bMBD&(dV4EBxnah6c@We6fY{5GdhGO^C>1~!ag&asSM>X@M+I#X|Njf_iwEKtALz6BcAAfVt}zS z^Pqn+-Shr!ukMi-#SC0^EHADIp{O{ZN?9!8%V#|j;TO6x5n`J=9_JZLMt11Q-^yT)uO@DKfGeV6N(ozaSmb6Hb6jDFEAc=@e~BNFdlo-f-jb|9EJf!UJcyU93OAY zBPphM#P@veSk6g|Z4}-qDT4 zLNAyWSMI@_o4cWlHi|!03ca7o+lIBn)d9h%v`==+ZhG&~sDS~MkAHo!*Y8;W~w90oJ zSOS_@)kRfSEo&;@uo1KbE(iVU^1)S-?Y8Q(oCPMWi14q;s+G~h&pwLfDFGg%b!IHQ z1-|$5x+CV5gnq`LKLx7)n*!bLp8u*-QobM2j+Rp{C9HW#ZOWVg{L+XnxDw#JG1!=* z6QBAAP$x9aD}2Gknl-6vi9=f3m=&x_2O7h|Tqc$Z?Zq}c+KI1;j~$3H{l7~3gDtbT zNVwupyrw;F3gO4iiP-Z$bLv8gmEDnxM8b;vk{wY2IL=S8aeHs8IXe1GK*Dm-eUjoL z4`?i}sC`&lZDk;ad$ql)6AMkGf&I2 zDoA{I_dz%x9>Pd4IJM5!n)+x{GgH;Fgqh0X>Z6Qq8F27(z zhLR$|4-#u!)(G{XTEc24B6yRl+NdPKTZrIE!WC^z!1$v^zzk>K|Cmny>=uvJ7?(6w zOzQ>r9<}Ua>Ob>~@+Wg}MV@942*eWiC5AR!T9nX+7h*xfIXCtco0tby2v(I}?x7!l_D z$t>-i`kUgKL;|4^IONV&`u2jOr%Q4Y_DnfD=%M;ymH-aPvo)}5#WCK`xvCHS0j`lI zgfMb1qkrmUvp~>U9SB-cdLt%sdmXe8O*Zr?; zw^;SnN=_F_*Kd{UG?+ER(lRD5RZ-reC(@<3(C4X+!(}glY#1@w(gpOTC5mI&e{I0) zK{iv8Q<8GnrW9shAJn_zl55WD_U;3QTcZe69J`l(1yI?3ef#@iTRmK*E3{8x!e z2pZ%nrr05?h~kj+^x&|D4%JdVNHhZ-jS`Rk-Jr2DP%wc;Y$cxzNuh{zWb>U@D}RUx9h4y5z>C zOA;$!YJb0vRwPjzEX>DP%fpb#Ihw$#dGaA-oa9Y1#(2y}OMRA>z)z!=ud>ZYT}mF$ zo`5o8<=DY9ns)yFC5^?Sdv-|PTrtgmu?Kythbi5T3n^XzEBZ3%x5BLf+mhsT|CFPI z{STl>+>A1nwQup8U7c0%TUOu4g5Q$jO#;f%n;c(TG9QD8b!h4!cU=94)uH1NAM7il znoLfcp>YlyBBR1jDDod83=;lg48+9D&suflx$~O0s}*;(4(7x(>AdaGZ-?LBQ@7F8 z6x)6@(}kLeG`=%le3|Pop?!#`9b(=6-TkoCpf>=^Rr^pkZVBbM=vRi0^K_emOAmzxlOg&a`}5ejdhFJ#fm2FG6Hff9_GWf0iYAeixSDC z5vo9ix^H)8SLEdpj&#;_*d}9jd;36-#TLsNYMqbj(LWywcF6SaWYc3jM*{?Pg{?jI zrYjFvj?wr+AC8JB;vxx25d7SuE)TtY1&h%gs+4RD7u3W#|UcC6WOl zeA9ZP%*ch##~xlc?53>YOX5ufUN+5e0jubrSRLU;M@WX2EoJ7)i+nIl7_Kf|euuj+ zT2M6Km?@xRz!T@3x7)!^?`n(F`b=J9dqGdfhv%D^69ra}JB%&`|3nkNDKh$OY{Bij z(BW;J#1Yeh(Mei%Y=&qE!{t{Ap=v>*HE3XhoS^=sA=(-}ILQt5?}cpO$zA-tcrFzv zz~=qR_HBXO(j%ihwL{sG2s{61S5Qk!lDmC@gWrP!mJ5_8rS$xJ+oTrCbyIMv3Up-)Fa(!})#4ymHbN>M2H+C7RoA=)uDlgKd^<+Qpml*i^qao@{ zic6z;g9Dv-SI5?AqLQn_=f>{0>X_K!9H5@`QE^_}A# z9sR+F>l7s*mC4 z?!Y9=xRBDJnz@F7+ZL=vU8G!!sl&Z_Vu9bb(Pw!OT-%H$HjfHaYDbepT^8~k0Wa&F zw)!PELwKIMxDP~_+x|#*hRetg~8A;x$%}8_0sG&>q7>#?5VzqdQV{ z{YBY`eUm{nrnv{ocCb+PR>e|2_y#7cvsQ52V;?50Qul)&`t`?=Tj2c`eawOlF;SyG z*J`$T72`C^O^&I5>HYf!Bw^zRsE5{0xowGanFwNN_v0^}+7ffxNF^%tKT(UwYrwh& z3F~z+LT}cq-4{7MH^ER{U4f+s*Cjrzd%CSlsL|)P{LLzcOyVk#7)C};gX3=!ifs*f z72*H?hPZL|@ie0Nu~)w8NU@-9_Pz>PIa#%rODx+Q!viL+hIwcez(gcBR+qzw0L^i5s^^>TG!* z?7-&E8j1Z|M_zo>C@Oea^|Qd}ot@i+9xK4;m*zxULG#5*5$|npXm#qu)5CXQcea@5*X5yzY-4Hl)pb+p9WFSv16&m-uNa8U!lq97nfz=WA8p!d9o>f4 zX4;B3jbYSFv5%CG+bL#iQzH5qX^4jGD)0ySJ^Il%_pPhh7U3k>LSx0p|0vj z(OOb-tk~nQvwOAC7zwsn`X18cgFYDX5L}IV{=SENt8LrqDFSCjG1lm+)P-Vxu>ILe zYTlHwK#%Te7$V-QsP8n|liJzC9S<^?tPed@3mikV-Mu`GZEK%c%)dfka_<>% zfj%3>>goV5OOi$_LBIFd$`6FXhvx(hF!s|7gb5@Epo7YtO7~|ob<;CyI$TuSZw>c@ zrMv%(1Y6fczXxkQ>{S*aX4AUb%+wry`hN6={h)<))~E!xErCmIXOwjR=w-RrDz&&n zo-h`p4$eMdRVKzS*$A!DF87Rry8KKx-f0t$TX#*ZfY551VgBA0dYLo@8)+)V6mJ0s z3NCiD2g^=W*BW7zCQPX6tWx1fUSaLnOy!zS!tjPcuuGm=OGDj!E9;Cwm&rYUr@qzl z%~nFW8fv|L42qJ+Qq$$6RqVf!g5t$6y8rd%J#o;dxDW{_GJc~=Rjo!u6F ztm#B&_S?z|U9iuQC3T*=d~UmJ30pZ*r^&L0?&|NRQ61@rBxsPD`^!u0Z2HsT-z1=siWBdGeLjny{`1y5)x|fehQ2RxFrV;n>>~o!Up;N^iIbOc~BD z6JJkwlLjHcur0;eHT?C4@BC=jfz6yw>#U^BP+A+;WO=he|6;a_;F1^=tCB!3BbRve z+?UNn%B3jU8>cm{EeIT}OAX1tnKi(xIXu-3^|mEgo?<9(qL)!MDlmL%fRKQP+q4?A zSXuS9@kc$;p!POvs?w{OV4)DVWUZtNOx4tHr&t4%AT~Ya zpEJ=Zlnzk$$*VFqR;!pXUq9*-fV2hT^>?L5fov%K2l(qy z{U#zvE3c3)W1&LEcre404F?D=cj6K07w`G$i*@h0=#vHHC7dPPr8K{G@@5vpCXk-D z$acwD1<$L^%GBi|)1WRS>Z}f_S%WkMVOA+9$PrD<;M7GW9(yPLJG*Z^y6xeLj0bdq zx7C;`@3j}c5RNC+vF(8Ad5IQNHo_&XowtWoJ8opI@1QwmD3vh}m;n3??Bq-1kE@Sr z$9~hfVETMkEkzfjoye1*dbm}tPK4EK`;5diwI$8LGBs~2p5EGuymiP4G6wc5(mEPR zRE4yKf)(9#-jL528;WduGWK96Bm}u&Asv&NSYOhourb>mYG#`Ryxu6ZKvCs4}lggn9yf)29$GEL+3{6f1 zZv@oRR(?Kc_0%7JnkUmp2(etNfrt+(h8w=~EyZt7hWlBQAo|YNd7~Yh!&-v*4!t1u zQSX+M&@PfeT9-^sh8Lnj2M#dNU~|TCg8&Yhc;4yL(8KOv>p=5psw!{PGage?j zrfkfP=YpVXr`WeEpIl=uWOF;%s-K7jzj7G_=&uZ}`?OGBGr}u%p?WuWek>+ePfjdH z@$@B<5p=3bwB^?9>0A36vBv&5$K z-9AY6+`>D&kr!3)w!;usOLYQmiB>kwf*8#*T{iHiBUcBfg3hq_8Zfq!kvNBXuA38W zW#aS6g6tS!(ZLe}QqzM?L5rwjQi9%`oM;=>hHv<$jid#$$}58^=E%+-_aE$IRF;!C zO+1-RntZ<8Uc2&dUd#fWuBNC>XLFfk;?>FRPD4jKFt!H`O-((@-!HhsRs+MLb-0ww z1^sAf`j$I?%~}S00smPS3^}h=9MB^A+-f^5)%3g2_^~kF_|VlIct=}KC&@9tMNIMH z994y}7|J~wSp9M(W{P9*=I2cjcuQ(NX}EVDvcQeK+i!Y4i%`XZe9^f1$!xD&(f7zu z3w>+DIXDNV~TjkX}A7$+`HcNV{Le94aC54TVFl4*k` zJdl>XN)5o8x*W)dW0a3oJF!K`~~m|sYk)JY>kCJp4y<-%sQm%5z z|MeM03z31m`K|x@bx0l0mYz`q(<;)sCQJ?z8R(NVt&?TSVVzIj9nZTTy=-9zdDVuf zgph?S@=V+4T3pRl>Y#kP^)%GMDPo%#CIw**-l(nQ2%b5A+B>bQK`KY(KsclcaHI<` zF=tOIqYM1C{$LB;q2{eUYDo~43qu@4QbNHsy=8JFCsTCOT83A-iVuH(zJ!qRZb$xJ z4D6FT`U89f{3`W#rcHCwi#VRdCghjqzbSXwVk)85i7YfuEW)ja{4iSxD~23K#8q1* zoOkMVXM1u49r)%?zt&vcyAyNDt~HmXgsznLP#68(9<`F8JXI0O zi4NyoWQY!^MLkUHw~~A-&JlXH$wIU7gJ_XFHWIWP6SF(!Er!M9_Ps#pK;Yz7y*52CU3oV>ZKk2LQQA9+1up&35R3;TF6XzbgLdl zI)-0%^<~{~AP}vqENXxJ(u897lG4vzr@b;N`Z_WwJ*a}=iBrMDkwl1hdXZbFnLCG5 z6hf7mWO7l-Q;6yIk>~D=V#7`HUV!zJl{l&ATWt6h$|c$*-Tqij#Dv~x!tn3C@a5j|cJoEh#IN#jT#1=Orbsk$(mQRfis z(l^~A+bSs{ww|&IeB3`7ubO=_3Z$(4?x^?F6CGrKR@5=-?7(!dZ_!nqIP&k8=Y~7E&Do0Zju!3 zl9#;h#}B9#KEI(4(PrMfeGk*MMNgqU#m3Q5%#%OGvWx#VX2J;Detlh4H*=1h51tm% z6)Unl`$z|RdXB-Tw??WD8cX6Y@eX#67HbS!UK)1D_qoH&?k{9}!tYpGGkwh)5j_wc zQC0|nNvnHP8l4A!Ll1QtR@VEa#h|CQzA+V%K~bZGEdQgQo^B@2N{%0ldN=7!_AVF% zU+S7$jeYT%_dfGw_ekrgbNgClG;`PT(uYdejsCAv|E?%LcBy(PPrJ+|)muBY0YyFD zj9V$|C~ib5a=79>z^G|le_OQcHl%-N%(iv(BC1jeBpd^#V*i^Wk=G8`CV|-Ohi7}@ zvQ@AW@Mr&cA9_7yw-|H~eYnbEJ3solS5HJF9wzoB-e#!5Eq;#_lCyw2j2Z)psnrl2 zj`~iFs^!Bvu=k+P6KL7Dt@L-BZAfSD?4936Yu(g2B?`V2G6Z$(kv*HujJFGxR>gsL zv5*HP1aCz0rX8C2!#x|Sa~dY}xHW-)5*p<%rAKO|FX4QJy+g-LrQw0oF_sElUnCbG zM$D2_@~>a43=vQG=VuS$jFgIPkMbKz&Eh~BRzf?arOXsSUEDdb(K5zipy`R(?0CD> zs}ZiQU576GIr#o}%}Cx|`OnT9n|%M&e|mF64c5HZ+5LIc)9b~9dZt8(*e2QaxMYf8 zFD*6x*9?|OHmVbnlZOO4Fp({1$J)cFLW3o&2YoI%AsWFGF2ZF4Qifd@ck|M2TNc@( z|Ewmqf^I2L<3jhu@{dQ58ko>8cdZ>`2|I)GR~MDW2JMWwkNKF420!_~?-#@QT?)-P z0+k=T$4Yp4Ayv~pE~vn6P|i`06=9OCbe#?aTjcYj&W&Qh!yQOFQo^tsmkw z6WAL&ThZ;vuPP040QnVELb^i)al5VWz`P0#E7kb)vW~eutZQqN%ep! z0hKZOhY?nL$|2JaIv)eIn%@DW*Q)JCqr9X_!kXGmZnd#7IdXtuQH@?QR1ux~`FW@l z^}Hr-Rx^OalW6&3Co~LyR13ifWhI<$d&7af+5*9R&%v?buN@lb&RGD6oCCPj^%r5;|e$Z_7CK)es-4%(FkmC+y3*RvOs^<>WX!!YLCd%@f$nzDk`a#iMz zTHOLljmklcu0_7Fz4b?$cAR!7hDhxqj|+U;7d#mI z+<`&|LU4tD55V+Jo0z|y*740$_=ebQQ^U6yV_`H;-s6_*tk_d@m&ilxAgsVa1e)kB zN77MSYev`#QRw#h8^>eKe{|tNU(e(NPe^ia`$)q?#M*^B3>o&OCQ899KpazO{%Z2Y zzWNgr%+j^!sEwo9P?gHd$T%6($nppNIJ+f~=JS0c4;q{j42La?{#_82D}lg`#u_S zC@Mr|mU*L5IEG*PL+$MS{&XU}OsTo43&XKqX=-ii=P?Ud;I+3Rw7hEF=jjf@3~2;~ zT<|vd`^e~YA$T%OL5Y<}W7LZ|83QAW9U^=%AB=c1bfz&#+`fq zXlcR*T)`X8FcX)Qoi8LSCDjnfS|<+oV1%fbTjG7C0-@40>?ry;A_3v7PoUIuAs1>i zN{oH!BOQ`VYV*ptht})XE~HMHs;NLdtZoq$pAzj#1YAZo=&rhYazU+s$$$F3xO0Di zUf z;nFM%Lw%wuP7CoWC;}WKo#ODL$Jx8}r+MThRDHZ94fG8!CMEL;<;t7jGj+unY6#qZ z7}0xikrT)TXqZK4zIoy^_@7sHOBX3grErX}C~abe})JL*oE=?RD(Yv456K-Ack`ko^vC%YTJLkJ*ZYL;2 zoiYDJ2_N;0i8^Nug86p51_S>w@RAX5>M3sV zhgpz217*7TGOKmsLO34UWnt@RzoI7IY6PQ!bnR(U{(@{YBr=EsGhmkUM(BJ{>zq7Z zJ&Ca|R)c*^hN@t@FP31%`5%)}Rj;z-1sDN~+40PLAL`cn4Dly>BrE=stlN(A%JN$F zTOP+2`kP)I)sD?{f`?BCpa)|ZI^1YPE$@eOEt1J}t-@8in{br6rX>|JrH)BvQsIar z>S#p3)~$<-CM2HTpIThA0k?w)z9eO_CbxG{=M{fgWAlK0&+OWP;mNgpHmhctbbz>d z(94KeR^l+L)QR_#4~Q*J(Q4=m24G4UZRlE58BZ^;_Eo8~7U1qD6$Ie+&Ld@o1zSF`Ns=#Hw35Y3;_0X|LwA7*;SCiV&s)IHt z0v2oX$&v8zBWX)HOMcN<3x?o}&cb(=?Z0L|%KY?406zyi$&lUHVIOLQxzwH}4?nfl zz5PD+a{l>;>FhpBvqnX<=tf?-brn~S+aqQBuuY>rsJmnwy-a)|3Q=HyCD+u_st5$X zup8~{)7%`6=QFSkcKZ$Qs`~6>W4;LP9$ca7%2J1HdGz z|H2saQ7`C@^FwMfu*z?8L3<3?7R#GeK^i)5CwIb5*U1ksU;y5Spv6;{XW^sy$}k}$ zap1Mz!!DU83s~>ctUE zz+Jbh)+z1tD2@3$#XLQSh@(}%KfFPK8xElqaPmrYz2=6rF&=8V+5Vs?v| zQbVkJQLyWp%bQX$UDY@K0yFNaTjqNQAg2G5E1xp^WDGmbz4_TsS@}JU!BV{>Zl7YfuQ9MTGKn(AAVO zAF2h%H?hRr0>OiOTFBi_<;bY8 zp6+ka%qD_gGkec4U)>bCF><@mgv?*+FvXNUVR}+kJH+7Pvnyp@F=AWT_@FgY%rUYe z0o$cIHeiF~`FtiOXPZvuiSK=o{Sr}8jS_+qlA`IBg|*rl6U~jzC>n{R*|Uh`?wMmZY}zzTiD zR=;)bgLv`6Y=g8Aw`;2>PHUHM7ulY;Z63Z2Z_&JdAZ-lEFjUrm4rVdAz5AGZ)&t`w zwf_EdRrz7zti5+n8!ik8fSorygEvspmX%+-im_bIfm9Kd{CDKk91XTFVe{8iwP}*q z=`WK~g@cMLH*Kb+!lxdDA`aD`Ld0my(}yz&gg?$EiA2VfYSGQ`pgq4_vQqK0G@}qC z5C{WmG?OpMEAOU6U)$oVEsJaHyij&KI{HZKDi%~dZ7l3^)F-xjb!HQKM%qvyd*vVw zvrMGvZTyzkc zGBNqPXQc~>%2r5t9v=80oeX2eV?Wndo7`$TOT0~++mT?Ke4ZSD`m38X+u}=}qH+%> ziaiCGbq}f(_J@5FK`uwm!t@P!ls7%%Ls~zJnguq>TN2@sa&D=}vY@>84{i^)+Zc*F z$8PY6PU_QL1LigLjN|9j*eoMZdG`c>&eF51cG_ONAg}eR_VOd1*h{>cFYNLNv<*xMqLa(gDS{;1S{%(J>)fw^BK;&E zYn7{H0f9zh(kQ^Bun$RpoRbGwNN0NpvZ1a6AvCD6plfRG*XKcd*VrM7P1EV`EUO}i z@N>)IJN@)wdpbMk%a_KnJy0HnLZh<6pys^p1rR5$(MV}e z8f#}iW|bp6`US3u1gt8Zk^$CQRUByz`S?R&EEw-)ep6twS@fc0^y-&dH<$*e8EQl=gC2809t#ASFGi$hco~>=*MxY0xIISJJCboVBX!(jFNXw#oWC9Y> zF}CYZHFPeDh+4DzscaCguP8`-L^RKnL{Tttfyxt0-l(J zUue%qX<1cJ7HJ!C;vwUj0r|!R^)Zh<1+|BYAf$UCmNc6cWSDP<&5son=ku-;$UWte zX%NB@?RWYDBY&C`>sH*Gq$(3}nP1AMWB1alvSo#@qKk9SrbhaFV$53&jGcD8VWBe$ zYfp#j3bJhN2*>9fK{kiaO1>56^YiGPbTKI8!J{iPOVB&S46w{uwig z$EjU?M)aI@@K(^(CC+=FZvAjse*Ue#_}n6|?&g1nrWu-LhNczMu8j>vfAybz`)TfW zb?N>)@@*aGPDzYrLK&}S%cq>tToHv~Hj$!U%0}&93LfxKYCSWuA;`#Y;@$kY89dQz z=sThQrbz#Jy57D(zn5P#!ZOC+(RO#R!c-}6(o)A4zUF;f${$elR@P zJTS~1BHVKO*JHJYEC+1Fn&eDpJ`&^FbK`>LNP;R96o6QFCHyDHHo_NIkg4IH9R`E7 zoo-HO9G^F4|4j__Qz)|GBeY)!?Br`l?NaJvJ%UA$Y6{8x`o zu0;+V6wsIf!)tF8>~3zautBLrw)PYwI-KW(AsgCHR|fp^h*cHm{b1*QZkXMoQ>BbCF?0PS5 zk2F~jm~(LXKp1XWNwveyWwYwf0H`}pO>FfI=~`qP10gX}QsoxT>+O>$H8(O7r7;xQ zqlZUDTQHjklK{nPp%Es^yLe;Yd|H+~RI`DzO0;a~!Y&|yzJ-i%#;ixTW;lNK1qt7#e!D1)k+Qnq zQ?$2p4U&OgEeRebr~YI6{XCo`nN@ zZk#ArR!uf*vF4pAC~J>*ihw6WsMToyC1KyJr z)=aL{fS>N2Q!6inVax&#r4Jzpl}BSOXYd^1;psc11D=6&)-%w=VJ>u2ji) z!sn7@6V!CH!LqHqGb$Qx-+SR1vfk+{QCX}*Ig(yo1Y3Dn_P$Kzx)p;cUNKQ1 zPoX>z-@zI@l7R}#EE#=zH}B;?MfRCh|Md1!9cnP{%5zpQdj3MBzIuDtR=S?(7>^=S zp+w?2hq=>_2}accW9vDOfi!@vwiiwQu&19nvD@LUM-qJ~$)aJ+nbR-g);biXo_MX3 z^h|W7K%aOp;C?_w?^v$OBe6i#S)da1aV@qdzztlM2XPiV(t@Vk(EdDnyxk7WgI(;- za&~d}6z_2H7_D?91ZpPZ2(#Z*=hY_cPp|3d75Fm`RJP7%w13K@HdfCqwur(%{Yy_C zXdett?4G3mOJr^XjO1*tH)TlpRC&^EjG zgFxzRZX-gZNr_eZmFF^z0=E~^Dvq*IbVVAJbBaS@)OV#=tlp@Ob>_C(z*y%;IoZ2& z*gooza)f*&BI=U3$y~k(DlVBBOwR09`8m1jjq86hl{L#h6PA75^#eu{0lo;9H9z3% z-+HS1Fr!cGnV7pfss%$9UdX<*t@A;>M!#02=`6FODXrX&VJJ;k9mgBI^-y<4zU+>( zpb!~1hHV+n!)A#EdEx&>AF`L7i9+;-zG?BL?3*Do5W~sZN~PBl%bi+AHz!q1sO{yp z+pTZXNEo!KW?g+T^($-2NsCe>|5gWWVd62#-wy6+;_lQ2*d7$b00M`tgE7$qgzqI-D!6n9_>Cqr|I`7VMi<@a0s8k>0C|g-zBg5-=Wvqd4Pl?1Pc5+a~ws z`w8L6E#t#V`L3t(isJMWMmPzP1}h5+iGFSE*CVf?dT%Tfky5NS3`8gB1CJ6zSsmDG zr;oA`ViSt%=zP5!&9>z!55kn|GL@OX+7^}V^qF`vf-SuRe^9$eSkf33b^5bO1<7rc zZvt56G(F1a_B~Vn$%HiF_}dg(C{3Fp(xj4M5NEfS*icnJN0o=^_uVp>nt)ZxFPbH~ z;J$1`b#7OTTinID9Vs&}rZs9roD)m#j+~S}0~xy%JhENA^d(cPXI^c=-f#qq_Fnmw z=?1}lnGiaT7k@KB6tgi8g_#M2QLz?h_y1-9>97>`8wa763L6CVU!S@|%V6fPtEO+e zN=P(8(}bn+;?_>*ItuiieO#p(R6j_{vNKD%?_-xofHyV3@B`dY^SrfK&6xw7Cs@Rb z`3)kuM|c0zE==FN%d#$Q>BxC=#fb^^u7ftxsE+T^P7*9txD+u3LSs$}K(2x0%73-h zUG;qZI$9Gvv}s+{3kv;=VjW8lo6@eIBs?me4y*5TS0(Iv~mLPR)uu=FBbRzTzB_8 z_X*!nm$hi`d$x^b(RLxVf~nOmgcAvkKQjC~uHxxd5tVtEu1sv<6xNcB)e3m&GYP}H7+PPkCW9MGN_s;P%y4@ z-@sV$@d8gA-kuxNT&qV-fmFgAReg@BH}wkp2;W!n!XNgWj9t=Y;JvtS_@(!d(zqRr zFHg{uy#3M&!fk6Ng)Lbk3AkK-)4@02CYrTf9kaV0(PBoApCd%@lbazzg8VY{MRc%?Av9 zTk>G^aQO1+LZ@$Du*UUiJH1hrF@8HR>+3KigGSA5mF#wG7=|u++dEbO*d3mx8%h~- zrg)#TrCbXfRGYe+D%@W^sl*FBbItscuL;Scwh_T)3=IgY;H1641MMcS&e_^GHEB2e zlP+BkQw@O=@HyYvC3gS)S;-!&$ebACUYiW>-woWP=R|j0{iT3eyONFRNiId?ol&Xf z^z7&(l5`3Ul*oZz4xKy3Yo>U)w-Xp%zYgwD=EMTVO3Vw(7K9~-eVXVUTpoq4BQ>s` z%pb**<`6UMCqi9ox=zHw^gmQvdY#-WlyN*9ULI9YMw`&v5TMrOVLl?wkAr$PGfbmc z4NzT2y0Xv4UuQfk{BRIt2@6x+c<nS$7Cgj6X2IAgJoOqF!BpOA z_FKo&TLxtQH>hWFy|_C<*%A3~$JP6Aq!TplP8(>EjQ;0hKdiJx$s;fWPG!M2ZiLNL zxy6O-j!9ke=ZpdH8h%^or$2~jpwkx)A;{#PMgT9iAh?s{j}o2{YfYn-k9Og<)i4bt^3u$e-@E?fMAL7--!1TG3LT(-Uuy8_7p#gOxu7MY{?^GF@qp zj9t^JN}`MpRmLlhwH86WG}opKhmVCzI|l~m%!{b6I*F6N?#cWrh`$1i05oa=)fz|x zFXdHpwK!)uw!ZMH+SUoHdoF*d1U^*k<3@FOv5ok9BL5?7U-D(Vv!qBih{MJ82tbEYH=k{r|0 Date: Sun, 12 Nov 2023 19:59:01 +0100 Subject: [PATCH 130/130] added flux suspended resources retrieval plugin (#1584) * added flux suspended resources retrieval plugin using this plugin, you can press Shift-S in "kustomizations" and "helmreleases" k9s sections to get a list of all suspended resources... a temporary patch till k9s will allow custom columns based on .spec in its views... * Create rm-ns.yml to test: create an "undeletable" namespace, with wrong finalizers: ``` apiVersion: v1 kind: Namespace metadata: name: test spec: finalizers: - foregroundDeletion ``` apply to cluster: `kubectl create -f test.yaml` go in NS view in k9s, then select the test NS and press CTRL-D to delete it... it will stay in terminating state, because of the finalizers... now press "n", and confirm, to remove the finalizers... the NS should now be gone... do NOT run on the "all+" ns, it will crash k9s... --- plugins/get_suspended.yml | 23 +++++++++++++++++++++++ plugins/rm-ns.yml | 13 +++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 plugins/get_suspended.yml create mode 100644 plugins/rm-ns.yml diff --git a/plugins/get_suspended.yml b/plugins/get_suspended.yml new file mode 100644 index 0000000000..a5270a27b9 --- /dev/null +++ b/plugins/get_suspended.yml @@ -0,0 +1,23 @@ +# credits: https://github.com/fluxcd/flux2/discussions/2494 + get-suspended-helmreleases: + shortCut: Shift-S + confirm: false + description: Suspended Helm Releases + scopes: + - helmrelease + command: sh + background: false + args: + - -c + - "kubectl get --all-namespaces helmreleases.helm.toolkit.fluxcd.io -o json | jq -r '.items[] | select(.spec.suspend==true) | [.metadata.namespace,.metadata.name,.spec.suspend] | @tsv' | less" + get-suspended-kustomizations: + shortCut: Shift-S + confirm: false + description: Suspended Kustomizations + scopes: + - kustomizations + command: sh + background: false + args: + - -c + - "kubectl get --all-namespaces kustomizations.kustomize.toolkit.fluxcd.io -o json | jq -r '.items[] | select(.spec.suspend==true) | [.metadata.name,.spec.suspend] | @tsv' | less" diff --git a/plugins/rm-ns.yml b/plugins/rm-ns.yml new file mode 100644 index 0000000000..14a2a251d8 --- /dev/null +++ b/plugins/rm-ns.yml @@ -0,0 +1,13 @@ +plugin: + # remove finalizers from a stuck namespace + rm-ns: + shortCut: n + confirm: true + description: Remove NS Finalizers + scopes: + - namespace + command: sh + background: false + args: + - -c + - "kubectl get namespace $NAME -o json | jq '.spec.finalizers=[]' | kubectl replace --raw /api/v1/namespaces/$NAME/finalize -f - > /dev/null"
  • h(lNw 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ⅅdun&Tz4J$d+NGw%-|qJtc9q&;I2P=8@Gab-+=Vye5m5Q z4^ndH@y=1zHCop&sgR8^lj9GwdB+{N+m7Jx{y6U38FX_3lQB|N?Q(r!%PWHX+yE}J z&w12K5p%r*vur3a42-1^LA=K3Gan@FOh?v9(@P$Ew?(PqdV~aglk2=h);^}fYYWmV zV1lp-oHd5~MEIn4oI*H_a1zg&!X%!W%Ygj|izq{s5kc-g64<4}fq2u~Bg$T2zZyyu zHOeA}Mc*37rJj5n3tpiQ-ABM4zP|AYL^C~$#Ue)Vg{3S<48&3t2D5)J$FF@Ve==F; zM?Z8Mt7~ih)9BGZ|L-Tr+t+vuqgOAbV-2{~G1701kqo;2pke;gLUkLnb zg514l(Jwp_LG@Nb)arIBy5v3Quik0k{8HW5PH!sjy{F>X8PBm(j+Z`vz!m!ohNVZE z8lTPtlR}nJ-S~6s98jLSozpPbEm)^BRm_$tGCe<@lQ*7N?5>=B9=I0CKEre#c^BM< zIJ&Jp`U#x3`#=XwX1(MJUj0nqJd1Vjy1J+Jq+Wkx!tb`OpP6_fUq-W~$vIyFSa#k~ zM+RK2ZH|XWF$WG(Jmd56t82J(D{MN4msJd&LOoK0c#j&w0F&kAt#Rjiqqu(b zW9Nf&A{c)y@CVxooZoO*i(9~_UhG3}xc}uC`@@R-GdtLW8=nERLZv{SAoru7VXVQF z#b__}<{5zh2O~ds+b>^z1c1Y8ZUB=Qw{14kgYWskp8`*1`zWq@sr%=4F25D{jcp3f zKMlN+;LyJ#&gEluU$X+c3gK1HFS!0i1D<(J!DUN|_by7KJ#`%pmyuu;mssuwTqe++ zG3+^j?SkL-chh~=v*hjV-?u)JW-;Q^Qg1(XXr`UsO)5dOu(q>}N#3u`u0^9fW19ER za=o8rMz=MlZuW8M%GvYJC#HHz&2S!|KUI;K>f_(a(tDRo<_v?fM7?9Ou|ZW$&~c4F zb%u@mKFRolAH?7BF{-ntaI5Di*EcDu8m+2u&3KQ~wsSlgwfW{q2Nt}9$fCml!$=JS z5lT#hl#sw82S%MNS}jDK)p+X2&^rlo`H=4HKN9z%EfPM>wd4U8J{9ze-Hof*=2s~p1V1|yxc#L9^I&b z>wu5(7^k_&W3 ldf0BowNNp??*p&EI3a$sMi6%vpv9h$}n&9!4G}kLtmk)ZxS>3 zDpL$`<8umHgA`BLLZPCF)*z)F?!{N@sIT6w>fZdJw?6H?aTX>w{9EiThjH61OFdmj zhY04P2e%POPr&X7@Fj6Od#U@@k@U4!650Z;pf!zsyhpm0juK?;w{L%N{`lS3u3Qve zbhYJW&nB+lsK#Tos&K1oOpYIC^OK*X`tXOTK7JRI z(pQG$pr7}-~b;Z_cS@FN5elK+3>(}6OGeCMA?EAjKoqXO+L6+kCztM6JzWo zvhlURM1AaY56fN9(C@9$bv=|EBrZ>z&p86w?*vvbd`5-afZOmq3^)lw`2~VxeV@Q( z2nz}}y4Ks+W4;IBphy7a>e-877c^4%0Wegeyge}aMV<*Ciw>6dyQR%{$Y7*E#h@l; zy_9h_T2&iOU~=V<~PvVH-s``)8phv7%WjK0hmi<_)?=O!^lV#i6@Kf4j^ zkV`<__*@NY?O@N>s;|EGB{w~A3)r9ikjS6h63^M8@4B_jC;yN0NTyv!2+E8~+xTVN&bD@IfBf%jCpVP$f2!tFCq17$ z>iFUp4tVypB}y#-41A5-+`w;chD`Ok4!~Js#qkF! z-bhi2{|0#b<2u1rl|!$ep1{834adGo#QlgJEM2GS@zt6O&s;5@g!dZ(4M2Tzt_GwS zEZu-|!*y?X;DaK(`N&(Yxw*|s-Znrzf%IE|Z;wTw+<5o#9O(i5Q7Yc&i2et&W!d=LdF zCTLyLao+Je)9ki`;M~E}_`+n0gOT+|7XMvnD9^7<=LL`B_(9!sOWiCL59F#Y?w-jtlud(E-YXTnWZj^>na)J*C8HpAasydnpU7@C0 z#4Iy%-oFUlRe$g!w*3Hy-GG`GBwpR>(kmxr+gYV7=s){ZR&{5VW>MRMZu6ln%r78c zw$H&1NB*3k_B5HAqnl|p<>j?2C~fGTgkWLsocI#>v_02z;$!5g=X%wUyGbIL+5MVR>`1>K8-TQa5!ugiGP&CdPGr} zHV>y}LNtET<+RfmvuBGJ{XCorIwdSDZ`2)PM0c+v;d2(4D@* zXTq9{3TotmSk}19Xxkj7xZyH{m7M+u_|k{13KK2K86Z|KPiW{(yTzPZzoM6Myve7F zHtdM7weW*BqpVeS*2$2$x1IlL{2Mn-Nj5@ru{cqYR~RDMJ!Ho6>CaO}4jd-b6>U9^ zi?1w{!A@fz6Sb7Zg;)OQ;qQAZ4k@_gBAGr1$PSj`O+iB(DkT_1h`x;D93c;32z$xk z4a#P;Lj#<+HAe`i(3NvAwN3c)vM%UsuiU8wwkd_R*F=;1IZZjaF}fnYHGxdR?LfHR z+F_!p{V&_BWc#`As5^?i0nHKi_5Y#UVKQdZpYYe=pZQ(9@r~#0r@lRQSFY1t+@39Z zjR)clhvHZbv=edloK`&Zz(g4on50e^vf-64p@bx&A;zF2jH9t(0!$8cGMYZqFDu?+ z5S#?pGhP^2WES!b?fR0+i`<*LIbGTxE57-@m(}`bhgO>+>bx!)bNs?ARDA`zSOYg?W1TX;R&!po;Zy30BJa^-#pm?NPR{&D#(op*mj zN{t;dE-ZfhGf_vSP|_R;j?a+hdP>Q>lw%<0&cy_ID z7yQc~rdO@%2Q}zTOq6UEv9CS(OX3{fN`LVwoADEfy;nxwS3(@}k9KRAeq%1IafHmA zB(SpmKeWF-O{(qIWyB2RB%R-+0ck0%|}$C{|&FG!UrdhYN8vBH`7?6Dw&UkU?m zol-@;`cLcpA$%KEaF(9mLQ3??*mg9j%g{YMexirwk`VEOj)339paj{>dgbc6CF|&@ z0bd3QMg{GE?|zKLfy!-jBbJud&hI0EWN=>e&N-wky88ib?oYKVg?*@#So%bOs1Y?|30Gpz%~c(qv#84|qA^B29ko+BGz^Vt znhcS^lfrgn%A64Vg-Avh{YmwEWj5wc=nZ|*x8_pPV3QlS6JeOE!(7O~bPTJAT5HcA z8Gj`Dh!G~whbD_k%>#)G2dsE;ROf_m$67r|t-lu4ng1-TvfE;OwGP8K$iBJF7Tmb2 z$|>;%i>q80pC;XNkGNU7l5(?PJ}+#vO!Ze29AGu*#qH;r{W|#1t06o zIQH^;Zn2Nb=N|8kFoUbzvHokmifiSHg5lrAyKSQG=aC?@Gdz=Y49u6dygNOg#$olF zK7w{{zmLn16$`m#oHnA*`W}l{M36}+lUUE_OO9hPl1@jkcUF?eNcTybWJgnKQ|6oG zNe$Th+B!V;|ByB;>+>!q!opc6EHBPpvCpHM7UsYysg)3o8Wb+-kH8g)X;8T4v>#t()g<+FfDdi~63qx44#y~>UvXu@UHIV+tXyGT_zwj6v8Fj%kSr9$+ zyU(|zKLRcM>BY=3yn<`MI(Aoi0yUtgXVSR(AJk7}j2y{pp`J{Wkv4NctSf5VeCS(x z&}VX*lv8o+W~U16!&^S|=e32#&#ic%vGO7s|SncnfSRciyqFG!5);;!jCgDtcdZ6B_Q z3^D`$X}i|F5WBb4F#hJ+;a}^+^X*~;+G+2Fv%eZ#O*C9^Z2qVQ)lKF*OptHiIjYuw zS1CdR^t)=FLGw+C@#oug=j+W`h51nbvRi+WV9aC8m}f6LJy_-spO*5x90fR9-h0r& z23JQ>K>q2dyQl~mSG|AHm?$L>@gNDjO=Hw>)g?3v=H#I~F2Z4viIz zL)9HeToH!x*;Y|J%UYy#tY14Qa(IwWEOjy|69`w?UOGVGy8vYj89-6B)zw@lO$x|7c1bA%p2H^~UJ#pUo!yv1zJ7gy0(~8Zg zj}LYW3z=T9dSi=)rJF4TM2a2OL9o1+1Ba zaNW#NEeOsBnc$~kY2Wxl*(&O9=}}+X83f9LzKuG-6k`T47vgrR7FLG25S{;%1{;Ay z$$JFcm!qRT6om{WN6*Fb+Ly>tO33`8g0iPp!SGwMF2D<&C?;=@ZQPT)_HL=*D`uek zH_WV|WS&U*Z{n*_vQn7UVlL~eq2x6M z6+NuB0dG41TJ+p^0yq4LlHUi2mB^w)_u<(R2(wnBxLoS=zpEghn z_S!`&=fnqlhb72+|95_YdKNTevbE)CjXL4-kol#DB|I81jR z@OyJ#z;;%qjKI58eqRp_W(o5JNk;Vp{D7&2DrO$#w0Dqx$>RuM`A@?hadRB`1`GEV z^@cDRnvVwSk}qsX-t;C%n#RQtvXuDv@L`l-M3|v=))uY z0pJp;`o?A54oxK0=ya`>w+H@7Xovs&T*$|4HXW=$>IPBy#+97Cg`UR|`jNY41ww2s zw2A-`a*R9Az#)NXsi{~PaNB;nmzo1K&UZZwfL2>dGjgw1ls3-(HAU3xr>5HpS77z$ z+ZIg0bX$3l3zm-K@{w??X}&$E8QcCdbEW6IIhj9-eWe|Vyvg?#tZ_Ri2g^S}wH4+C zqD{^5_6vUkVtlt-(PCCk##Uc!>|eBiDlv##n{oAaIi4;V*_M2Q^45-dwx)?&8$ttt zlRwePi@p}OdDM~_KO^M8-UJ7GP;m>IB<<+CASOT<#mZhAFH>9|5$cw6%XB8YbZXlM zx+l(bH#~mfYIAPUPsAwm1{cr*7k-%s!loQg54cr`0tx5A?TYPA#J+j7O* zQ^YpiRZZ=QoyeUA0_uUDKR>l^~!W-RIx~xcj6l&Yc$5yI0G8 z_%)?}D?xsto%QI%mi}c4P4q=DS1%)DdP%*dwe%_$!HjiSGowf{5x=!)ppIdbYXB*( zsUafox9bXKL4@YkK2@b5V@jebFU{^hua%};T?QA8t$o@Y^2!8LDs{5v)N=q9w8QCq zfrhGyQgTKijXrnXsd!io5(o;!H2FP4CgS>23USGfFhsp1=Dh2hyLTeO2lr|{BCVWp zDw>4VmxYK2e{-5tDhcF()>b~%9Oi*HelpxX9a^p^O;a?}t$}kXL7V$O`Q+ifdHIK( zk8e=NQ&cDMke^8$BQ3-!-s?a1&EirldPtvg8=Gaz#~rqpWKGaXI9kYjr+7mGY8j85 zRPUc$HixVo;e3p0pygx@I;5y=GJl8FEPTK4CP?ZHBd*a3%J929q&hlm+4}i35b`$I z*J5~|4S(e~i%|Bt=b*VM@9jZ_>-q`zgx>o(FpcL$+x_y+Ov3EdWj?%w4_WsOG7G_`2e?aX zjrjOx8*_!1)~i>o@kjHjc3TJNzh)|k6Ah2JI-zdJ=Wisr%(WKEnuP<9%#Z$9apbkN zJ>^Ub{GG19wL3jErqylgc+??hy~w4nTq4jZghRZrS;s;sOmD@~iB__$BB{0{<951g zu*6&%lqOUKkaTf8&IVrr%x;)gQW^LIMK1*hXcllTv9=%>o`8iKG_79-C`Mse5sNGB zfa36hJY2~YE zc^L9_BF~s1W_eCm$vkT-H!zPz(ierwmt5XrQw}n9@KWQUDk5j7Yr5AFJ-TsYp6kL;%!DgeY>Pk{nYj1Pu7H@Osy3?7U1W3L>u(oX<`hFX01D;)kVhueEQB zq3{-?xz6i$Uq!uet>@*1H!DS<{9vz@JqZ4k=3E&=ilPbihD{Zf_HRxEvs(gJL2ehH zLUcOHtgo{*cBO{@3uD}wjudDp)iAVdXSm*%q_Mb~YVik;a#B=h502BVZ_s!3(+7h* zOkNbko-*G8T*v_j@0Pz}T5hbA?;{wH|LWr){#~i$&J5HX;*V&;Ge^vs{&q!EPHw07>m((4HH+Z9!*W91XUX41!%CXGYTBv@V1VvWm<7e+*GG$9HgNpTJx`Wd(`h|PF?@>uJ zS}@oN*0IQPcKwHWDPGyayE}ZL@Pf$CAWVG`bXjkVH~B4Rzxum(Cw1Xl(&x!7JHN#d zRITw*221?8g&J+IgTW=cS894g3u(3teR_!d-Ei;H?Lvo z!NbrOoK0s2M#w;ZZ!1APZzDe*%JgC4_H~_9_D>ZrOgqU;TN@S>E!@oU%4Do(nYOY4q%2UM_zrRfEbl z{!On2bLrb!(c|<%vcrY0P2dX2<`x3m)O{*gk%zzToizmvC~En6tN35+y~sS(7rh28 zlfdJmQCJ5nI*I56rkH@5h;{A)B{9VOe<3GJDUaMi?Nk!P+FstR-4FB%=eR#me_d=o zTT9ko4kr@{*ia{B;co+DQ`Sbg$-4O29=z-fRABzU)rLo^TH0|M=i1TTy_Dl7nd^9d za7PLLy2WR^x@u?Gda;SqT-313pSix{yVj;}d=s7>EBJk8x#qKc%PF6GKN)=Z*3Z(U zO)QdVRyVxhaI!P@$f9Q8P3X9SEYsFWvbu|6&1%a+<-Y)ypIplc50HLckbVp@J@CAw z4KhpQsAsEZ*p<2S?M${9)WZh$V0I!Hr4%v^tW0slJBK03Go;=e5T&dGgOy-z+TdzI zBtwzk2L9DK(K!lI>x`B(d+uF*{c@Nppg~GyLi-PFB8C7LPmu)X-I+C}RUepQD(gf_ zvw`QF;nwUIhx}SzYp35Y4Mk?HTGq{H?(U^cMw6-j=4C}(C`rqeef)OaY1)t`c2H1s zM!lxEzVgBX@zx4m0|~EQ1mK;|NM!;jCagq~Js-NIXx5GIl~Yc`MW#876G9S@4)8=? zb!06RslDq}HBTC4m|d6+dL=6HXta6nG(W#F()D~jyL|6qKKRhT;(L3i7>B&64QN_x z^t$>$aDGG+HNbY>l)+%^P|5v1$Jr$kGMlSlg~j(N%Mz7y7$OS+ylD4$SZaDz@(Fmn zk`H)~e|;OS^qlOaN^9`Zy(VtkrRdad1;Q}fzRE~AzKFJN9 z2l~|{?izFd4b0!s(nkg%qd7&vn{ne8Y-}_o2$Hx}OpOe$nyp%4@|bBDM+gpAVOZbx z7R)uqRK8#$aUNt4mC3*3wu@D%=))qxF$Yt6-sJI`jnYsjlk};yaS)ls%rGJefTjFt zVXnKlf?NZ6!tw^Lhldu?(GDKIR)Bb8=*zX(C$4qcvmS`gv;w#e+4WN}BmukyStA&- z(B~af{f8&|FGH3)emuZG9`X1p^E6(SXnxWx?i^smrb*zxL~7J&@pbPVqo+Djnv1mB z2?HXzm95yLv?!s?7Sg*<^S>e>_r`DejO>!bK7EyGy^kAE##Pzs+k?Sa*&y$hT|)0@ zd?dhFc`NND+C^~ANHza@xp+NR{X&mTVzb;d(pFQQG9G~@h{o=#RCCmMy_!~PXqlNG zOL9!NeWjYkUCwHg7$X${!m6|sY zB%C{uR^^jC63!i`tVpmPEhqdp-`9q;tv^zWoY|D26vroJfDyrE11^k9ziT+)L#AK$ zKfNYa>q*+P>$N;T>0#gWNW%%mJDih-L7@imP0yz@MC-JV5h}m7 z=)ab=6aG36ao2+o$wVmIX+o;FP=!&Y8OS0j?(3h9LQTFu6<6@;kD{DFYEX)>7s26v zv+tA0`?x$)>mimL1_6hm+ zNRKqlUvOjyKe+jjg)MK(EAm6ox2D!-1Rf^5x-~`3TLZ(svOXMW@Nf|=!5(iBZR?|s2H zF{0I3q6Y=|?)hF{>?cR-dLG4Ue`b>&+@O4z<#o>UY-HN`7G4p0kpO$dDnTHf-|R?B zBPns-ul<-Y2;SjN-puNiI>H4#Gw@qVMo_~!K4+<6NZ7?#)rl|? zg|NX~;CIsr1{IK%8%+Ji*7axJ`B|SU%+t4=<_|f!Y;=t2_xp#WEcMs!^|Ax9tcihU zE10xzx{tw4S4(6-3HU;4ETK7Wh{`x5U55?46(41jsp>cqOo`}@_(<)HMqb;xEqFVL z$R&qU&S5jfIBr41N3-D~2h4K(!1>(e#ik1^wrn8r zwQ?|^_`d>Xzuc(cR{`YB(J+AQ%IX(1r!n(OPrm!3k@15v8qA473UfCm4_w|MH=snm zSqV!_#|U&6A(uEY1T*s=UE^VxjWmZ|%~Y9R#pg2)8aL`w1T>uMQ$gk01T`aSxo>D2 zNE_`divQz;Slt2RZh!Ts3V4HWJ<{yfBNr9TD_gRlw~=<7;Lhg#7P4Ux=%zRCJYL8A ziJK-$+inv_4b0}VJ;#sz|7?}c`bus4RwjyHE~HcAhfcX}OrogaSQyoZVu_X|utH2Hqh(ncfg0rqQTdXp<7?!k za20&GR+v=`Omcr=4ONluxijX7c1HHZF1GUSu=}@RDae?V^PB<2c+7N@`F0trGC0)X z{aJhy`KAhxbds^Ojr@NZIOqnvl&u|p-wTh+D0Ackt5PjHek-yFV>*3s_NjSkPvu@o z2W@E_zI*Jv!z_m&yT{eW@_5Lrp5q6{-@-8eZs|HQ@wlGGPi@)!c_4T(*$n_+d3HJH zynX}}lB)anzfmK$0Cj;9^?wlH#{$0Q+@;P%wQm>Jqyx6UA7R6Wr! zPR1G(lXghbvVyAZa8lSN0I0c}xri@87OT1eYWen^2 zeyRz6O>Y=s^XV&C#|ByW`e++GE2rJxJu9En8pRq>3SVDT2} zl*4Lz1>{5>YeV4xuBg6L6)P0&p#^S!KRWX5VU=8OyJvOS2{Z=C2v~UV7!6`6Bt3%& zBHEc^&{jfN8Z(3jtoXg6dGR`}%MBa;vT@(sen2>rcNk>&wV*Q6Bz&m%YD3f(IJkr9 zpvFAAA;3aBv`juYGyjJzqp7%Cp4chYdwE|&bhkqKEW~8$UHs-ZC3XNagB>-BgFdi< zo})jXH1cJXeT<%q*tCtU#<+%jBOcYkYH|upn(?PN1@p~h7eQ3K&2K|L%@yhnvdkKr zadq)Ns9);4e>R_Zvi~jHFL?f>*b%r zi+*}zO5TWYo*Y&%u)h#N6^%Zk-p--z#3dg-qFIaGq{EJZ>v6ZD{hTFrIZp8ElYH${~2EX@4p;7B3U_pMM9z`;5CFS zDD*B@s19@gK*vCWn4c*iSOu9*6Z`mWL+J)P{$giXfdhz2*T(PKRjwH@ZvW!Jb*xX< zrO$DzuK!Ys13&kP-K#_)IMGnf<5IlprtUOAkZH@vE1(%nsO$B35R7c_$XlgAM zXeTpETGYjev$rAX)3gvJWI#hxxU>^&Ho!EFyJ58I&vVIrgTeHz$$8dD_w0R<^O+=h zwnv^B0c}MDJ2|`sYL}XJ)cYIk2av*}K^hY?lh1|R@vQMN=d*)p&p>kJ)~GU z1x9Y25FE@zF`JSeLTMNkoYdIYL$vquUQ)ht5e>&sof(i6}E!?12k=RF4|8c7}#MPC~8LalWrLKva ziah6NhC;_Y+RkOs*l6MEY5_t%czskgaK}Arn3&DfwfGx~!=I(QU{#jkvtN{8J~n8A zX#Cx?w^Gg9795x{jrWjIPD zC2=U^dvW}%p^+ng^G~5?t)0i!Ls#I`%9ONsIqYsnkbW?rFjoc~-|4|*(vy1cOR{d6 zqoB(S8BFc;cAonK#u4B?BuA7t@p}cy9o%>U(%7_t%u0_%n{EDK)_dB-gHBD?SLznU zUBc4?7z)5IUjI!jbW(RAmxjG-&XECn68dGKP_=qEfv}k|7;_2wJSX4X|8j4%v*8*4 z(;%X}D9iFg`=$q{+Tpa=NitfE0v?tYkwwMie zklg->Zm1>p*JgU_n$jr``e82tX4dt!Jcn0~?IWiw)|XQ3T;g1=NJZxupIKZCQjm7O zP)%Y>dt6gZag=AFrC_JherGGvjddh`RY?#?Q zpc?^+Alk+LO0Z#->sG(M_;*Svwrdy1ie-4CJ6tRnqSn`$aQWeM&i{bcMr9tfasyh8 zS^*P^Bun7JX@}8O=L@%qIo$li2T;cwM)HQFmX?;-Je>0&15rC8LBIG#$sv4*$OT~i z%!T^oS!Mq_G=uAgU-gOGJ7aag-hR!NFzY-u zy#At05Sjjg<)1HGUn|L=r;2D=*`s-qfZ^mES-ZC3 z&^14xsHI+-d?@dF1vP%mKBLeRt$LgzKW76}#w7H6u>3X* z39roMPlT94#*pk=kT=n~lg+E7G%)YWZtmn|ocMl;lYjp6uez6Re830$QW9LV2ay5$ zHlClMX0qv@$U;P40>2Njt&L6bta)|9vIluWF$W4(EiEt0>df=a_+<$<>@XF3n)pIYaIg0Q76BrKki!wN6dd`Yr6W&Y4GFu{uLHYSKdvN zF8hs00b; zXMY&$S+$Mx&!RQF72U3p<LmAilP zY7-7h^vahEn}dHrkkssCFrv^N=tLq+L%nhPmI-Th>ha*rAc>h19EXJjg_JhD6JU;` zXWmDj%T!9nY)VJU`8(01{%@2j?F7=TQo6kd9v4?cZsw4=bLs#hN<2nI)pbMNg+Cn#mcDt}5+2+IocUYoFfJP=-r%+Xt`A!PE(44Exvy*$ zl~Jr;qB(SCLe~u8s<`{#e&eun+X| zU-X-9qW^@5LGPWFsc#WL4;O63j)NGlWVNJSFGC@$=v%OfYlv*JDg}S;A^Gh>T z2-_&YJRK~BI=rrr`utcvdz*gc;d9%l=b(0TDHMq2Hl_7y7C@h1&U2*1AtpWGLXVlSzIZH|xD5)#K{`L#p#CwS@Tf5?b9OXw z1__iX`ZKEtBhF-lj;O#x-uA@v5I0{ZnyaIr=3#)%*co=06I$z;S_lL!Me7D6892Gf zTDD*Q-Wln)exFf^xBXF{4XF~Z%wvIt(fFg4b7(~OC#D8Ui55X{W~S~+3pse(p#0l# z(5`c@$svvan3R*Uf`+bU(8RHIC0bioY?0q$EXyfAzXuPA7NV$V!75SZh!L8#!I`3Np8&9gT+0>VGItov%5??)v_=)p_3vL(yO4yydnVtakIUEfpr zx8E#5LZI86)I4B3+QU;}_Auy;bnY61uQV=7n#^R%Qr1p=#I;jTu$QHfw>Ga0n#h4svj(rS!_w}5=4xzMBtkIqJ;fn=E~h!fW7zzpcGwD~gbFTiILKg$-ZhC)E6}BNu2rw2! zGUaOD6742vUsd&mB+b5{3TgsjqR5LxUPPzNeUEfrJ3}&4a{vWO8WYv%gtULs8)HG; zptH~3Y}lVqJ1P2k=qW^cakITbeHIY+!d_f#LVMHIP9Q`@XetM?7)9QB2KqDu2GGdb-n7VzJP* ztW-+^-k+BLz>kZS_GY8LQY9ZBa^l;S?||q$ZD&xU;JGfxZv`)xWrfEdUBq_$TQD^; zCT@CytuQotJ&w$uAR3((+~O|oS49|?;`dd#Lw`YOzdO%{la*N|b3`cW^~16xjYAVF^F1(~4P60DlA+LrKl#Hqpq+QnEK~y}-=!+LZ@gd=VHKl2H z&Jgt{!jsMNvUMnQYgIOeIA1UpkEp$C=rZ~urD#{WDMPfO%|^dSs=A#_vzxYaX;5hl zKrR-?Oywv=y`XD?2-tf~Zl00JJ&CfvDpjCQhvD1n&_8x}cE=dMsE zBh)KT)-WT`%FIOIdPU#g3Z-xn=(Gp*FxaN0+4gwmcnii)=jB)4L<<7Y6s4(@za(;- zYTdGK|4Ro7R~Lw)fb^%Cr{NQxZixjuA47#-24?7w9uVYvS6?$Gs%dSbkIgv4^2YaQ3BBfRLh zf~5oGFo73Zh*NTW%~$eCjb43d9lDF7qS}`fk6W8ve7Ctri+liQP4l60PKk*qJLE+Ubj|~*4EUH%V581-TBL9M5PUZD9C6ZL$ zJnK=Ncib2yFMmc%MN6<~Q_LN_POXmJfLAcnRvQBfgK8fs(|yYHd@a)w^9Uo5UmQIB z7}O2(vqiq{99z;cMB+86-p$;%9U>Evl#H%@INQq@MtUo1 zNFl>CyuLupkOjXkIQ`?Z3ZQhBwscE#uk`Z456|Ea6cAAfm{{3h`aj&0WMv*w#|ur$ zT(&)$K>^b^`k$G05P+E_Yhe&G*%a^MJLZ^w)`x*T;6z9O53KAxLp;5>reTVz?S2gE zdfXzPn=pR(yB>4WDeiv~8uFU_c}&aM;PieA`@jx&mQuiqoit%uVo=Y!-)xQhwzcgz z*ptpBk}=so<_pwV8}OtI&=RzQZCE-;x?>|1BOuKGyq=H0mA38Ky%?I2A=;km}%klq+EIwJq+RJ3A`O`+** zeHc4Mq3l9hQS4A!u;2p0_7>}4C&b5>Mf2OD$KZ~6b-zw@J>im0%+y%4u0m-jS9nE* z3J^nk*I9#LNyGUtC?qPZGn(aMzq{c;5`6`0 zn1tfRe$5*5t#&P^K9*-#lpg5~J>>H_87l&s&&S*=jfkDS{#n6*1dzm+6KqA zkv}>Z#e%@xb*)Pp@X++iP?<1F==w4UKp@e-@f$<7e(Gv5mfL8{c>LGw4{)%SrPg`9!_SJ; z)JO6#WQHDo$H~xJpkT6|`}DK7g{!K%z*%r(=KX^?w;*p0u=W0d+I@zv?EDBVc^TMh zro!Y}&&uT>ST9Rex-Emy#0Ff5{*Ulphix@no?dM~!d+rIoH37E)C5%XPB(Da*_qZ@ z1zT{*lLYh2IjDApIqR#}3$H-`E&D$$z`K$A*G0BrdpYTBdqH!SR-4J}(q{MSXbu|~ zlPtas8#%sM^RK~&n|E2?_1nIudYM{?wlooJ(b0*%+eu&Cjh7KnjM=j04jeW8mWo@5 zOpwN@BIwkvsQ8vUkRI2tEIFvc!kWl>37NgiB-7TdWy8hM~$@nRRa4TShwsZGl z1l;JY#w|qkY{7eYsf5FC0sPiQy5AmFInGKX0^lURmrrpuQk#}2ld?TWcf599ZHeUb zX}Fjzs<(kRF}xJAzA4m9iVEr6?wI3R;u>{;FVX(ItI<#ObnT4|Fbqmam$x>4VzaIx z1@6wrVR_!FYdd~fzbOq1ZZ(e28LT8N(@etfgsPwA`6H(pf7HASJ+Ap-^C^%0d|8d} zI>Who9f6E)JYu|ebS#cVW?XZ>*r>6iUlv|1I?N9|BxBpoR^=~YfD)^&h}y0DleM?Y zqeifeGE5)r00pejYrLKp>xr1Xavz+IMo1dm!9q|%I=1qo+xkYw&p9#gH(&ai<E)VKX1puEct+6bMj+MI{Zs=K$3ah5T}am43Z5@yzGq!w4n zZJ7MNdJGkK-C&WjQn_E*DAF8rcE@dLmUchDsDSQdk~9%U>Z`8!qEQ&pp!Bp1X&5#! z=-kA*QjF`GTFk8CRgFF(U#H9U^NkujPTHT^IXO`O3*TGuBBtAF3m3l~PYqHMM2CO(P!?#$Zh5Zv^(Z(*=&D+kN?oWjet z6vr*@KLsCR!JK4n5&c6n|7in*-VcZ;?&DSQOkSp-OM-psX{=N>ISGOgUlU zlsu+0s8X7`V`wP5ZZ?jTpvyFznkl53x-{>5oYP~dHq2XTc(Dww_yFKorGeW2qvH8 zaWmieKBN4gi8_`&6Y-hUBo@;WFNr^Wuh5y79>^^h*?m|r%3aNxbG^cjecA=py?<2F z^2rDb0&Ug7eXWzPI-Z4`WhvV);zYDUed;hz^a_$B(tgH$4)b9GGv@SEqmjW7sJi1y zDztoW!Fu?{>?&wm*z?*-)++*d*v@^MO!tSR+vbi0RXRUF7w&CD2A?H)wiDhZ=>0(* zjAKy?l)Z}TKePm46LH^eF8zu83h96hf%8*epZL&AUV5)jmd z`;UEhDwm&zB=0Q3@@2R%S@J~+dZ6GNmBWt%lkDZQTDvbERSGUA-QR(p6nTNZqX5Zv zX_o?{Af1_B#G&*}ks(mvGlNm%H+W@AmU1iKU#rw6x9@Kte((*DspI*L2Jp|&6{@8{ zjf#P_4t7EP^rQc#sU*ZSLZ@!Io}nTbP^5Ut+gQvm_QzsGb5N%Fdw zqCjJRlOA;8%C~g=jz=~FZ2TQ`Oz`?lW#RLenISKvKkG-@ohPc&S;?R}hAe8$KXf!T zV5d=AkmPeyY;EL}C@(A-$ha{Qh~j?iX3+NqGI++YPKCfP zo4~wdgRtv*mjTzqjNLAX*g()@jA!qAK8G97b0B-YgPSOKJ@LV~b?oYH*>rF+VvN-1 znX2|`gzNOG+o24k<04|7WIXApU=(bg!Np z-;km#FaM(H(Rl@8b5dZBBTUQKrR?5td!sOt4ZRF$`aaL!`^rZ2aJ6oG@&h0$X^C4e zK>uX=nyk-SCgwkQ*;!|Rf&G|)T4qVPReDiIb#$517w}V!yizaYL)yQ!*1P|~+iQSv z*NLV0+f~>}_r(#3;AUbIw=MTyTCE&}U3QbdyGEh4l`2pTfV=m@d@t&-fa4hB>-f;t z*s7lsjP7SX$fa(G>fNqI?)Qkv-09!_&A&sxMD4}FJC?RCt685i)f&!HM{%4b)#A_* zw-gfZ`A;XpORr#u;f7W5qyL(Fp4CoVbv3^7QBOs#x%lD=p8)YHcN}%q<0UX>j_5@Z zzs1n#MpgIIFdqeQ;sd9bjV5nF9jM}gp(*!4NKXMd_ddJ08W=LQcp_i%>Z6_=V@ZILTgwfr26Mr`uHY)7ht9UVDVEDUQd(mI?q3>Cc ztlH7X#9y{7Pg!NMIhy8(P$mhL3lNyjc5f{NYDG0w`Z@0fe!qluc?jQqSu%Cr{y=yj zQ)Q0#%{=Bto1a_z{U!DKG?Q=s)vhRY+F40AJtBfF%dl~brDCi-C(p!>y zuhe!A`V}|{SYzeFhqK)4zIrM9(8ATIkYR^;C&`;OOeMPiFkouWvEBMPERF< z4#~i!l~%3wE?p|(rSW;B#M*2yEUXo-GO71eJSC^+cdD?Em zzf~?jBgBnUSeAvV^6~s{DOC>HQ9umy^>$(Qv$ki$8eb_TKE1D4Vi=DkzK?(bW5!;& zw>?|7H9hyjF8LD2)>a>?l<5o`W2HHN&ALRPEN+w4!Xw}_6(XSA!6*hx4Pur?B%4`k zS%vQ4#gY+nHa6%u#bqr5$LDT**M)5%EqTvl27vs48N<>ZKHK6|VE(SI`=qnOnXP1B z*-IefuO>Qn+MB;Ts&qN#7zb*xZaX6f?*DXjd3_(P*{ipPH{jJ0*(r-D80P&^XX#i~ z>`87Cb%-=^lgo`wConAPQ>U_69=F&qef~(H*^ZboNIU*)L1kiH<@!wM%~BmIpR5vO0F-@`Q(aIjVKasKY>2AA?MO!lbGLUW>K)Sk&Oa#ng2-*nM>wiRMLhs6Sa7=jIKAYJQUdVn!jlrkAs-N}g}ZrVpo^Nf1Buoo_P@R+wO{iC1^ zdbFMew*GmBt{hQ{QuGURS@s(!)d!$LS6CMNM}-Pi8GA?^KA^Bx<-F05#;Xl`mi?HF zGo}93p6{4w5>XXI>66SqUa<8Y$ZDTMpX`v6i9Wn(zvywvp;xxn zH~m@#VGX*hKqLf^0%#Ms@rt!$XQ(=>hKjnrJ9kv7vhjs5+ow8ZmS>Wuu)u4O<38N> ziHwVGxx*yEKo3|y29QjD8$A*r?Gg~_YCYVpfS;VPCGX0+S82i2!jJfP1k70+D5qW_ zwFIEf0jJvQ{cUFuZQJ7d^SS7k2;DSvJ>%%07$kjH$+g=<(B%HwPLp{p|Gx+;9Y9eBy+W8t3z zIt2rn&Vzyj62wQJR%IO-tkD$Q3ct(Jpi}&PSV?rIYam-o|CMr_hndP+sf5DvAQc?VFb=6*j&9<-4iw3;FRgu09k zee|n`-g$%-VSCp8&Ls%zoBg`DyxD@wV3+aTEVt^8urG_?tmuKACnfJnRd6>lYS07exqXwXR;am(bwgkG?oW?j0 zas+Cf}};3n`v@4m%y|hUW5a{Coqp5t!i#ofj7g{AN9wg>(|6G_0TF8g#a) zDdisWpZYN)&8kPLXpb96GmmnI^ng?UR9*M2Z+HhDIFHi1R4S!0W7mIRMq8ikeLQd$ zkGZ^_*$;P&<(i?~i;tw*zhugTuJBil%r@eyD1FwLLZoSBt}2z0`@xK-x2fD3I>&+* zd-hroHYU$aS;Gz0LCElBN>AY_r2I=C%+(Tv^Vah+xYA3hcHjQh3 z@4zG<;*NQC&A;}uvb&~FOwoJfe1DFq%8P-wyFbA-xh+;^NA%cvKbyhCkGdlr36(TqZ4TX`CJcQZB zW*p^-N-`qCs?Sq=ifwrznR$#8yo@S?A}RI46YbyTzjF3I**8|1Ou%Q`K3LhNJ?96e zt;$BO&<e3hoQ;3pG5c-=oj7Cs?QP4B+r(ZfejuNmh8}EEEYpoc;C8&PL`&1qUWVP%boQTE z+=S8ExS85%qKnKjilDa%to&z-nK#+(o{A2b*KbOh%V%B5VIun&un*>%Z4$G${AUnz zoYSz=jJouuWt9D?tNokT4z{MhxISZn-$;bkQu{kdgs3WBgH~$mU^+hwT+u65g72<; zPF|0~G#yIk`~*KI7UD%G8VTyub-HtEll;O6t%QB~eCC!gz~b{k8^g;n=Ms}lzwZdj zR|zJosPgg%45$EN81M>vba_E00)7AXtEV#U$FdqN;pHQp+&qkqkFpg^n#CTOZoosYy>a%Gva zWNV%N+&h9lMIpjNGi&;{Q692bUWYfu?Uw$&1laujB{jQGoFqQ2x!qDSsN)cWV}0`V z_S^NaT-UP~w3KFn3NEpSq&2L%S*7qYZ=(OI>IbQpu$?MZi6fJ^i0AO%%4S^k9#0`s z`W{<|L34u_-)3JdUR6&lJ1#&0a{t&+zoKPBBrf?%!S@301Ap8ur~0D=EAd?|aub;% z8qq0h23p)dBCK)7WEIBlXxOKhFK4;p=f2}^u3&0LlEYUnz>IRe!9>0eXN&&#!mpF1 z*zhN?sviAvt_M0*0p*%nYv(Czc21!mZOW9-Jm`bBk7sqwj3F+vX+m7Iw*@~I?oM`< zb*u5pk!d~^|E|@-zv)$`Hc8Ic`R-zkQ%Ko;L1`+~?Y@n=9N8P+uE?9bL|ijrS30vY zdDCG_W9d|loWj69x4Ye`m}hUjQ6=sibSO<3_@d|q0mH)`to?9W;^vT{nWSMk{4290 z+M1Pq29GrG&CHG{u8#STjuDA%SUqYRAxB86!9sz7CZ$+JFiCyJ8Q&05q#G||-8e*7 ze#fu)@bTj%WQ4AB3_%a(+?Xx6_xb0F#lcm!iU`v9 zc-OC*kPf;1V|2d2({-D_0C_JJMv*3c*3*Z)+n3S4wef|Fo&FrAhOw{RrXph{TC{9J ze>^qIEhn5a$F;lf6A!wl)9zm$Yyuz1$`WRxYvL%jn&SDE4Ldt1b@FZbvi`)5*7g{k ztC|2&GH!L~; z2!%;2Js{^^3&_JZ&uxfD-+{BQ;zxZvZ5&o@Y@pQ;@cX@aV@GNz4*VEnC{Y+`j2@ZC zpWT)Usy{G?_aS;}yApA!>gSvcc4lHr&2o*-;=8ta6I1{A>QhK^k9a6e`;xFJ#fD9{ zyd|lgri{gI4pXM4Bb4IYEHiR4&4+G2k|4$i`Oy-n_lSki^wC3_G?mH`$7W@y@d;uS z&@^DhrSA16IZ+8?yxmOx#?gPhI6m4J_w!A6c1bb;4*`&Wm-}GEs}!Ub7uOK_+WQW8 zuJQwd{ofcAaderC-mKv&?(sjOE~N7-ZrH~R;1PpO)u0AKYcA zrYuXaJrO=zHX_Zcc_A4GBZnL;qZPP-^~EKfv4(j?t{9nc$I<_rNmMQN>yyRUgqy%@ zrtYuA%f`Phg`3Y7#|vM6nY6uzjZssi_HJhJG}c9UVD|>rgFiz z)e!H+xc5adK6ul2`$g3Z02Z@+OyA<32KC*;kd>9NxV!uh^sKG7$RT@69thRX?uWnT zEgR*!&3py=hz@VZ4051Lv>-Xde@h)7m7EHl>F-PD?$!-9A+~ZVtD83A@5MgJP)=p3 z1LpfiVc6~i_91ETk8WMoYC@%yf#tmGJKUk#hRlZP#~bOQWp9@{Q(hX*HF<0hWS(Y5 zeci8|%%mApaRYiZ(J{Tu(U5NJsUt-hfK7xuS4YM$$5jb3KIO_QE%waJU;mt zlqV9y1ZPf$1?x0-Z9lV*r-w3JJ6_@#xi3o$)3-$9l#8w3Jc%^cW+V5}&kAq@`eY5eiJ;K;RTjptY5DL&DJW3~QaQM;*p4@`}D&oXj{{ zgweJ8j$W<1tPjUS^b`Ct3~!3%aVxLUP8e18-N~I}DG)Q0KQZ0)=h#}PJls;P^>cOm zil4CyT~wr6W+n0R-S@a;>{X&`{v-S_&ppgvL=tE0a7rqUZMt^wxE&zw+*bwM1re}& z5FGfAwDyu08c>)m^Y@=fc?wcrQZF@@ISIWtNG)Af zK0VoUgDup$EzvD`vJQF(-XMivH}vDQ#wi(vtE0}765IAHfGb4UGr?FvuuKUtxt;B+ zD~BlORKQl7;VWlZTh;K4F4c^gxKaXI9sk8_=0x6|9%P0^rUknPb6Da#+O;XrITIwW z?1H^(RY;gwsz?{)+v-uK-i5kFa)54}W4plbu-dY6pF)OqxIcem;4si*0|EGpSPvH#r)>nAzDzseG98bi(rW7l`bo$nND*&%v zoXv&1Cj$`)ZlmjQ`=H78iZ`xP%79Z>-P^OEbVT*ve7Oe-v`5#?$!|C)sPphju$mh) zjO^Pe$!~NXbQR)ci2Kq72fz|>?&zF0eLMZydmiD2R^}t#4G(#ljBimG7l`i14jlUE zTc`j(3vG|1wftTjr}8@^i2GEOlO3<;lnG)-dZ(nH9Cd!1fP#VQ^hMa+>AZz?2xjT? zDyHY;k3t*;y|6tuSw9RWDk*0;aOM#=YT@(K$98+hI%pefpJ5}O zu3Bz#o;9sr8J`CrQ9MyC#Fny*BOjpIcixl`0*I`nsD7x6emABxyd}O-GEaW-X)9{N z`R15WS=W_6h{FPV%EH!`huMi5cR+!;u#Hy*=@7ZL?UNS_9VyDiaB>u87DQn@FD9Yc zJ@1ny9=ml&I6o>Q?=sQMj)ia#_)OD-@Q;`)mfz!It zqz2apw}sfqd}yaV=Eg=`^ol8Z}9+jW4d zZoddDS#H@F%{#$-2`lUBEOj#s*NCxdg8_^F?*&X zd9O=YU_-;+wdUE-=kwXXme{92#}4KH;_$Uxll@B1&URZ znIJDjvUyXnCs4gi4eMH9MDxJw1Mv5ON?+Y{^#6R&V+rfK>Efk6VVr%3D8X-H-Sl%U zs^0S(-}nS_BkWb&W;UH(rlE`E*fJxx*;%bFC+>W4#G};mgR zoE8b<4|C!xeGaGp$pVkj@$=7tW`o(ui?11HoLBz6{YAOLlm;2LpbZv99Kj8dCtn%m zOYC`2mf(YZ_#d3#9L5TSKDZCk+o0fl=#JI=J zzTADack?{Sx9Dl3E)Kecp17*>F(l+6-~ATd=Er`~*81HZCEf_GQ$P`C;S z9J2CMO*2`(052O!jm*IM!-xx^rcd&YN^-#1)+WB3I14KmBb5G>)XdzY+d{12b8UZPy5XqcLecaXX=evziLCuYBckxaKhyu8Ktnfho$2sKSqmXjDd~ z(T1uGI=++?NBcIClRbJ1VnLQK6rp2P*xN>fi`TafdLx*jnw?6AJfN2Hm6>iKZ5g;# zd+N<=a8fooZWup{HDc&bB(L}3$KD3?7M%$-z)y`^I@MVQmCE)wbZ^;~{m)m~LjshuLKCI<1BA_;I z!PX*!$p4=dsaE=f9*IsAYh1t4 zj1!W;e|_5OIh<;KI2n6Vwx(-|b038!%Wr#Cdaw zZou|(xdpl`>T61GPs+;4xcb5Ro?|lQK zUBG_FH|)=_QLr=RA%j{phuMpc%gp{^`rAMUd?UwG1Iy(vvBue4+vr?EZ#PZiZ--&m z{^v2`CM&x~`vDaVni4gv%5AXPY2U3)ioDwDf3vUFzZjs-r0(x8PC}0!MOMQ5FaDhc z*=t$4VHeCrnc-YW1bafKi-KIr#>IVrG!n-zzjT<+sd((kK1_IL5^5kD!v?}UD5nbR zrVjhlHw#6mC%+CjWw(;2%5EXs*QqK4>Qu$h+TG3RyH%M1H>O56+%;Zz_VSOe>Me2n z(}TEycNQa6e15gFJ)hy?@DsO4e~IfA^7AZ)!%7&61o014eMa&wIdJc+CA-^YqY)>d zf@3AUJHjhWN0Gy;4Y0tJvsvAzz@7nJ_ZNmuapv)!o(+*)V_lH-S3#kfHFfhumLN=k z>TgN77cQCA=Q=oK2MEzLt*G?@Xpz>lB<;}!&u=Oys^7zeDOeQjsQS2}5L`p&+6nY* zuOeg?s%`N_Z;O0$2eq{FuVPu`6g800&Q7OZ3ov!RWnBatYfuSEth{f_x|3(!t286> zT(oY1fzJ{W@)p)ofi^8kpMEnOq(ZN+qrUx>blib{sZJ#h^$veX%-G%w^?E%Mr{`vm zo-R+$J6pKyRdG38mY%GMb*(q7=wNa9+=2Xhk4AZ*#7Ir|`J~srD-~)=)BP*noar+# z?DSz5UZoi`#d1)Ki=g`+a`4sj4VX7t*JTc6jUqOVP;g^NZ^4PTagm6;VPly5Z2yDwYnNDMt_4*akFmS5-ggf#@Q7Xas3y}e zJ|@52YH^c)R(LeC)w4$0_HzyRz6$OKrAvq4EU5d-(aOsa$p3n&Y?aH8+px=5nAv4b z^TBUggw4$QdBHAoQn?rCW4w&|&rEo*>sVPieggZpK3)IW^^E;@s5h3Ugh~V*bF6Zd zH&QzrY(We+&(goprkTH^4z>U0oYpgl$;gC~-EEed_!U=JBUlck00ai=+Y=*NzpfQ0 zl8A11ls{1dcY6GC{Bn>O?_C*E#d;yp^lr(!BU;~JE{4H@D6l_G>Xh5o3zyH5@BQ|A zIOW>Ng5|U7vB!#Xeb4j7$1QV5w02f`R9dV10d(9!hRtX4zke*mcIG;B4jg+4y|o}1 zA5kF(qCW`s8#>JB;^Ewhm=xe=p-A{+@h$ zBrLuy=tQO6O_#>}` z0Op=pXeVJ7ugNdEo?IovckXT;i99#3viWU#<(F)ZzTKm^)_Uk=0`LEFdF!2vVjV|G z6BBqDb-IYbJ@Kva0muQwq(dWKU?csBPr+^X-)CoOvX(=n9pXDy7|+`UBWTKz(<7&l zlK81v0PZtH1M)|YHqL&^<2ftP$Ml1a6-z-)@%rywO^7%bVCZBZXJ_l4??@RH?n&;D zN4c)xZx#5u)2p+t=_Xx20JG%E+9ixtr(Zha1_fzly`pojs;`v2feX|j0)nOn^C0OG zJPguUsMitmn<)u+!hd$1DKxQTK(%!SkB1-R0f*GYM}`t4d3-P%f7vM#)0O15UeK1K z#5Bmkpo*WD<}E-#a0W#+Z0k~!`7AneX9^A!F_ZTX?M2;~cFT?la8pjolvrZ`Gmu@`-YzYZ(6L20-b9SlI=cuuL0KWxIv%3w46nR-(%RDA+tpVjB zNA-52nhW;KYnc}}&SP8t&LNO)>;1gxE8+LjlTj%3UKBqWQ|?``fl=@D?iIAWwibI8 zxas*Dc88S?UI0%>?Z+QoOQ#>quwtaay*2|Q{|%RCR;y652ODyG+EX@Wq3gTZ!g7$$ z(#(tG0c43@vdHX=s*vCsfN)0{NAL8Qz?ndfYHb&$amb#e)BsKvz$`e~Y9Zn^3F}%P zp>Nz)4Ns@XVavuO3*mK@h}678%1*fmPS?~&gi5Eo?$kE3yI!#aWMTI||IFUIe5!o& z&emH9^Mm8-Dvr%YU8*qztvm>wd1XJ2ycy_C0UjO^{RB#?I0vm5VwM@?>S>A3Y#*&N z$%e-oZ_I{e%!;BquXjA?2J+EZ8#XA^&cAox7YpEk!&5wcFid3M)a2B8q|qtNv3!i= z8Hr5N!_`n0zd`8go3^x`tKT+l$oIbm@BNYgIf)k!fac@1WBCxdGIK5@ZwZ;x_orD5nl1tfn%5Z*79ON6e8$eQF( zI2*sVhq=C3>)&H@Y5{i5KTMkZr>r^!=G!@}X8dl}@jnu1lu|b)CiN z$VwyCkuomZrMNY>+|H;y@lse*xIi=Q+k5qHSD>$8P>^ZlG+!xXcu7hsZO}A;k=|ap zvAkrA;LCO?(7-W|r)Wt|5bP;+ySDt2Z9D4RrAnT9(!@A~waHcFN;`-0bD6%N6{*#d z?$vROxhm+(MlV^{(n<@y8T5QAI{IW8<;>$)t}qBv$m$JIP8bn$Fy`b)>#Or~uP(@x zDEFjKvGvBov~S19gPM-6`$tWb<_Z=>Q2m3-0VGsejBn0 zt=ePrb(9Iu@d5w9k(R&O3%czSIq`IzPc^ex9?7CF5N~`np{taHw z>{j!&LQe&jEn614KK$;#C1ke1+Mq6GZ6@I50Q}n(Nzi|9bm^Y@h5SWJD|I1DAx{@k z!@}&hMHJWVj%9X;7OTF{iI|;@qM`n*g&KZ0?!N$O=kSS?=ipj==Je?C1C-S(G8CPW z`vnP6(&)c7AE6*4#BX)|g_))(kmBOYcG4Og$MZtAT&KWtz>3tb)vE*?y?d?%=@ifi zBsO%x8rJgYHh!U(;55bX_Ud^hyUeypK>Vis|9LDp@-T%%u)iDjkd7)4rCjn$qE%OX zKh_)erKt7Sp5EDPx0?c^2#nz`+e9JDFs8DzH9;W*gkdSZJtau9J9{>T$Il||gk&25 zaw~aS9e;`~gWENP8%x4&kChGJ5I+F7`^PEy4zOvYNOy_~c__b`qaJHT7c%(zr#=OBC6NHOk zJEtgib^MfNGz2IO?90Gi5eTl(8V7%gLn%mKew&R3YgjHroe8vOSz10`Umv%7#NW>2 z<-B^zed4G$7lQo|ezEfZZcPr~d`2tAwp~k4F(ZQk@hE648`h<#)_sd*g%jYLU8}#k z_aqVUVomONg2Tgabr>-#!ShD9ttsGPi(i_&*;TejZ>+|{nTOaDk?HTpC6=Pv&CyQG zsWWntu3S4MGIA>p?yV3L<+;b31gu)WT`6$ z5qHDg!gxWW0h*W|GU&NXZl`-2DI?vPtG}UKyu;NojTgUuym)-j_jQv0&_gyO^N3qB z0`IV61r=H*euBxLIz6n^Yh0yG?<>)pCTa9$2I@a&7~gE%eoJpy+PQTGAVTYwx4!!@ zW9pX#pgcjcUCPaBv(gvIVjPq|*WcrKcf!6lw*JjgCDMS?s9K}lzB}ODuK$%8nWN3^ zOpZi<4MIVI`Y_^t2%>&lR*+x~`%sC= z?E>?}g1rz!ii7+hzs(d}73@NLBQI(A{G|uu&12!~GAT8e{ax=V3n&DDnt4@+P|L`D zxb?-%>pNmx+m`_y-?)mT!YBHrmP?Mth=1a(F>Ky zC*#g3RNg#X3n!dURylF@Fq+HO39*^a|H5qiL>Iv zmX1LYlec%mjWMgXP)qt>D^9V1wqmVFv3&o6v0PDrzi-0Wqb3rE!iI012Hj?IDT_dw zHC;n>=T{6#qf!&4%0<9R&wV@I6lTbsA0s#;Iawa5cy1HN9*mzzy zkPlq21kYkz%p2(w*YbC#lC!zF*=*6_(|mGjSRP$q;j)2DT_c1eQs5dNMuh@Aj~TRy2wcqGrC7`AI*)t zDVD!-H!NkH+;7KejS6_L021SLzv9{gP^P)V=#Jbr*Wvx`melyKAiP6POX@EzXJ}W@Qs{VVWcq z0tq2sS|~TL2FwQsdSnf<3C9C_;uoX&8}hH0-;Z%5pU>e{;z{tDu5R_t|1}}~BTNNQ zK}IYWtV6oC0IxI;_ z7`v*bM^G~(|3464gFg8SN{~F{>Zh4!9QdrC0TLc8MyLq zw&I{N`X+rKrtslLnoDO3&~vcqtG4qK=FnIukjNA)`m8Y4Gzq8q5tX5>LE?SZ`o9tPz}G#?r@H z05h_xyr(%jGErXA=Q7T5Ob$rarn!OBFfCd39c^4c9TJ!j&1W5F6UV828RnU7lg{dDX|K;%uT#$xW zjUrbc#^d>I<<=Zwlj?%u@l4e>hB1@m&ccQ{m=TA=`ev!$uT!1r5@9`~BleYJhT8r_ zF;N2wq5LEQ*eIq9j-sl3-7Qm(lw66|BVbzKL*}iJbZ(5@$^jU8gCgJz5CVcx!{jg) z{UM(92j(XItlYt6*(L1@Lg_oo3!e19e-S7PF7!A0>1)k4nNDfqr)(i!!qNwgsbA;Y;O^c>E#R&ZH@xEQVn zkG?ytzBO{)R_{v<)*7<)ycM-581y5OBH}n)nx!rIK#yM?KHSmI6|%tGp2(mpzd)OQ z>|Y5Zi`ecE0)u$jV&ch=Rv}u+`!mB1f{Z3(Msri5mD(l>(I{IPM*1!!)(*3=xKDf= z<-?=+z2Bzh_5DN~!p4&b*W>NnbviIpYb&uYioOiEwFUgS{6wRpU?CTl#H&4rjS+tJ ztPoH}V`Yv)5>)k*W8xWx$y!~evg73bJ{zTqpL?E2_%~8r-XNjJ!bvYU=iFFtmJ}tu z&{pXc%j3^MAS>Jz*QdT`^!~gL7uywiC=M`wd|z1gxLjD}6Eh#x{iVl8O<;`3Om*SX zVQoLzPEro^9-|QhVSSAEw-y3z(@^2YS*0#vLdYS~+Y;M>+aW&jk7&V0rWOVM9p-9g zu6qhFPi~(@b)2_oF4s<~7CmA4i@Npk&~2UT*-RFA@tY44EkQK$$>afqrM-RXXm$^| zQ1OY(RD6bn>=aixzXKgl8d{qnsL?z4D@!DO;VFmrg|dr2=(g^gj>t%rh?j&=Hnzm( zE=ZCGlt$9^3H{-)fU`LI;w5mb5D|3KuFoIib@y3RDYNCfFe&7_dJum9nP`;XVdGa$ zFPGu%2W>y3ge$$5XvD++akz)4PzZk^C;#1r*|qDkventhg+WzLE=Qd}Ich^4|G7z3 zu9DDiutI5pzcHxp6OOI@)a8Dk^8KeDXbS0T2WB{KY`lHxFp>yPPpF1;p-@|V6x(zY zHEGkR+rY2cRtrAwhG0|pdheO=Ij>vX4TtK`^uyp$_m8jqdZ7W*>W~YcPndtjYnO*^ z{T{kwwvCb*kqs;@b8pE6FIuy3^NnY1TOd)YwcJQ`% z<7Aw0Gl(-Wbxk3dKTHOH4a{A&koSBexP$9L8TJOjfbgG=sc5Vw55BqvVg?*_q>E6S zq88+zdeXa@#A6pgq*g+}4^ZuBLWlFV7QNC&J8qm*-%n6=eNI;IZVwi^vN7e|43VN_ z(~K&XyQbK$*hI8-td~_PRhGxiT{*ZTe0hLCEZ=jOl%HaOp9@mh-p}vvF5mK32S@G5 zc=c@fkFx7QOs34tl^9Ex!i~`%poAX)tK$R3>eW`ZEqkK(3Gz_`#%4z4hA8b^uTUrtjjRb0Rs<7gBSIxBI6Tm;t`=@XGp)V~yC-?E1EEnE zVoV(lkC*)e8ha-1F4rx4O`d(gVSdC88aoY3gz-1V+^eK^zkm_NutNd?p`Sx!M6PyhRWD8d`SYltHO zzmgZSzePV-9CkUGk*~lxA`0LZyW9MAU=6+ZdU4RtlIHp=(Rm4BFGP5ymcDlN{)p67 zBrQaqYGt>391@l8ZVF_ERO}*=wYhe6Q256i*)~nIo=g)(#h&JLv+C2T#OWFvvWfUV z+feux###?Hu%bo(vMxz1p;?FH|DCQwZhDYP^?KHGntweNOZGF1yc*7u!+hCfY(2=E z3i5b4tw&d7W`;v2< z%5M!wj^bEZZgwB(!wN^+Rxe?|p#i!;9vV!*0w`C5Dkj0*P3H6e#(vfnC`w$A21PLTq0Rxv`#Wm%`Mf2(Is3pSB!JVJvT0)=1%ZKPgr{_#WB;Hh7o&QB!`F)3(nsL^* z-NyyAvJyefkL5^6Ej~i6^dAW-E)f+xDXKqD8CpYwQ}&9#2f`m>OJmgG@$KMEVBs5_ z@vK>HA*MX~Wc;6~cgl44P+_mhF(ZIJR^|7<>Q|DR958S=_DoTA}mwVXJ zSkpeNvDUZ9;490m>H|G1X=O(9Me2Z$edX+Tzo43Lgu4JkzAq2o{-+0j z=pyu++o8Mn-VB*3&di*m@)>ztU1C?}L~z>gh+4`3zVhVW>F4rhWG?=qiaLW#1u3|2=Hb z%_@O(j4%>K(}2p6ZT_Lt_e&e|A*YwR-zK}ABt-RcBjgMCdF1_0QWMEg*DlxxYI<|C z54l?;?-B8-dpAChFqyU^Kzg3@47dCiEAyTe$4i|=;S#)E+tfO?yA0J_{!Gs&8EY)6 zqpf|}um5J#;B7_PhnM>)N!_4hMN33{gmk5G=KH)gOIxpVsGx}`A;spRvJ^hs%Ra?* z_q*0L)WxN{0QoTZCNQlBe!X|!@b}HG>kY&>An20WvNEe#SeR95U-lyYd8tl=qRCt-qbU)$+@{v8(m_ zYQEl%dg+8rpMG-cZg7Y*7ES%H@dr{quF#2_YzRUEcgNb^I-y%a1{@tT#C)qK`$Efo z6eqzHbPB2TC2;3Eb%knwZ3YdlYiWOId0vVN*bKk+3$Vhq9ryS#<{9+)<-_)3ABJI& zH29mSqAFO{l_uaHjd~esGgGu5jQ#z$^Mln&4FMx2X2g7K4;1RpBsTOf*MC zyV#OGU}0tN-OBFC4X?}F(O=6m+57b*|06oK1TP2JcrWHJtdNtNKuOnocN%oEhy$W+AIC7K1zrI8RKN)yXqZuDInhxCw(IS&m=)ozOJ-n%B zSzvB~X9q}7Py&>E?;+t5-k!k?hS=n+@cfkee>8nnKwE9oEz$yQkpjiti@Q6;rMSBn zf?I$f1zOzQrL@J}-QC@T6Fj)fN#F1M7yB-`NS-~j)~s3cjMV+CfJkMPd5CGq9bo;X zSAc$p!PpI-CQhv>_Gs#{hyNR+_iLT~&QFd7)%VEQ_M5*ru^k#4`v9zt&SUkFQB|z9 ziRc3HzRLAzCsfCn*QCouY*QjWH>HPY=T4Wq_73f>V?G0yeRLq7n=Y2uJEs&@VeLxC zd2_`xCeAxx4Uzw7vZsUo^f zm}+;8EPKqsKZKpj{HNWh&z3V^3HaO)ybfD??2_@{me$fy{zR!@4^F-cx6ggfmN_r;_3_;V~IFVoL_0#7kf8I3X7HPE+mrcMC{^s zDoT^Gwzo5oet)~(WR38BnR4$7SaK&^+?8xK127|e#hI$kY{N?G`S$A5&HkepfqA0I z%oD1fuVAN-Vw(I0pr)1)yZ9-A=9A||AE{v{O|d;xGjlzqz6P>ZQhspua?5Mv@t-Z# zins^g5|=@kROWR)3!1pH7;sWop2)PaA5jjW(FkPZxLg0L{At8Y`CyO2yc*X2I8;z~ z@V1P|V6k@|;y(~8D!AQ@^QYd;vBX%PTj7{jA{1!qSL_-dNW~l8BN)MfSo^{Tb|ISC z$eofaPBWJF4$Vx3X2RDJU0KG57YE4AFr8fwm*Hns>Q9Dy&uA--x3TKxH&TY>X7M$( zCr0m9-H#f~9rQCm%tYsez^IerWPO1j>+=@>(W`=HL(pZ#iJ|{vMfN>BTa8UROJM6V zenb1`O!sl-DOqSrNr+${;$huzXhfWf2y-BNy_s{xNGTd;$8F8ot_V^^Iura8Qk1|3 zWdIZU_4A7>_TYnt{CDLyTeEs&U-;YmInDyS!m3>9@1*LwgDV}%_7Vp%l<+1avHOWh-Xlhdl^v!zUS9m`_>iu1EBLQKuQ)f zGPx^C#neHvqM7L^rVjOd^}+CJ6U-JGJbkahG*2ChvNlf1Pny|7$tP1@=9WS` zRKqN1HRJ!16`k|6)IZ_?E45%_8u>n_U&t4Nrh0c1ww;B5#sN-5CeKl{1U-1d$m!7! zzk-cgsQA3F2ZKukS_?+6C3tLFVZ}R@=_4bDL;J5W_Z1GFG1LoFoH*Yh!m#QuG9Cm< zOxkPB<1R1BKUjs9%zxFn^cPtOgFUReM}HJm>&kGH7Cj~FTo7cQTsF{Vc5rX5w3`Js zaeTNIOM#gncHc z6^PFJa=-w zTRP`ZV0q4s!^ak>*vm)#DEsCq&aQlPXFx3I9ok+Mh9N@{Po#t`=8OkV9jH32iZx2< ztFYIedquXP7p0rBUL(XwASWLjkxHF>3wlr-pb^q$)?GxbaMf)#zIdA$5FF619wq$9 ze(6vdDqqUQ7OHd>*5@u58sd?DxU+co%jQypgZutRX@-%L?ibx@xGUI@IRUE_9j`Dc z9q@9znBm9@t@L-kFQFt|#f&;`%kULnNjO4O1KJ}*h_cdey83x5aiO)kPbsCY@ha0z zEN21qK!CJax!hKQ2Kmyl2aB%NOC1bA*RDbhS8*4?^?Pl@*uHI*QPop@>SQZQoEir& zmIV7A01MzUJ@u#e#m~$M(dq4IWI>;jrPj`NBBX#Gt0cse}Tt}({e)vZEAbGh29l|C=(vqspZ<+ z=Z43D;|*=v`tdzKIj&#IihHMROM=>>^&Wv}nE>GrVT7 z+pk}hPj%f1(Mi-=MZc9ggNYJAA>_5av7Rwe8?CtdC@tmhaJ1gL`qDI_tSXFogzdQS z?3b8V^7PTtn*|BwjRZ|wm@)Ie^)$4jQ&*1pv#pHBqo2ul^y{y09sK^-H)+mj@Cm{L zL6s_B0KNEEM^PC=+G3X#`>py8P4zj$g~wkbs?_3N7vJJwHcNfpEfv%aiZ=AzhK*M7 zb~wlXbB@C@VLhs4LMBvU1|R#^1%MxBQ$Nq}-zEUOE7SNDL?FV6(BCbgou+?fP-Aa@ zSINL*_+S~Pi97rr&rYey1VA2=u77px!vN{IWpe47x6myp7HMvZPVMqF;l_72RC#4k zY4QyzO$t5|&@#}ad;2NpJ;9awrjA{$A)w9SKR8QCG)w>%W5=~UtJ^8)WFIvx>)~_i`>))psO5Pb@a!qlI?P<*q7tD_diSTeJ0 z$f7^*i)=Ou2rkhLbi=8X9rVcOqj%Jf^4|Z$0OC`o)6*o?usgx3J|Z^-Q=^cDaeID( z5{Jr2ov}N`E%k=Q{p6DC5Sr7w%{)#wv|Bx%0i^C>!D0s>fGdqUxj-_4;n;Rv|B;+$ z!XP~E!>qfewBm0K5&taMl;X44CyUOSm^rrvquDKOKNCd9W`{^-PTY#T-kRBkI%(O` z(k7r$vZmk34ZGg~Gtpx6c=c_pH9N;=eQe_Mwh$p}`^u*j|EhqB)@tFi749#3s!+Zv ztdVbz3nnh3PTQ8uem8;(&euP6lkWBCr`^7>KaFP+YP$F1k$m*(yB2*qmV!IhNx0_c zbX(4^#>*d#Onl5H3pgo8##$)5e)-R_k&C$_JMxBB z?HC<+$*@8bT5C0vU9BRhjMvg$0Udz^)Z*s75DJ` zdIfdE$JU{82`1W421Krk=pY)4?07x&1(vW3CeJl6lkm~-wRPR22-^>+Z+UTzo6~1p zJsS%T0e$A)kll?6K_BmgFhmllI(H#|d~S(o?~^n7ho=3s_9f|@4+-ivNhgwS42`y} zJ@8-_Pd=b)AenGd8r;vZzt{_cwIrTbxNHq%f|re`0o@5FPpK3zktT8pbE*8|Z?^8y zGw(km1*>KYt@s}^RZZx}xF#kANE!EfCZvxa{Fr>W5lAr3rmY`yVPWT)stV@P~A1VyS z!KZgA*gN=Yz1iNn0HV#%?Pz97BLqy(-+MKH>VD}nrMl=+TUH3=Wg2d=r>Y5*1)j5e z<{_zHbN~Xx&#}gr2*tT#m(vzSe)UhQV{EBZ6gJ=|#L}2xvhx^n^^?x#qAf)t{rl&~ z_@wDvVLOzGD-s0V=Wiwp4tDF#i^}t550ivAY2>ENl)cuHn8#N?4hv|TBjJ9H-fm9k zJZhaD{{c(nasltwgU2UM{V> zVF8?o15R4m_i}E$?-{+@T5$q#tlkZ+xWFx!kio4K`&JtHHBjdwI&rfZ$4_ehb}ktY zLFJ>F10g;iYS5hMAW&+npn~uHM1ezcDvzc~!rFaa3)UXDZwtRj3g#L!7(fGHUhc-_ zDv@*8u2g{up%w~tmbaJhV-zvN$D9$0W(NlfS4ilX| zUq8oGb%FK|?V=->Uv4nAjB_AZwmbEBH~fKyHSs?B0=r@SjB1^Wge0_Rjvx>v0<}lX$@$@+f?(r3qB-MHQnCH2Fv`|As#9 z2Nq4luhJdOddWd=bY&w@pYP43_j7iS!13}~I|R}Is5s%a8TxB4AfJqC8U8-8mptwh zwip(5D&l7ZNpx(%xi;(9M$I*0MAYx^#4rj4a+Lj%QV+`8-Ahi3)|()i>&kPU3z8Z} zWT#7ST@3^%QDO}^Kfyz0tAquZumte(5zyTH=#vfE#eu?{&ahTj)a6asr`rLGzv- z*k#=~YU~zWkl|5jo)6Vdo^xjtYO>m7Y7TUtG{oxlQwZ1O8&>{Oj^ZJLKrr|$8VwM=+ke+s?^%7A%ziI2h@IeIMr#t$;6Wn>KUNM zJ|WO6-oEzUG0a~8aM}{aXot4O!Y=$5dztqLHxl%ouu15vlW=pE{ku+DGBzA^(ewfJ z$@YySb3dV(H96Yx(^v9qdeWG4=bpPgiZ9DoAu>ugt*L)lRfc#x-!mdyb-#bi!uRKhb-Gbnl{VMS%O6cNS{gvf15-q@I5W1kzV#-B#`zQEvAI+b0J-AS1 zp%v~0BUM=6aC7qnt^HOO4PbI|5$c*OQ%V@EGi@FH-USghb)~}donE(X$*2L{ck8yb zJOuV2Lz15Jv!AJ=+d@b{GD67GBnj@8zxI}@*3U;Hlst%?G_WYb-V}VmJs{A8D6Y;J zJDf3W=wIqEIxKr1NTWGp^HriCTs^g5SeVN<@3hSCIIjkt27dA@I|Hy{cFH`We+oA* zQ%0_ad@a<3+uY7EYRNnjLkLUt4NtdMj4E5d+NDyff@++KMa8@vKWSBvucq`KZZ2ZH zefcMGZ_HdgtwoHssE?^>EjYOlf-YS_SJhW(cJ|G%Hnzzg+1R=RDErf%%)|YZwzf|D z&RySIqc8QAU&Uh4)o9X;sux9!+KP^ak3CKOhh1CLv)7WUeU*pD5$PXggts-<&E$=y zd53chuyw+fxwg3qOeja#eD`jg{h&D*+Xf&~MjBJO9Mid2%YWyrEe#9Nz2jZXl3?bb zHY7$FYuHJK#^uL_@>Lh84k;je|g&u zGUrOPv89F*U(U^$YlIdu8iZnx5=$JJJCZ$h=(_Yv*o9g(+~i}y=<}Sv8iXdmL#?Eg z{aXAojUo2r6$!D-c#NUE_yARiL_YzZgmIR<3Z7pv_Q?3>=nl<;qh|?6|JP^XXGFRk zZMv6z)}ol0doFv@Pf5*FvSta>y&+SK>ayo9xE~G{nQSK<1XVDmZ8vJ-Z#xrAs#LMY z6;Q$a(^l9J^~iu;ox}F9Z+D7z^6hE|S*1(_scZ?{Sp|-)r6`jh7>`51hn=J*^aV!x z1QKD72I8kg2)c!FKhKUR^F*r(m{!mHnYX*SosYsc3$7`?dcj#)=9~T2jQ0E$&v*X= zh_E4Dd`#qgya@4hP#)%NNr$gIRbEPgpSMc4gc(9rKd&4^-yN3qqflW-zdjW8_*~y= zt9;%0&4%-+$YC=FqJmxt&+@)S=;t+>boJp5Z(d2@rTV z^ir#@)R45wWsqai{O{<1U4M209YGwfsYZk%J+h-Z0$yH)ndiijH$u;)|N4N1q5hw$ z4<8-E9zJoq^dS(J#(3zu^K$Gz@_mijp|5`@kp?nOLAc@!;IKbv`dR%SWYTOeNJb(= zT^}vnMny)RB{#H68N(*G{xmeOCdgfqJn!AF){cw~4c7$erPi)9QYfv3FPX}B0LdLk z5HBKUnHiHND9^RlTPSyikJBxWqiRbi6lI)PQH&(q-!gdOL~<8$djif_B9&|aZIFR$ zFk|r4Z-Zu6lcCPPGzux;tlmFE?Ykw)h3^OSB8rq!7uB^#Jrid2dnNHp@$8I}e#!qf zp?*(-NU;7yId389-2k?8I%$2R0hX?Hb=UGzEM_h|@ET33Ml_XjGQPi{e*a}^JDYi;_k zp1Zxoh!QjwcA%CGMwk9O!=+%bS(P-;-#WLDIX@J9qd~Z~Gr&({P}oBqcr1grB78e_ zYDyLSw8vZHuqJ?ngcSA*1;u+`Jh=4B7lTCe!?!zK&Ct(s+GwTFT3(h5ySAOlf_!MJ zCi;X1R&(dGmBd72u-~o0k%8X8$nViejOP9RH)$M0vfI_pO)AUf3)im@p>%=1F zONa_uS^O07nQW(eYn;8VzqrV?FeRm;2ur`27}F(I>JL#*R|{&?WVX*uUP5cvVjS2* zZNaC?EZ7TI^yT!j=}1N>Rh|-^*;||I<*Y1~gC{^Q=f}y%oBh{OQ3kx8Ms}jGHlMJE$O71VfwzuTk*p(GCufuO~KUCr!gZQ`LCROCx zEFrAe%S8ra~<@W$}Zar*Hf4>5$~;eY7M-jS@_!{6Dt23#Mjw_j<5wm;r&Ad3#- zXd85;b6Zc%%n()2_t#fL)PKMIw$7^VJ!_fHdB~)^Kqa?%v7J^bDOrtJi?Z=8g|6_n zG17<<<1ESN04V6V$C}V@z z#B7X%UU*F=-y?VZ(M_y3A~r^;W)(;q6AYiEg)2%I&B@@2Db!vEZ{`YqbHNZ)*)}yx zd-zk9Nm|G#H;?`+&UO-CH9q?yU)=PeWx{z{$xYf^Ny+lMf~nMZBOTM9V`~@F7bN`2 z+p{D?THOEV1+dEFLTtkGc(YH(=i(a_HhfomDz^ProETxeONU!1Q4mDDBF2&UZm-kk zmSVs#X8sOL#Z3yz8v^%4w^wflIUeVMHTWsyzqoj24 zOjk29w;#aJe;gJ3(D3LEiCIiBRI!-&UlpVe2l89)xzY$)O+j2w9lK?GKoWjOSux*f z-67bu!dmiXPk;TiuXbttUUJO!=nHqdvwzZ<^1_nnA!dLJQ*Rs_$3fG}kvTE(B@DY; zU%J&I>h8XoeB5ZOC^=g&CNpo{!~3l~>2-I``_s@4TK9G*zU)>`OaF zM^TDk{aD2VKXUywE$S6M_%#@A(Te2{n(M=#7TU(mJ?CUJ9R?bTXcM<-*MWM%2KzGS z6Yc)Soy=5VdBs`zHBK^`;uwNNEH%R2RT*}onXbvR$q+XP4ENM$Q1F*Z?A7!Fdtjy3 zvt405$I;5DvQjYlf5$ppG1l00w-JOf{f!GYE4!TqwYwPBHj?}^ogi00-;ZC)PBD{_ zlC7Mh;iGUXj4>F+esXccgq>}@t0{31w4gFCyw*n=HEZAOL-dUn!&*=HV0!vZ;u*+X z1(WMze^GICc%@Y7^UW}K37Mhyd{Y!Ze^%FS+rizSSA61lv~2>7YRdI~P+_ee%WutP z7K)PWs@(?a{aN#GQ($CV@2WfoxOctIBKC$N6-rzm&f75h6kv;T@at%c_1Pz!Jhw>E zqa7-I?-1Sn4zxdL7{1y6iKDgXQ-ydYkutCS@{BjSnSfUas8sPy=f68D!9Vr<-R}r? ziZ$-=j{QThU&Nb42jpq;a!smOH{QK(qnFMtU_!l4JEp*Ok|ch&OC5W)`Y0LXOBKzD zWIuSPh-m4xv^Nbu64Ox?qP)u0U+s1Ej_@5#5u_~A^U*R1HIodv_b^UPk_T~yAAVxA zQ}pTFK1Gwy(XzKZDB6NljIG+qWcG4Kba_PAT9VT$O{2#XBMQ|1s*_bS9vW&li0}1t z5Cu_qy1D#TL>Ce*bL4YTV&3{(%>mUj-b}KlVHzr5gK@&A*Bp|6rP;%<6@`L0qQ?dO z1_W!=UB1+C@(`PUB}T6c9R$;Kl`=;JvrAyrlEr%e#j z;yH#WX++GPw|K3YYDJ$Gr!P}rJu+YEEtax+lxqUj%%Q`z6|~(M1b|+zD}PUm8(Ue( zt3pJOn7|8J=uWMBoJ*SM7{>+v#{|o%8Y4Gz)FNfoYc%s68%4Jaxvc?)B=DXAosY{z zje?uYF(q``6)Ox|vkMUZwp1P&+E&|7{IK&@RV6So9dms;G?wWz9(w?WaZiguvLW6Z z947*OP%2SS9d1=W5deb_0ByLwdh{5`6aJ$K!CShd6k{!|?8Zge5s~?fCp`CDmbL3> zVa`VpTSD0*j_7VWaLE0Ai51K}1SBgu59em@M-jyM4I|ZsJc-$A$e!24st<+BEX=FE zgU*-945HWb?F5`6UiAm&j?nE7KqWTS48fIhb~asY@bmKfBuT3`fivPvouca;<6{{m zp`9S(^`2nf+j?(iYlIpvegF+7>~o~$&%>XSrdPi=!i{O@P6O_mfH&5i239Bn-Cn+r z0Stl|e8G=niO^Ays4MJMRFpQjF4CvFI|kC}hKLJ7U~^CR3p{kvNhyhD5=9}Rw(626C_)vNTVO$20mc?=UO=%Ci$Db!h$bo_QQ{V%Y493h8{B+9Y3BgF;u|+IP1-virHPCAmY%a;s)0Q z4>M8i)3M+KLB^F%Pv&>K!|p{o4f6an6nICVzbK`v{O)V*Q@WdczKI+ z?HAB3J|6pHIEKMgk4Z%ucBtlCfT>0IriIyPkHC%w%DBX2)@esLPB{-^>OGT%g~4@7X)d4Qz#ZtJTC$@Fyig3a*@MNpZ1 z2$#Or^hsAsq!ZgnD@Y%vVE5a ze?*OL`vxH@qp|7>Sf|OSDW=?=ACC0hb5c=bnLDM8X5xII|@;}WBYz5yO*o^q8OR^+s=sm5EIE86;U|YMGKtTjE$UXl-Ix{ z)Y{fnhM`#iH*k=QSd-&#O_q|Gz-FX*%oO2K7I0n+89S2CtfB0_H&6JyyOb_d&kMsr zb}iPrtK^^U)v#%Yi!dS?FHca=;4phvDf=cAQX1-c*+hBc%@T+Z29Q z-`fdwwziN33hQkL6dYZRBYa2tdsu3~h2_mCpl*Sck=bvyST6(@QCp;V*TfECSY%8 zN3V=Kn9G%i=O_S!+S9Fa^3kq_BC#=l(_kvH$cTep0Bwb=*wmFu5jcLEom8C>+M6tA zhaoqsfTbB4DRqwC13zgkX<>Yyuz=U)^-p`!G5vtj?n--G;PT`iJ`jscoHAh*RdN_) zMkRJ_@%3xAYPvEs8}ly2F{VLmeF{A(MT3y)=|(1HL(`hXVaGR#>?ID&V=HL&12g;8 z|0QV(_v7eCE~fo2=tfEq<7_H*2S;pS6z> z_ZV~3ZUX6iQFxe&+lUatjzY`FA0B?|>P#9r*WFPHDE92i?lulC#$HR^YxMtj4nwuq z&ZA>}{{XE8D)Mq|{F;>E&>TjW?U{LKQCF8YWu@k5T@^!^*&vNKecX>v3DEBz4c4KGY<&+UO-}GCg1g6q0JH+1?_%zH^QHh!w?AJzU78b}}wm1{oxEgx(s34<3!>o2VNZ;LwL z{|cy)>8xY{b(2LXIo>%JNhBs#>V4C{Oou3h+CB%l30*{}_X-^^dmHe_oh1H$;cC z!ugI*#p|^|Jvqo^tLT_Mr_2;x@PkUyO2a&UDlOHHj|uV1X%Dx9S7kUmXH3gwi=TyISj0T7 z;`}F9gqT%w=qI;8-qxlRpplV{Wv3Nk19x|u^8Ed2kNX4To`qE?t}VvsU2V9OL;3*H z`~!3%@aCeKI-=Ws!U8hEyKa( zp$=a`o5N~9=fCl-B<>03wz;P@>F(yts>G&tD92IwkvhFPlB1t|uZ0kybI1og-H)!) zcTW#IhVqBgl?Rev)l!n$N+^GAJ7cY{3r_k2UN<%_ZBH^QzCB>%Fc3M9I3LJg+lZE% zQdUqi=)`F$`z|_hc!7oNa8dZqfB)ulM~RmFA<2vxEGv-|Fti9^N9fOu9}Bz1&-v9Z zE?lNs!ut```4ev`x2RK?P|}UmWqCP6;MM;qMl^aS*$Ech#KILIRq7pd51_q%oRJWd zUTCJeYL;U{brx0;TpGpAX>EUD*Hz)`8Oz&VJ(}mNOiV&HN{Ef0216ZIO8Ac>kr>@P zHRtZU(LYJ23HnKNH=BuM^aX}EqrMEfd;Y{Q!mN#tDNxOfF)uxA+AmFAe=ef2|L%s` ziGDUz5xu1uC-o|uGTV!DG_(ACYYg1Way1}g3~-+b>?TV_YsIb_X!(I5px}v&Yv%Aj zIuL3+qAw=DRO734bh#NqwzsnWfD2r^_Vs9MjIgR%LYEMMjp^^72%mPN4|Jxr7%P+5`P5~~k$l}+x+eRWt#JO^ z(?CUPVrPMRKOZFC)?;aTCNd+kkeu0K;SVs2Qsa;){cEFC&B$;q!hoodO>oEh3fXBr zrNulETL1qD1Aw|X=8s9PMu}WS1YBC(ig&2my_3XqFYf~FSKz~ht}aMB?-awM&_hu1 z+QdEG0%{FxeXcIXQfeBR1AK2eeswFPE(vvUJo4;f+yCa~9jSM{xUp39^3lF9Ogt-_ z;JzO{!B!Umxv`P7U#?Y@RJshRIUYLyjznm2RyMnXZR%2_M~CzIn+N$*ZQS7)FW4{_ zGZ@XR_n8s5@AXtD8wi^QcJlt}`|1TosIgD)(6NJ+)kj4)hVmPeo+lEfiT~3_Hx@43 z&ukImwo2#w7Z>p}cpdjfj9;*B*ZoU|W!awQcI9ugE!S3Pp#96|d~)?mpS?Atq(Ml*R@j*%ZlXEl!qU%# z*9RQiZBeyrT3a-Ul?if1x{0!hC}Xrjq64`jr|h0pp6s3!ttjTV?e9crhV|ej=sQgQ zC{kO>)6&wX#POwfF4J){2&?^q=B}Nc^WU!>wB7u~`A_`x_${oQVRw)y0(qx<`KFO! zfN$V&G8oO4*SNtdp@i(kPJ=XBoG8M}#ZbD`?IbE6rbzc{Ssi26(!w?GDljcPZ>g0A zNDFXw)*xVW@1CS2>+*byd53g)JnlK>`pnzE&pg83m3wKr>i-DTEjg)5Sz*Q|_l^iz3+TLI z>+aspe;NrIPRzGHo(3PT@_I?kx1vn{Pu36=7=+Db3h|-2W!vUH?_r}!@{~RLzQxz6 ze<+w)&Kpo%P5I7+cS6mWh`rf|82$RvG+DkI6IT~jI_WkHQwtk!@RH*NWPLwZWTI~v z(1Nb=c&|wjOLs6H&NhkK`NwaB51ipmMNT2N0xx?R=IYVx*kV7$_BF!a@&-L&buRvf zV2JSaYE~4-3eeOKklp6^+WfFKQY=c``4me&b`;KQKb`Y?F6dU&=_HK|x$&gF#HyzJ zB8qVZ^C{~PV%(12fMqd{OBIS`g6i3*kb%#^ES8f3W%`dcQ~EK#t|eVAEv~cxS@rAf zHo+k1?oT|UPEZUt&xqDhDx_4NDYZGMNM<8#R-_6A=*Sl!z$4Z9kLglFRGx?&DtRaoX>mH3MNfn>#R0`c`z;|*HYECdb%ri8T$Lutay>^|kuDA?Ae>ov5+ z-DS;%eYw0)mhuAqk85%2XIJ?Zj;#CB(s*$AuANM3RBcoa> zo1D6n1@I3!eO{vF+Ux!hcG?PDy3&uoyzE7c7(9OH;hIqqAaMW4M1Y9RJ@N1X3nm!` z9*$y3f|0+sUWyI>t5!{7oG3w$<6R~(XRumxu}YMtnj`-yhC6TpuG836yjyatp+A4g zv#opo2jum6@gteHI_m*DhoULCdmZZaYaGVSGV|J-Y_M{=Q<-t}!wt=!RC?yuKTvQI zx)9W$KN*eN(V*b@ZQB6`1Ptv6u2z9Ud^ut!@N7fgCfp}#k4?J&LdoOdv99&n9Hr50 znbU9nX4Q4#ybbCb1A?}NthE3Wnrpv!oD6oRC+F&ErHe@YRf=gok2fCTVFckeht~%> zUyB?mI|2$4*c%(#c@wjFe^C?C-)h{H^SO=gn)gNlauhoU5ohgJ-6AVLrZDY ziUqvG6`e?HT^fIxtEFE5s3NUIMdog7OSo$LKW1YQ^N*E1ZNAj55s>_)JX@=k~LcsXd zisKWCzY-G`eYX0mB7e(${q~ECXkgQMo$|-UfUNQ^Iq!E3J@2Zx0BQ9iZXy3GXz=}D zQXBKlmN^Myb+^UZWy`B4O3U3+g3z}&abSDjcoyrH zL3rI>sF*M8=7Smkl&UHSGza&c_4!Sr3O~mDB`PRe5BH+8qsCNdHX(wYB|5%G&Y+mT z;zlxPhAAQwp(wOgE2inpXIq;|zj*f|HVVs}M&ir<>hw45Yd*DB0bwXOPG_mj3&DA<+lkcL&ouWx0Jy*|Yln^xZWp}2E@I)8@J=MHEi)dai92q1 zk$cpKi8IFd#)l==Jyp|`Uki3i39E?-FB7-Kez}c@hXM_Z#-rV@6jBtP{#B;hr`Z;j zK#!&L*)EfcO-7*h(t{nW(u}0ZyT=Fn>881AOU|at)1&{%Ns2$??Wm4~sRlE{8{%sy5GRCffP9+9 z^S969KJ|2{-@7<$YyYnO_UmPVYyE#bf$Ih!Fa{h02}ednotHWKM)==__;0kVw?(ai zJT~V{scdM@R>Zx>cd{}2#g*E(Nbb&XI^FC3pBig;~mFqMiblyJc=)49q0-aM1n`eh|&c6wDmM_Hx?5Af5 zmCCm2!mv1w13r~&Mv0AzoU!Eu?Zg!(x4+RkYudX4&s_c|E;aDSna+n0U&s^|;Hy6KqmLe-B;Mf?&Mt zI(_&?3g~ua18t_KPQ0eZ?1D~*Cv9V*ZN^&- zf>YyTn%w2k;V)GcF;BaQ3uX5sB|NtOy-CCife3&AvV-ZGiiGbc$OQoykK#P@4tM3m z7VTMY2k~+LIZ_I$jE_n`do4&jmJg8mXX-oLqu+u-tdBP*Ba5@UgAAag$slG-X#xHP z2^CU~b%IO&ze#8lBiomqf)lZTzhNTWojFfZ}gFlIdUKrFUuGLjWV zs>?d~Ik1|fdp3y8YK3_u>IE&v>*|PpS#UTL4sU2)0-F@Orhq(%JL$Hc&^j$jDtC z21d1A=fw-7H%Bi00Nf9!qc55c{*C<`#FjppApxX4x1>eqS;!^$oHeCtBFPv=QwqjX zcT2#lssrHoMk(j7Z7e$ReYq&A&5Vqarvp40e50%9wB_0%llXZIaMgYDTnC)f3UrKr zJ9Fmzg(x@VG_e5!9K5wjm}BlI&hfC@cOL=nrcaD~2Tsz0(i?F8JC8Ku5#I&PPQtyB zA-1vp{{F_xalxkhJ;!RVOJ8CkPd0NajIsrp4owO2auE=H;R0?D2xW>HDZ)gL;375v z!vawD4PRv{H$S_o3wg~IkurR+F_JmQMD|oYa+w#H45;C8Fp$PqP`M&ueyedAaq2_(Sw-jnlLAD;?@&w87WhGk#vXd@U=kd)ZTkQ>t#mJSM7qHc z2pxEsA%0YS~b@LJDW&E`n z#hKeL(%D=uh5=i&+%!`(T@n~|lDm{_M*sz1SmwFdRm+}LHT-6jINOIHo`mbPNq9o|Oav#USMUQUD(&Ne*G z&H*b2t*-#mk$7>!2tWbosS5NK0~LJ~ip6SNL|e>+IbrKuZrA!j=v~@glbaTz#nPEa z*>|Ms1|hzQ;TQc&a?=C~4plyDO|^wyuaMA>OITsd=1Qmtu;0SCJ+1AfhvePRlK0{b zpYh>86P+M89QKC8hDr*YS9`mtM% zp?vAORIpN{-*Tfr9UHMK<|Vg_)c~059tpFx9|sIR(wglEWB6Yje>tjX@@M(&lm!qA zxcp9bGVNMX^ZFER^J2>WST6XTaP8pB#L+i@RGo2zq$a%o-tRc$k&%@YIH)x|qg*uZ z?{&8sC7;KYb+dtJ5>IH5G(QKGb0+&9{(|TShbWUWn(F%Nm&~%Yk5_$D`6^}B4Szz9 zIn7A1M;$8sUUpXi+R0luj1z20U~Wuj$F$UV6rK;|`j90;4UaGNFFBV}At@Q%9%S;X zZLTOE(^7S?D8pnGB|b^vGxkb{+6T&Q)z;b#ec0XXdX!fP$&P;TwtZ{I@;?XE>;?lo z`p03t7WiRTlV^E}u*^}9F~@eJ^dlZS1=72Sx%Ii)a|KneF!JhekC_OKL41L)cSAuw zj{$I2>IDOD93@zuUF{|bbo1s_9Pak`+IG_{e^{B1e{t0P*9k3lC#yCdAPkw{vx>$p zuN6DKMDsgUzEuZ&{^O~dKu5n}Z}ahIjQ#!PTn3`oG$8%b01=K1p24l5^_gPBYnf&> zfFzu_*H^sspJ7E1?McrF{32p9H*{lYZfYrm7 z(CyBE%7ZETqCHpLS|)68J8uEfseqEYFvj#3t)}h%(buA-64z=tsn$@gsJch_-HZL| zU29_Jp92_V@k4QO$;PRf_z6SjQ~Ben=CAPVjy^r_o1V5Vb0a~+9EELDeb~PGBdyNEc0JS zzgjgf_wFg*S>R895SYjlfEXvouW?6}L#yQIVq5dCD(j?+uzQD77kFRMvL-SVVDtzIHU3&|UOi?+#$b z`#CZ!t|w^<5tQ%+1ni>%-KIZmVjc|~elci0HDhVt*R&c-Q#g+Ii&J~|`-i5&kGvl$ z(w~byMx@2-I@*)SPP#7O{>+q-R8>vnqKZ ztlhY$gGi%Wo4^V`8?7naanS|ucix6bVI~M~wPCKbW9>i&*&E}|UR>JgETnRWkCoPf z^^$ecqU&3U4T^)$`6_<1MD}=vGNIlQjT_@!){ijw9H02QidaKd#O_OO6)#r&{ZZn` zml7YOPR@wxxl$V+1{)d-fO~=nA*{r5bV5huGuXv44hP-K8Gc8tBzNfcSoM9Rxq^YX zUJa0O>`)f6O@Px_I=6xE_1u4tQ`bn?HWql7+Ufo} zMGGztd6fe0IE7p{L1b0jMpxGnRB`AIB8Lh)e~j?}ejN;7iXVGU3C&Bn8nfqmvS5Zb}uyA=j(EW@ba zS@HjPe01_j~QC$xWmWk{=0lLg^@XKwMnT186PBCSR?aw`va9w zgWxX4>&eGBwC9Y0>G>=hN}RiW{fB?gBJY;xF|rb=S9@22U%ky~T4u z&i0qf79o|W?8r?J91)KlM+T2?FLUREy2Le#8y)DR=DI$i{^kB4mU(Ev6GPm^-hQAd zQ{I)}>wOxNnDOFD3SLy^iN6Hkk9iW;BL0C3ZhF zw9BU71+=p+O)DHSAPiGyJT+}BB)`g0!}MivwW(Z%X|A;`E(J395Jzx?DRrUJl}vZ@ z><6Ub<&>P)v50-u+GVx25mB5S=^Fg|bnfS z%%>Brvt#>eFkAW7(EqJZE0xY^FmzcVHga{qfZ_Xpy?~j4id}4O6gxyM;I@&^T!~Rq zJJc82pl$4XJ%2gTkz1ezD0MGVfWv%OhGW)A7!*3RxcHoi{h(|c$`EQnOFhyV?})a ziNmwjf%h*U3wj+8{31@Ta`w80``$3`vrcfUEdD#Vf7Ii&!zW1Ex{DhsocaoK?tfXDx1vIA`KWxB=KgIf2$d%ikhvcWAfA=2ehW&FhLri?a zg?^W{sNtD=I+=Lf4Ofp)TSgOQQQ^2e&(if;+IJ$dp~F|RcpJzKMY4G_ve`}kzdM_^ zTTEGLR3)U%|E03iH5%-)FaTuiUMPw=cKvX8VYuLG9kV|tHj2`55HR@vUKa$SV%g)R z?Yr2R0y87gD?bY-1ErInBQaeOOsvE5oOLTEi(c*q|bd|T*cl5J6 zRpgLTN`y=uAIiQQnOjDT5N$9p7*HhBUfn;R!%k~OVy1{cFdrWNUD=4J^&3J|jG{ml zOI|Py?SMWPNWr$xkK`6tK4hIc*bdp$OpPaL&kEO(y_O#(ayNsZ^s`a#x_uR7$K0DT ztPl5QtrA$k1PY5xtfSY7h${Qs}S9bUV>J3*qp1}dBi z``Ry3_w|YLIYd8T{P{9PrPK6!vP;7`21LL=os?rsS6!X#^kz- zUZBpWOjR%IlcW5An%!3JYW;wiL9FMQt35b!fv%=h?7A*^L)2K|`mQd8Uu?qJ8#-e1 zhTTJTUMD}#N2*r^yVr5ca0z|?E0@t;0Z=X$o}ZsbzZBxe$mFwj0v4(ag;O|!Z(H2EULS;)X%h{bj(>YPq|j9F8rny*2#@N``jOUsJDxZzV6Fqx{(6qNr9wC z6!U5Gtg&Wh`F~}cOcT`P`=x%HOEd&BB_KZMZ5aNN#v|zW`5I<^5=x6RtpQzozBu9j zduQbshPl-c5sqsjX-U-sBf~J`O!U>-j#q9}x)J{2Yc-XB_G3dO$TC#TV6dOdvW79n z$Y~AF8O(Y{djc&@JG|)^ta%e5}#58J<+H)iIz9|9EdaEiaMsqa>E3+lWtUCS8;Iu=a|NQ z0NKrm$fg#iX|}f5i#X(3r760;U;$yeU`788{35RzCbN#HyBt&o)@KVo6aOvA#kC?FAo(XkN-!K~(((Zu>_eI&Xj*zO{5 zE*a3Qgl$^EoG&9c!!i!USwUTS$yhj--mGCrY2FgD0U$O&3tFgH9NK!QE?G zD`i@1$^~xmqS~V${5qH?Cf#0E$@hNz?+)gjrtz;!O9@Qve`tS^wuW=cFuf3J@>)(Y zG1@|lvsz=42wU=W4{z<~8dkfDAV>5hjf^!h+4TUrB}mYzdl}7FOgp!)Hp>ADk$!U* zyGb|l_m6O<$jmN z2CdmjFPcjyP{!@Ge_fQ;!-cEy;`M`j@wc~K{Ag}F)QSZfOIuaN_v(W??fh& z$065e;pIZ-<-Tg3?v~j>8^Q!#mXcCcWM($84Pj&q=kDJv$w0pqw+{26yhyD8pRT>c zN4Y3cgug*#!pbc56MlJT@{m#ZUYUvqwEt%MVC zbMvhfX`?$F02@X3sbYEreRo=-7;d%<2`1ZeV`=OcVj|m_h`^p;%;REKc!ZxzUJ&FQ z1S|nFp}9@$fUk4k|3!7@hPMc$K(OW&h?yT~xQ1!Q@N6`LFCfzyfOmiq>y}?R_|L#Q z3s*745IF4}$o*TP{S8wVf0Ub8)}b7q7Y*c>$pTtxCrD)~6z+7TC|ru`vg&u(@Nzn( zV%l9hR)=l~PgLap@so`2*4z*sZ;=I5sH!&j9>oT}HbY6_TRyeJo@kli za$CbkNGTGcbH#uZA)a&^(}=<{VhqOnh|lR>Dp*rXz%&no2!l)St+{fpqG-Gyq|#0_ z!YYx);As&EY0>+nd0AaPQMwlOPoL*Slg@r<%i@LAV<+PQ0ot+7cT2JjR>OSyP5BWq zQJ6RXLCaR#hd#(m6pW*6cYsm&kKG-G%xe9I4~wtkgU{h0e&GPrZdwzw=TJXuB(|d9 zfmvpm4X~k-4Tefmvdd5OiC(y6<&C5E#u0fJrESqL12o0`^#!ng>+!cpUT2|M@&*=mv1kE-?C<^+xotd;lBABej$dB=iDlX#dewVyz|B`0qqa1$+;aT zsqXDURcz0d4em7()UCQnmI$QG?Wc99*dr`-td(oEe^G@Y#n67LGqVTW(KsW$y^*NV z3Sr@*V)NK$TToLylHdpXp=i6Y85Ccak45bsGdm63s45+cJ5{oPw;~Pc#EH!ncwG;) zw2LE1q=IQn$J)Mqg$fY`|28&{FTUrA8SQh@6Nd`xi#hGZ{I4r@eOveIxkK>j@)gtI z6C`c<5C-^qg?nL`9r(P^Dp2f2`22C>GuTr(!`AR$yAbtR&!6g5fLo&}<_)ZmV6+Hb zRL{%@j3&^hN9P^XGAUp!9N&HGSi7(J@?2Qv{j)4(DVa>DF!FN;;~b0+9Ka_=#x0>i zl`)oXi=IY#WU(M5g0|wVqVoH9%Zhh+lB3f%b)?NLou%*6GLbFzRwoIH=o}xAB;3b8 zoL8iwlHu@0c0p6!edkhsu5BNM5iz6@1X-4`o$~v7ZKFQ2zEAQ~5dLv}s6X^DbRK=Z zCGie5(TySE+c*i%8&lE|Jc|2<`&{m>!Z%+Y23X%vM(lGeqdSk+MmiFf=<>$f7};Q% zf*>Y>VtE)lm5&dV_``hXe3i1;UTxVvJQ>9C+Zdi~o!qD-5GOe-vBCeqxXHk0PsR2> z+=|xTh=1^olKz7~>uM?P=)!_%H<`($m625tfj#`1BBYt;s^WpJ`#5lLID7qHqpIKu zXn-UF@*OO1J!wOCr2CV+leXCH!&yce6C2ybVb|&*yuV&pMg)%%T;kz*N}b?h2iMe~ zTC7S@3@!=!l#nE+&_TcZu}~pYK)#0WZ}RT6wO4gZ5oT^H^$=kwBpiolnLw@kyHPrg zPH_ z`=w=RJz+9b{W>lY9TeAD=rEG@#QHP$wbtJsl8aey`;DuP0x;9>C;wLFd*h{O2P6SZ zW`r6vKXf<(M)5wj?@zCucu|hM7|K%nv?jvt&Y|$bXipn%iM}&{gHjcKO`sSqR35UJLCgIWqw{C97@2FU_UlydIfeSe{GhsM@@T{T8zA;6)W_u+tphLl)PDC`*FH7z6f@MFHwOf}Dla2hg_0 z<>2qUKMtb$<7=e027})&RfCPEu|~swaU<1Qp>K2r@Q?2|S+)5iNy`Icsika~r@llE zSyK#b8o*0`z%>c)9h5K<#+ANz-u+fEMY!tW2{5Y@lX)BMf|J94BsH$x@d(aq@VDvcZ!}+1JR*62cLx?jfz+|o3*JH>8ReCQ&o6TY{^ z^|rDVdo22_x&=6JcQ9tOG)b{7l9Oyg_SKP7KNm2qE$F;r$iw))?q~+(*lX7>SKvDI zKNiSkCE9Rgw$;SM=)9&eQLcj*t)qBQfxWn$;oS@c>(0_u9Nho@7{X#IB9D*2@Q&Mm z_jCnlITwQWMAngj)a^fb`;#~G^dT^wv}L)}hG!ji1O#LhQQ7d!xRBirI%X7!f(o}X zluEUZ6=P#3D`Myfqq+K>B(rX?85wNJ%_=g@x~Dr(yQGPVACD+L>bCak*u zhUP=Fg`$xAS@~UI9_=gr-Wec3wuy)d~fgW@v^$Oe+t2cB+5{_2U8PCzV7)e8#_1W+llA|=R6e`Wdrzq zQ{SarcP;u{dk$CCt-QAV>;MQ954rxN{K!Qg^z#$)H{y^FCFn*71vrd(c@o$ik=%KW zFP~)6@|JN=_jAi028Q)}@j%?-GmnEPU z6MLKAaeS7xEKpj~KD$rA@&4|e70Sp(>@;!Ybez7+U@)Rd;j4lkjdKiuMNw(%NU+X` zG55PEzwK|J+q+$_xZ=yJs1ot*cT>f=q4;=m`=g85zo^}?L-1BBetr%?@(LQmFH2Wl zZ_YVssH}gCp0S^?5{H7MKzO(kDssezQjmjl+3uh?P|tCoUDPhQ!Lz;U$qJBjz0K-r zNYQE!;^vnq`L&`!rI0}6gWY|pmGV_{*c?;L=h6e@`&V(NTk>=nkgztL_HravYt*-sIL=`9znhJ@LyQOf(&prv-L z{Hd%0E#t6RrMmXb`u!!ViRX&TUpU%jaliGC>u1%NRc0e-f9C1G?q|jQ7TByY;n7Q7 z2@~A=i_XY{{KJ`Wm#64gS_|La3-ieN>X-d4hdxk)Q=LpE`ZhjkE`_$ax$>V5e_@61 z1+&ec7Gt=m8Qw|>CD)X5TycK=qI;KdLW}9kxn(K;S>7bL>S8y2$e+f*fYF2d!jg~+ z4|sl+oo(3mqI=rmIz$%v@FZRW$aHqhP8K>)K(*Xs-_J?E&g2A7c3`#7Fe9!wYxe+~ zT))rnFeR(Go3QZ!5*&P+`eK@h1{ar=(McJ&pK{VR4t!=SY4xq^SpsqH{ ziP$Ei=BI1#^<812CrBJ@5z@sSPIFFrjY@8RYPrIo%iY6f*1f~F8>`l|yR>j}*t(Gm zf@uA46+;^ztvh>_CSp5A2}Z?nGIA%%M%_jxx%w70(~G_%J5Ac5>(XAQ&$;z_z`EZl zINf?X%f%}vaqj4VP1cG;%_^MwiV*7yn|0jtK35{8d}|VJA(X=#R)|bt($M25aKhdv z!M<0Vl?^$}k?^pB>NC^tepOTKQ^KPlpZN85%r*#%(0U7s&w?mVB^{ATKn*hBt7O8T zzp6}(IG_m+&Pv46uRzkPX!XtDYm5o#%X8LiGfCkBLvYS7WN*n{WICh!HN=L4+dq}z zaYW$*aod{uL`uK+uCm+6yVvlVUel~k*BR@F$yXxHvnp<{J=PtkimH%RPn;SygJ04e z8UzH6C+TbnfFbE#Lsk%wHbvf~}K!NfK=@>J-3K))bksAFaYuhoR2O19I`X_H;1nCFF)g=$tlaP8M_3$DUD$tr9$ zI_a^H8HRcP<8cC_JncIphK(1o1S{fRhn~;zxXiU1LSP`u(%xuBc36jrW&HNmv+mh8m3DT{V@<~ zx&>Q(9#G5CasH~VSf%FrCM)kop=T9Y`tP)_<++F#U%R%mIbrM%ksqv8fCs;7U#v<5 z=|h42*=VXR$AlmCtZKM6A!Qat-1S}gdgACcfK>I9wT{JOVWH-I*e-6k9TCfkE>vHZ z6~6LG_kr^V#Et9ZC#~tQ+HNX%EHlB8kVL~T?x*)BdIt4Ya1P%rc)3e_U)}|tPi9^@ z-^7MsmoY_#fj}TJ2XF7kA^p?4sK{xNfgTb<)%uNOr1(zqm6qR&%BkVn+en~?oGTXQ zIC?`kg+XV}SKhZj&>(BNrt%od=|@zxkY~bP#O5R|U(9AL7&QV=6x*^TjT4KCs9awB zJwK&^_x%sH$w3CeW}93nHYo#73+QjAo0RC#?9pPo$!Pk#E#NgN6EJS25HY8rn*8s{ zmPu9YdkeEJ`)IilD_0AkN7adIpZLqPxGZ!+kDBb-=7fys&5=09*maA37$n7xAJdCJ zR}6~{5%}`SAm5*5Bl52rP5#~eD_j?2;CxMi*tDW~|5tf8fvRg+Ma(4_Z~jZ z!s%IuBQqM`F(mtn2T(4E+0y>(DKBWgS;2jL0uI z50j5LYQG!Q0fwt65)Gr=M_~hCZNFKts%}|%uDfzD8(@ zWHS68EJC@nDXjMO zma=pWDQUhCTCTK919U&wA^0R3m?a5~GpPE05(Ypzoi z$*?xu#E`KMVW{~@o3EACewE(?Kga5ewffj|tGz8QvNp$PYQl#F_beYvP%Qfr#A2k( z?0|Dtdu`Fu#=c?n6P@qg*yWr9@Tn6%@Yl=vDdTraH*b)ykDw1Cu4GTY#mqxV4;kXSeVQ-#It}SsLQY-iPmMFgT_G1I-s=ohnnh z2fCwV`rT2Wvk}Jvu{NFVZHB_08{H)J+%s|M+1Y~StM(2aAUijZT?5FP48_yo!Ov4mIj{b5_L98Xn!$^RS*c7rf}e@gik$u+_P=z zPp$}6O01ipIPgDo+wh9Pd;Brk`Uy337@JqT)-Yp<8`4hTu%bu z^?01F)^8gUowc53DAJxz9p@z-RfMGA^Li~?M=5YRXhV05f}IHFXw$N$(zY=1R*=BA=4oCLK45g z_Qpx~2_oc8f1w-&moprqEw~1_uezUe4^m@)uN=N^7yi=0>2n78E9+a(KiI_`G0JV5 zW0DkD*PomsX^Bt9|7~6=k8vTfay_tofvHwU+q<^8Q6gzl;_JMP!|7=%4X)2*QaDs$pNXoV>M{4%Z0f9`jP7j5@F5$h+r!8VxlX z?~E(2ZohC;?U3*2U1SSKRpna+<4tmqEA(o2&Ful!?YVWSl#;hiVjs*6op+m-eII@j zs!0|*>JT9$2h&|=3x9EDPciYYVb$oQ;atY@y*v_KHbQh9IAhQqiodsqc_IC)^MHGt z7Su|Z8>(k58nG)mmKT8D9GN_kH#EJ1vf*$s^1?Q>^e-8sGsuN2dAAIVmCnj=&T2e{ zzdw24%IyQ`YNlkLp3XzJmn-MfEsFns;E1MHmphc6EBKm|q^+#P43**MK5NahpQ}`u z-97-`x3i7578n3x)XF$rj6@wOT;8HC@<*C@y}Tng*AC^PW2V*a`H#_Xe0-ZH+)gTO zFb_#+f2sTl$7A&WUcXmHj>e}Z(E8L?b&%DL_%K<|MAeZ9uBVcDDoFeQY-Ons9VXm! zH5pD^&ivJC^*EMiDTsF3_a2iSU+JC@(}wBUa#y17=e^6vTyL~nAHKso-c zO0?n#=#lOE7?#wTtBPD=5e!b*RiYA@T<8+y_?xs5^XmHRnfs^S`(M3iEGV$&Pb=vB zYethL>|TwfNo6_7*`;k!b-u6&m-PLn0c9luzZ?)jrml7SaQEs^=r!<{X!Ro&66Yiz zYWQy7K72s0vo-8L#1U_-y$<6`6}2eoUNIHs_yP*`69R>9CArw=@$3#;Oo6}0T#7zT zPf!pggZI>s*Pqx+(ni)iforcCb?c%G9)%jIAw#%#dX+MjT67bD@7Zp{Ub$CoE&^tb zgZHWcwFGOWB3^UckD(>jQtY1<`KI)nx&^H^a@;9Ti*sb3;`gbQ#S?wE36BypcCQsb+m&%I1#J^0|)TU(1rIWFW7d zl9Q9uc|hAe?f!gOHp^=GNLU{@(Ob^D-pd7&rs#j$OBXNv7I*xfDH7F}DPPHqB};Sr zNTw7wlrz!q53{`26%MFJ zEw4{?6ClUKE+zE|sKGo#2x3wn4L#AzLSeB#1R7O6B6bZ~PR+y8eph^_*?r8q<6Fr6 z6}K7p{&qyAe%^K=rh6tZ>;q~38QX<9G$|TDH0sXqzs$^OsVa5jM-%NNDhY&ZPdel?%hz;C9-Htzgu>ZHtsubw!UQ$zHb0Pc)w#W)_ClQ zY)!WjlW?Psf!nn=^{euPKA*B&L-4yI_7=if0G!#U=yYD!9tj5z@@tBr$D#tB*p|kw z4)j9e!ZN$bDsI0i%~abCwwIzW7lK?*H|EgqoZ};@joK6O``d^!TmDrH{pV1g4OA_E zK5wWY!UqiB0P4e0wcy+ny*j|>s#8Kw`U?gvBVdQO|4P^bpgGgbcH9Ys;@CQ4Z`XXj z<^#&j$#@)gFTW)RoJ6Pr3P!M}@vbW}Z)2rM3-JF`bjX5y`VCxjkFj(eQUw3xuB_u5 z(w_G&Hl%T#%lJ7ON_&>#>!#d-&=@}qnkq&(Vs0Yv-LynC_E2OEt$8sXJ^Jk!cP5-< zkbR$^{FZ`QnK-YW)kyFV?t;DS{!Mu?c)1;Axnw)~&8aKzIl38^iL7h)>f_wedA*6c z_`Kk$i+lH)#K=lY_I?+5GUSOi2Kx;R`C6QR(^|A-sd@X=N~J7oKN2> zePOBE$vSsg<~e-g(x({ui6Spbv>Gq9{qrDeKm8z5+L{5AnH>1{;Na2HPFUTcw-HfTyW95B?gKQ+hsSb_!1k%t zkYGqwhsht}*6bt&r&9}gj$xDBSQR|NRIV8mnbm#5hE-x_P&k^ztNQBf*xB-D39vR= zr9JF5mckk`OHF_*p2MEf0;ueOYfGXbTgM=uq*x&gISje6IaOd5Phe-`BO2~R?q3ni zx~O&`H5fM~C7l^_N))VPF3C-s@$E0=$?=9woOqGQP-zcb0`Gra?u=O~!q~yXD~TXA zrM*t~F2GgJ%J`F0Jry@@Vf4k`q1VLDL zWvi`-WPl|?S)I8V>joCE0s`+sl-r)ue9l_03%O_1CxC-lTUm)LqhEC^^?R!dCUQJR zXWAG}$JSlcvk--bJyo(k(=D-P3!AOE;$l4O#85f<5-3Z0>-O z-?aO4J6{05*;Fer@4E2^PMiKzfxkS*w*7q%SX3hWu%GqWX^A9BD8J#STHsf)L}P(4 zCqn%sqi$8?A3Kz#J7ECe()!%-EkNZBC!V@4F^DXN^3u?l?BZ}{LEe`9k{}whrqsMR z_`W*0dK2|z;&Vi@5?DOIEvL8YkLY!NhYjreP!VEAC#uHpJd@rEtSBdfJ6Q@fkaV`c z@XHkMA36TBb*<(JPUnRXF&Lx_k!eD2mfksWw2%?!&NFO`K$3^nTnl;Bm~#oV zQEB`JS5iAi-(f!lSo>l zmrO6JXSqz&fy7qzT(*LI&gA8%L!>70a0mZRJ$Kzt0rDqj^fV{deoRQQlgf8NolQVp z_hl!o9yy)s@|V5$7*HB!Yh5>Je#SFfoxYO)<=#}Aq96krDY&7aVzmXyo}Y76gsXi_B}-U zf-}iQF<3yC`SwDu(p`^z!iCua+c;4G5BV`r%M?FoM&SY1lc4^1q`Y%zS&cerU7hAK zKpWY=`n5d(eYuydyE>Q`hvgTQg(i5j(YjP0!IF@K)&T9Du~O_G%u zLX+7$Q)khS3*m}%jHD&Q@4YI2j=3a(rfBIBNpy?8wjeQwaP4UTPPel*cIKfK%EiW# zvwgi)>{C^{sZ>4Ns*_V@78!EG3{^3S1IHk^*HRP2%FR3jQAykqHGuj z^)D2bqO=i{{udPb>=s;tzOd|v5(k|#_dYzdMY;OVW9MyFlzS{?CkkiZ$?zOsr zW=y+IasK`jKssgrz?;H`6s$4JH$Tj;M9XIzs0XhRJNohOv&(h+9`~!l7CyD%J!K@D zuN6(GBgl@cNQAk3K@CatU-g4af}YM8X|3-dX<|@pMt&prk}jFBa>w&uTs8L9Y=k6G zq=G@S`mSd6NZJLvA3id<`qh8TF6B4suo~LkH$F*Gz~>NZp6Jz1h>rY0HlY+sRerY+ zkwtZN55>EXmyw+_(rARhspxVfGx}wP%{g ztfnf_-wFAuRB{(+(FoB(J)77PmA~@O+h%2ClohLg*zDmjKtVyt50(4Lzd2NO`i%!+ zyG;2$rn^4qoIQtb4R6607dg=J2g(p>ypNOlq82009sHTZSIz6q} z=SeHB&EC|o5D~Imk_OfA89>AZu%#WXZ8g-P2$ePS8*DmePBa20QMl@)wz_I5i1Q>_ zFh7_pc^Bkq*3zxOvXn0eLo2DEfsoIJig>uVGH92*FEAI!(OS8HIh+Un_9ZB7GBsKg zU||>c_nS-3xa-j`tm2GnR_movRS=EOybH=)f{=U4-!|z5yJ^D3A&Lo^?ug_hqH^k_ z{(abtn~Ax%U1icF=~si`1qHx@OmzF(5)Acs-PxCdXL@-rd1Q*&8U1rHFGfA*+zESf zYc@so=NH}Pm+a=3eh!#q4+t)cp5~WiQgyszwS|2k48E^E z@0|R62FHcP<^#)Yd|{Lv?af)v;r$xn-+RU%#fxOdHmz%e`u-?Vk7H`{NdxgX33Xj_ z$msDyv8Z~#-Q~PMjBPu37F}hT{o9r9?;ok^oq9IvW2%k4p4I)M{&V zNri&z9e3x4RaIKFc*Aor4PXeamUw^UpHYPyiI0;^KaF=a!}Pk_so0W-;V|| zR`}-0S;p|~@zR({D8FaYClC~odytL|R;TfTt`S61>YnP{30}_5(Nb3*_OP@P*60>6 zX~^f)hXnaGuvp6 z+6eE>WU7y-k$!@VK)}?KrLtPU6sB!YD$uz5BMKI!G<7d5JG8lpFNz%fD!+f%n^8cX zNfS>J;ntl9Vb#1a$ewK>FCW$s-F^(uiUGhosZ91Ig&l z=fLiu`i?#g_Muc0_tw6y;<7UvOz{bUHxn#h`fy*g z-~bJg)}vmmH{#j)vTn>52G^V?XeW5&F&0G&IB4+4r9-G+Zp{f4}eUz``9_oST{f{ z`#HJr0oEP}B8mCe^wi$CghV0aiJ;Fr)F2qjux)&O(qz!Ye<{~w{cr6ff3*C$8C?c_ zm7dh-oJN6IdzG4EKS+>aQOE21bY2&1=IsV^?9j3I*KdcvU1;}P9);mpA66>`8pHU) z3HTwrK@~n=Q0`D_=|)NHz(XXk`9*NHZ4z#lHK1UhPCPdX0{8aU-zSHj41i@ zb_}+EC_5NR2K1oPG^p7`Y1m{l7UdA@?~6PTZiIaLODRYs>4wsd{}J2n^0zs35;CJ{ zaK5)~NPR#HQt$|4%dWor1xar4v5firt@1RbUAxI%*RO=I#B$F}rS+HSr9h=0A}n$= zFptL~pDj{0$)Xl-bGjM$-;uF3H6hy5Wbq#(chB~>x%2kfBDd@G7tuU~JKj2f6f|}F zOQu!qA!BkDgI~55QA$7RkBu|2=7eFN^{(a`+p0DnWnIT@4OFb;hOGR5|JV1O&f0RmI4qh{QrTfzG- zS#5o^A%_qdFoJ6~^68tOSMxlHf(3G^h(ih?BRf|Vdl>dj5ALl5?yAL>Jq`G5dEoaT zB?@pIGrRDd@$jWa@N$FXW`q*qS_`~Rob(Gd9$@}nLa2hBOFBJ$+LpU$MHhd7`4n7Q zu=ii*O+bibv-imwdY`9CkFLpkrUJj-MI397uig5Xkk~~R0#*HUd`X*Dmmalei+D+2 z>eSnDaD2Y_(s9k{4kl>Jt<}kM3^rOnm%i^DA7@Lb*}%;L2q9p41T9pj^T#J1jHTa)0s*mu^VPtUHP>D)TwZmuo?@ zlT?Zm50K!o0k%Tamg95bDJImDXJWo>drm4#LX7%|uR_XCN5+rF`i#i$Sd+P zmHXLJDyQjsO9l4&!n*`5tA@QStQ@nZ+F6nkpj4uF*X=7(71h*l*;(Q=gclS~yMa!Q zVId`VyPZ=##i*3-w^-NQ$hD*??$G~^D0NmGTT*~|R{}6v9+`J72pAj3TmtEm-**BE z+j?z8@s`LO=2^wh(-$RZ#dchtG?v0FR}ckka~GFCY*CC(Kh@uuTxFD;*#vZdGkI-A zh7BiXyIB66(XLiD{e!b+URhuTEcrJ~faW@HMnU)Hzb8LC6$3hBy*N6{KR6ilvw=B> z_pg_9jRo)h;~6aN&d#OU`y^V6UihyrCcszrXUBRdwKUr2q$O8ApLhJ)ztA&WXW7H=V)kG)d|TryjA@0{d0`gJVgBPKLP4nxc@xJwxv`hCxk9pJv=E z|Gd@g{59F>^3UU+VWl-ED-*zHj5F}LtOnoBs#7+wu<+T^j*W2g$`f2!Bm#Bhzd7Zx zjlVzk4AHPrPg$6e&;1w3((*DkpP1Vp&zUUm%Ru9~@Tr^J>O;FLQYN|O5Zl*?I=5Fw z*Xw?v@M&SD!zFiD-w520;S9#P$d)HD_wgLNYMACNEKY-piZ5duSwE|b?&mH%2BJur z`_X3|Hd!@HM`e1qDAxgj#(Al=lt4UfjXOxwF!?dOKQy==!b<-$3j!tf8#QOYr2hS3%7=O1kg;xoQF zarYbReUGy~=R2<$mYu6Gx>SVki0NO|6q1q%Xqw+~hQ%THnaFn#jYUE9ULU6Q7MMny z^;PkU@v~Eu_Z|O3ji(1T8`s_EA6j)gbtu0F<|2uG2{>PyN^Dr|ty`841aN@wR-Dh) zJW71kMr|d9Lom2QM=wbD?EErOFauzFAGhaccUSxzmfNhB(If=ig(I--ar_}~e>xIHu2wvAKN6zPa6u<6%cHYcxq7rMB~8>)x5q@!FTB zu1Tu({5rs;M}SWApb`E{3f=d%EsqR%f4F9kmggWm74RA9xXc%TU-A4SW~CdmCVeRz z6SoHzt}yZYLB2GlIEeIS)0q#dZ?!;2!c8A@pE&X1`D&MAqc=o7gq#%Sz+z=p@`{6D z@GWE1*{=cdX4Nz50#tYgXQvrx|9Iml$jK2;xbP>ecVQ^^m&Evx?4_;4wv*lyd2in2 zd%SlSCeieqc-mdgWzX{Yp>cbjsEcRyC5zn=6x*%BBl*)vE@T$DlxqNe9^Y7Palsh4 zKg)^~cj)w6q1m6(lS~YaH&Qh72jJRfgQVNGSvvnJOLBXqy}4^e)tR)eG|Q_ zm|uZblbYoexz3mHX3QSpnd?$i^6HiU{;up{?^P{A@iR^+-~#Ag65Wi~+0a2s9*!X7 zZ?Cesswvkvp!WmVXj}loRQF3=?Yur(1l~6REj&B>Th{!tmBU(E1S9j{LGcSNP5#f1 z4oZrO?aZTfakFH2+=saF|31=vZWmn1X8nu`DV{8mFZk)01w!#deX~Ebt@^8KJfz*Y z^;BN+@BR-TIDhkLsr7iFS@R^=(~Qpj2pW#5A05W8E~&GLgpvaLSps!*p?J+C@7D3c zSt+)*-$)v5s2l%-7qw*S*%Q85JHFhV>(E_-Fb|D#;8y1<1t?elAlZnKt@6~ln{b0Q zx`^ej#trUbp}Tr}zm*e~<}J=5p6K0rK+QHFVFvXw7+ln^0T*_HtXeVC_T%Bt5b=wO z!_v}q>!xLu6b0TZ??mr>`J9C*md|BO34>qb`MExHZ+zWZ!8l~5YJW>(=Q%vvGnkv) zFGOt@4OC#)ylY#k^4eSsoy8R8*Bo*Vo*=Q$2bg9U(#5~$Y^DwyJ`_n=ja2A2o$U<| z4~vdlUY}pQDu~J>gozSm+r`UIg#%5q)E{bf)eL> zzzCD9)=jdoJM~QYQHuRdR#;A5ch4q@eU_1_AM$YQklWDn<$FfE(dK4|UMI!hY+6Qv zGF+Sl9nUf)USn;{?P_aGnE2bbf~}i4v(j^3V$$FA3^`+FygDTE1toG8TJz_VW zhVy*3d|eUzE?!M0d_GLIlx5TmZu}oEz%PAG`OfnP8Z=`~dym!CinF$Z(Ht^$_XvLt z*K^#Px`H>-nspPiQc%*OO#Vyd@Nfh~QBkooz|^_V@UTIV*kU{J*DuGN5N+63_;%v7 zJ)P0P)QLSQt2=9&k_!dz=Ma|X0<#}Bxm5@+FzfXs!w)5QnX*KzXOMC@3B^3eQHM63 z8lq~|DRBpDo&}!|g`* zHY#6WJRbi!cErnCK#y7?eC$Y=MPOJ*s*)ILa}@S|Q8xcdERCItPkeQPQ0O`1kl(Bu+j* zc{}oy(VJ`FM64oh7~Wrgu+l_Uqdm&U(4=WuC(2qD&m$sNGjj&DQubkRTKMbMzw7YrNPEIXnW1v1weIQ8MjLE!EA#iwf4!J@E7eAPLa-^UDp^Mp@@9(IM(r(y64uM~)fhHK6EMRR60k-K zu+)vId|x)UxpZKDfZcHvt~9B)jl2vsEVCdJM%9zgpBBq=SAA9kAJbwrHfeS5lvY`YILKP z%uWEVxcmk~H$O>b3OOLU4TVO$vi`(JP5wBmNACxhg$1|Y_S8?DgPw<-Fjnh;njtL6 z5+(DyLenCHpHnudGz5e}pC7GZP0Eq*e~wGUbsWz5g%iLGrV-;_uv|zY1C+EyR>?89-6k*mi-~T=OTXrAjd`-+ z2koHT3W27GtT-gt2#f7%Br%?%#$$sGb|ytqeh2stn2X#kR$va-#d7px3+&_| zTCbn=EC_=pL|uWRVcv*2+&^K&N)9)9wL7sQ@GWT4FX^SUmiz^xa0B$j-`;Qm08+-Of(qD7J?J2V?XoPcs ztwJzTeV`l$8&aBfQhM46ymUq7_85Gm?AXJp9eP;q#@e>ZiIY3G?8RPYxY*L>9DpFl zC7za{{!)UgM%xEfhq*9=s|v9aK5+_nqUAdIb6$KMEZ-_#s(5y}FN=;BB}!7O(kiEz z)jKDU^c@n^n-{W*?nxp9C^9+mud1D!g!s~wo-)o}zV=L6V#yqZ-9|&;&^~*E!_4oo zWI=tSk5YTB`73PxQISro=iA)Zl5&AXF7}z&dEm6~MP*h0u!2@g{&H{XfS>yqxgpo5 zS&ywRcU{pFRTczR{I^~lAmAs>a4&fA{1=4{&OmOG+=NLM(>-WgP}aHvZYY^sKk9Gh z4cR_HaeJ1hxyE1ILHygrwou&Xxlb$)CQ<&CFr3gk5?@4cBC)tqpd5(7Xzc8KaFhId zlO9OWU1d*9xZQ(V4@L*Y5KUv?j`wI%-YR^qeF8rBcng z(=kFrVX^$Yh59KLd3)D@!EuuHG)@AQNVZbmSb?+Pmt^FM$wG2b8q?@Ua7c)&$s73r zKK9Jj(Y5Qt&sck)>nw~43`bvT=PR4&+|I$t`#S%dAuX-gb4#efMK!EXU_FU(ZKuxQ z<9hdXU?!d*mGH8gcqhYV8CRoWyg&{CsFd~cR9L_F`LgZ(vfIrI;P&3KJ1S^mTeeuV zTyktkUb9O9WZXw=JjE`o%G)iW$L;*+PjW zU2q?l|I5F^ZHz$cyUTpt&cB`@-;|s3@Z7LmV?WW0ciq-K^5vFZiGIR2wH224Y@N{S zi9o+@;Xqk!N;26k?BR#XdmR6D%La`&yx0}@RWdj>?YPoYQuL2!{b=9L`m~F)G`-ls zRee;Wi^(5 zq8kKsH5R`&0Q7|eCE|r>%AuWA4I{_5mYZ2$PPI`EY2VlsKgn0&g9-xd6)6l^FtuGl z%J479&4l6$k6xRXA4Q6fCMzw9wJ-%58N{}4x-NDT*J1q8#NA62#)d9QafTl}g7#tf ze|C+UqYh>ii059ic~rkG-%=GvsXnhEy7%$D6Jy0w_h4EosILd8nI|8UVX6=G9g%Z?Y@d3jL;9<;*v zujo3k>2t!b`PihoYUj+b13dolw?E#0D)mWI_YX(+1B!?xJQ*SRm3${hM`4jmN|Hel z+^w+t{~G(suqeNvZyJ^sq)T)GDFI385Tpb_x zQ{9mU$7&EdW15ieJ%)fbqe9}a+;nuxergx2j&c2d%rUR3|3VE>z05;A(}4L~CpOp8 zP~Hf>0BZlLIQVuAa^*NNcNRSID!35(cxDVMki%hO`SJ%3ZmXd5;4$ql;{=zU& zmV-Q4^(IvW9oynxIjAdnnfWa&9p`&EsjR)A*ozmgy0(7@XJ<1vthyXcgKBFi3%)CU zg+E{37<^EknyjlbcpV^-AY{*wtrE2^|C}335qL??S6x29hZNRUUfK+QbWVwvxv?j_ zHxFn2x7s=WR=4sN%ViyAe~jkJuufnxR^%y%x7m3xwX%*5|828H>^a+=l^I0tgI=@_ zsbRiJMTP|Zw)v+UvlETQogL=b9C}?Cw$m8+fg!CVydvhWH<_H`rVgS3MzR$4mkxLE z+_lbl_+}7|rw8|2ca1Vuu$uqP@6F93D)rZ|TipDtPlx3-?4bO#pIK`RfJ{u8{nxl+ zQT$^?5FUV9`vGzGp3IU{z?`2{FXK~R)MG~i`8DEKgYprXVzMsnAgn5t!R5Z|BaToP z=BFB|IBzc=xOXS(tv44#CV7}$^i$_d%hz*$PS^!ySWQi^vQEIk?*CyL(=3~wS7%?+ zv@^rUg3~>VM0ary3a)dAX9na<3OUQYpQujbG8puAB$#_beq4QNZ)ic2x~<^x9oBYM(zGOg;JXWz&WU=q?@`<>yyNdPIYm!M-Mi zCgn-%zK=F(*^_mjQzcZK;`w@t8`S)6_7fvJW>hj!Tq$|iEcPAhc8ig68uCcm$Pt4w zxoi1l+;6cNDA@+t@%Ll!9Q7ye>vff&Vtjh#UN3IAvz@?J8gLd5CCoNHm)Z}($R|UE zhu3^ahkkrAx!V(W%UAMylg2{_yA|t3-rOE@0)c(hiUYx}UnW)4=pPih;MZ2!xrz>% zaf5}}1Vh%&0A;W7@5HCyysgX|yOy9~dI@o>Fkc^Ldh_X0 zYL{E2^Ut~CVxvH85`H8PT9ILv7t-*v!upz5p?hmh*{0D3etBx3SX6xYryA2|3A5dY zCvpSyaj33KPSxhBm5r?elGLxLgzFHv8NzklXdeuK2Tu{Zp|bws)mVI3LrC?y02%Cc zdQFR(c--Xi343Tc0IR99O5WGSS2h%0?F)wF-=bfyrdsZ?X=OGP%jtE(y8|@O{Bd}m zqbQmYLp5iFm&fLc+4OELQkmpj#0PcME=ITuJ;Ycr)Ngmj zWCxq5Ua{}l3uR1*tY=4v`B;>U?OHcIK^N8wcfs3?m*I6xS2Riy(fxRd2$++%;g>#T6oFL66|)@ubp2l05~N&*ZjYlqS^~zS8*8Wu zGZw2=L2o0OrEo|ylB-ogV7l2v?67sZ{|LVAj_IGnn|3Al+EiS=wULec3JzB(^ z?&9}oH4bm4_v~+QyL+PnC|75(5sE`06-I^AoS`jZCCmOow`9x-h}DG`?6UY4?1Vv~ zPLD7{Jd>^B9}JNdJk-=t5(O^80gz<9)A_e5-mR1jo6a#2`H+1H9RBqdg!HyBRlsBK z7L=>8dHo~o1qP}K9$BiF`=Of6HI&R<&F-^!+uVJJWnATjFt>Xs5k&A|P;B2lZ-KzU z-1EeXShRVp>Y#X(j(>m+L!HF%C3-(jVxY~VgRz}Jh>)ZcG-SCnZ22qhx!{QFL{ zkI$ z?HT@fk?K`uqY;GU7^~f;S8eSCVl0^I%)jbiKDzonDN$Iug%V+w$Q*38Vum16j zH^Rr4aL=6MRJlxMM%y^14fjfERj+LN+jn<0vGu{MFJBsc?CdUV-QC>{`$nAp9DV&c zLHBgin1EgG)CiRSkU6Og7Q*Kx<3*QAl`7|vvT&(Ab7>Pt;xC@)MTO^UmE%9>!WMNY8~?x25sNUk>h5 z1~TIH4X3VG=Q*8Q56lc4*6aKX3F)7>Chx6AlKLh%oV;t?u!CP&YX@WbINvVj3M$OR!8{BGiiKMO%Lq_T$@bq-g8nG zpSs}8o*4pNfAxZvsx#=x%51|k8R79asVrIFVd*1rx+T^_t|NB`Y}Ylp zQN8~Pg=Ddl!xXTL-~~n(0kYUZX0=+>S)3J@)y+c_dSn@Jbd&M77kV?z*@=sP&4(VA zOTla}B%ROaV7l?|b9OarTixm0P#xs2qN1W#aCluddw8G)ceykC$beGG54@$!$#jrP zR`l{wORnl{r2eLCq^m>V%Zzw>(HN5*I;IUd;1!!z!_(c50DAn2@RLK#@@Q%M3)7)B zdXbsFMzQs$uaz`XA7WxjKvZ+{CkvDPRPszNpyKf-K1|DwBYM1*&~4wEQb8AAs6shah^McJxLCH67eCx0HL>-IUJ*pwwQTZtP@;#yt z#vhCtCRbGfvzr&;>3F!6<77wVaFI?JYuc%cXwDP_w*cMkZLe!N%|Gs>LQ5M64#w!7 zPeB>gL|5N6c_MpJ&eQdqeFjBATzyL=S!(OSp4}gYR7`fBplqtsd=fg6Tx6cUP3y3) z5sUG>j^2^Q3s25|N^+c!8Zg*v!Fy13@C@>fK1XP~M$&Sg39VxMB*BBcZ&5;n2R6qX zepWnwfmANK9JN#Q;k}Qa!aJD>IaVbRg(2l=L24Yn>Ut2ZiP5HgmYvbk;Y6>x4^t+U zLVc;re$#Qf*SEBRT&7&U>KJaI7{|IBN*_l(_aX`#ysgh5VF^z&gFh#x*C?*B~n@rWi6bC8yOlH|}2!RebFu%7(3wq`_GQKVl`jG38v z@xzWh7tf6(!g2AIx>1ed1*oT8zGTg>?fo4Cl{SHBZa~C_#qEvALmPhA~dJd zvIum0op=z-#u#&^0HFK@wbFJgSfw&jf)&7<$5ZfIKZ@OdYrEUvZ`Cn|tNbFUQBcH& zbg<@EqVR@lkjUtk9G$RZqitVm(#W*pUBb?6uJM2&j&?r^w#WKPcv0kyvG6U450MLj zL}j`5aG~(0M@%4glTTb1m4SmC;GHoL1+eR*$0t;6f_iM~Bq_JYQ92oO2E?-gs5uKi zKLZ1#+OYl&M!~ZtggpI<|R8Mn>ETay5t2W8F~usH{$Fm4)(bFn-!@v~pXD zTX83@3n~dO)zzK{4$u&v5grtu~LX5W6Ob5VfNRxoq8!{TWcsQv*+NcD$H0yLHf?Uykn41$Gq9Ehge259+v6Ws;P^V zmH%UCBUubo9}2K-;>*q#vw09aK4P0yvsH67laxd*{IuZ52v4>PSaEm>*cq2AnJOJT z$oF5tct}J#db`2&(NEjz&roL)wfmI+%jz`IY~aRUMAsM zW<9igWMOTrtk1kHX)>FW<=rxDe=`uEHTCt84ja3QoW@1s>G$n7$qcIckAhY0XB>ox z1u{OD+d^-PryK(PEZnYDFH-JX85H%@UQso>?c`vpQ_KD)BP(867lM2_u#y`eo+LYR zWm|nEH?E7WQC`;2gYL|F@`H`A&d`;67VC<5e{mo6HPf**S;S}G41kwA#j*x@9?Bm8 z*U!BTCpAE-Di&lWD|@6&cj^oT_H3V0$%6~^Nqv`K2iX6{IKbo(3S5E%H! zk4D9U5mam#_Wh0a_g4I>O>NimxBD1w<;u181Jh8uH|GlnGV4g4usPZ%iLLD~P^4zB z^iz>Pe*CDbnaPSuu{wWhzcZ!zx0kEW4O;VX1Qkx+T}flf9*trDx=u?Xao;Yo#bAw5 zl6?J}zz@zFoJ#MxzCZew?5{rxvS^xB8P&P$5?lV=v)1=IT3KmC0><7Z1F>;)TMDu} zu}%ma_%B3LXfM;^*Oa1HoLcT&DC%+Fd2lone2cjaLdCU=92oR{Ws3b-PL@b~&C;jd zWiy&%SZVzD!HJ+{T`Sr4_$!XzvxyI<(~|OIq>K42`+t0Ys>a*x;9Msb=U6vGm0aMP zU*i=;`km%OEpPXSk#wiiSxy+T%*RMDgAs^zHiSrhEgglEb~#!$A1Buu+A|E+)}*3< zOuoec$pf05=juDP(w7wDYbb-(IIa3-k1PL|Ydndt1AW7K)`8m1qS)mL>rC1n+H!Lt zY5_63!^936u~1r>M*M50BhazZ^F>9!<`#TNp506r!GTP759{|<)(-&ECxw2)DxUfh zp@27T;JS}!|J=n(L!uRvZW9m^yNeJscE^Njde$ar$_WNmB#Nr^Cq`Qv=><*;EQ zr?yNcl_g-#uTgkmqmIss_IG4x^P!>Zsenu2i=K;y^V;l;oN_wLaj|d?mC>hv2bBhs z3k~e;@uoo6n+BY|O*$7}4Y=Eir`|)1**%@1CQ|8EQ!?zE@ASE$3I7RMhXMd>&*ULG z*U2yc^`xfLA;QiA2TE`=O`Gsr9UiZL1dMgsBIp8ZzZy7cROM#!J2iX7^mFY1Mm_o& zC!|Ilye2BnleNBlWhusn7EU^tE(>B#ChZWlf88`U|EOTrLEL(GL8_+gY4lEaI#fA2 zDbt+|4T(JQtDbW3`ot%!XJ1}2VJ9q{@fq`xarU~7V#2uMe|B3kc&e2(mjv|Ln4pVW zz;cxXw(`QL^**xX^24MStJOBbgYpB9g0_;=eO3UzOsSvxno6FzW}IJ{{Yil;^2t5a6E0{TR!nok zy8j%J0wc%GoJ&tp_OhRPu@%}siV6-wnVJCy&K-3GrJoZ)o=!sHIv;!QxdmX3aCPKTo)f+jd_uhy)XqQKGWGd7ghX+&KOpXH;tVs zWY(nl&Gp=Y^6dF33fCe~W%cHtB@j^D)i;5Ydwisx!BJS>Z^#g{(Q{SD$(>2uhT^!w zqU8^~F_Jm=cCMKFb^W4ul2 z8Gott9%yNM#%H>!e=I}zBs30&OA~~ZV_shSDLrI@g?`#ZKBEAau}LcaAP)1E@}_K> zOXchTGllOjni6kHFK`gJ!2k$dP>9B)p`#dB<=)9K+x|C3ujPhtA$Lo2~t3p6}DzZa1^Ns%O|EV|sdpX5#*CsLbB4eaa)7^?&EY`-7MVmMT5M zgxQRdlUr4)$~wn@4T_t(!L6P;f;qy1v}^761HO8FID+3U%x6WZ=umnw-j27_HElY1 z(KcG)Qpk8MqGKVnIZ~ST5s@3 zE#vE%KLm$XITH;`4_!iw&zB|2Pv%kCjrLiM+McaB>o3$j7iNqLcc*qQ{dEcIaXc_D zU=nRh5E83g52D5=!VCG5z>M64MlgiOaf*<0mw?S{X>^VxFp9T0-%*Jk|YG`Xe^XB=U0JnmHz(r#N# zvOl9v-=6Vl@ylGa~D$c>ytTyOddD>BRt%>UOnC4j zxZ-bDAWRZw0?URmhA&DsJ%o3pD8)17tX2!gtizvMJGYpAnsnQ(dE6WPOz8>zq@{g- zRrKlbBh}_p>%WH8hT%H<+~Gv$Pnl!?lfkc~Ekb#~rg_aGLds&V#vq9S2vwexz0u@WD ziRi|Fma6a<{IPQhHoNulQ+J*P2?eVdIJo3EGJcAHkjNr0z!i2Ma)uM%NvGwbb2jTt zg)*{P*<19*<+leA52F0R@L$Ck9#4E@l{I%h`Qm}c6sMmHXdDEl`q#63cBwZtJ~V9g{aW9wz>LGuI-?aMD!W%@cZ%|K<*F>iMB;7{V4a?#75NjvCZz|8fsb~f` z&@Ew<5~j#?&g12I*`rmcA553Jm}USB0>4^07}jH!Lny3N-+H1n!L}*d%@T#~M#<#Y zOvu^Ddj)EcY#4HITy>#LEv1Ex#P~q3G+XCUX;7e91iZGA z>zm5mI6K70=*}aovD)Xo6`KbmntIxc)zGZw>Ck6)x)3~ck%zbAWI27iq#Gj2@?4G& zPN>7tGd_@H4e62icR!_=D>PV`l8=+_uQ*Q}4>`ZNSdEL~1TKC?Y3h!*p3*`6a`&W8 zKpS+?vSul#gQrEq^}&Rj#vKhkKPXR03Nt9jvXI>M{a^2mgyWkOo*%QK4q zkAczcUTJZTuxtI?iV665*w4VyAB3Bc?k93mp*x|EY{W#g;&RNx)xvd-^Mg@z*~|X(>$$0S zi}j+RsUy^y@cNZ+I+AMS6<>4g1-$SD_BtD8lTJO*U+_)r=6v8d+{T*AHI)c zH!-$@Dli8m8>H`yl;t=3_#CWrj7zJp<2K9%|0ij8Z_S}?PZ?fH6A~^CG^6|BS_T=w z@cx7@`;v|TapGB9>9l(eK1B411#^#C(V?AUr276r()=5B5mQC?PUfKbM_!3Lv^aGH zO|zhGE5X~m7uQ$c@U0%vG8V2n9qn8lIWmvYHj>WunlYnZ_mbBeAP+qzj0;Ek2x$t5 z4Dg*iFdh6gs7pD%)qzx?+WJ4o;;~MaLaG0JGokDU`mnMMFEOKZ&bVSEG6GGS8*v)% zP2i;%`;|7u5S>S31f#jME@1~B7LO-s?4?k;eJuL*d)Wv}?IYXY&o>7EEqe+rGRJEj z$*#jME6VdYi?N2{BRxc^UN+54T-5AcAvM!%R$aU7t3wYhO9dP;h0mLl@8|t7qHWUP zt-SZ&$;TdqS(KhV+I9wJ+1y+_;9u}l$w;>WzRaF%X|_}Ipp2y8`NMscMDWFQ$R_rtKX3i*|m_6Uuho637C}~0o zekN*l(qo06cnNDY=ZwMlxjgJ*KmJT`w#p57W_TmXXw1#~jY+8{HuDiIJtB&Q#4zi%X0g*x-w} zt_1{2k`R`nS_|fV1w`w%eM@4joD}qXfTE_h$(v>!L2)*n2pTZ$3~vdcSI)wd}9q zJVi5mYaf?Hx2^PS!MVsem}{5hR}YR7E~=;8Os%AoAGiFj^N)gOt)zi(K2Xu*A`Fb< zjd2-kKbK+)F;)il#H=sXY$1ZM7!Wz(sjLIEIiw*-;j zstrd=&be#}sSZ(zwqIcsJ)+PWPGkrhVuZ=}3O1$;Ro!ryc`8|jLbpzQ8C#RKIJic0 zDd?h+q~$zHiQoeBRe@qh?r7|}7_Lv_YSR%C25K87HzeUFIm@1hJW6IXd!3$A=#a*h z>9&+Nww^D0Z>zNfewB~$A(|*~kM$m0q`YgBBxg}dJnoZS91KtGE0*%_s)55nqgO7sgRLThoL(e@ILWEW_*Q^Tae$no->K zMYC&=vufEegQ~Mc3+CBV7g?o>>MC20?691ovlrB1w?c>_6_){Ez1qUMq&9C1RA?Baj>9MmvvWl?uW|bAHm_ zk)4AQ*zeZAR#z_zDL{)q_&tO&4(c<*p8EZ)P9Sk z3aJK={Yp8)!zHUVHaE+|d1`|kc44P(Q|?eKS-Dyu&J+(uX9-MY!<5Qz zE^)8ZIf=nDKKJGX1(~de1-!;AMc=iulef?|o@E13$ZS^Y-jO9!rG@EhErdQ~GxL+o z+8w5Ku!63#VNj7;i^Dn1|6-^SHcn8Yr=v@t4)}LKkg%e;xxTVhaoB>|#&nQfn!jq8 zZ)*wTQc^3*yTZQ-tdwX?N)U|@RDC%tA!0 zX_%LUE+TNb8Ik>7eOW(%RZ17^T)Nw;?Ut4`+;v(eP7d`z=@aPsfuv6#=`1F|DQ*0l zLlRX6P9trC3s!`S+=X;xYV*wb0W50c(|{VM;n)88tU6;OT`?jJUL`iDSls5((|!TC z?0j*c#J-o=4j08EgReI8C7bFKr$YN86{c=PcQ$2AP(p-|*P02@#t53u$Y!u@A=U z+8XM0E{FYY8kn0&05SY}iLHYN&20M?G$(PJ!5q+w`JR?|0&N{lm%k0TD0AwIw(EtK#Vh0rv16izo=ZdjTmE>+yf{IEIe{EVZw(F ze24k*m>aoux{OSiWqVsn-BmsUe|T%;s5?jd42a`5i#L=-wnT_9mXmLIoaF3XYX}w1 zlEmOA)UcqwL$}60z`w}hxjP9IwLY)HhS0G^C4rSjF!0N8hxMPAFd5I?dh5u1+Zx>S zp%gWhrnajHo3gRUL7q1!wHqloRxVYFk)BDe_Eikn6hV)vr3fLEHbLbE+k(#(HoAu5 z#*cimO$9?y;Q+@M4@YhjZnzpK7j9W1kN;vS{Sr23-L(JWJ9ik-KX_}27geeE4`t+K1Jmk^Ot zSJQR$W9#GM2!8NFQF{P0KoY;xIBY0!B2MSW+0AV-7L(x@N=Dfc(h7PX_I(z=(a$Z0 zBp={>Mtwg|wiwaR_F$=ubDUNbtZ}5NMg9~ODoQM$P=9CP6ZiFFK9eOZ<=C0#dwrZR?Z`Sk z@sacuJpvxmwCN~(T7@_u&9XX-^rflkQf7<01Yq$)$(ek&8BkJY7HIoRK=#M4IdN4k zk_sCUL**`vhVVURt<)*MJJDu`$EFRp=^T5gZrBrT8gsrrw5*Ed?LIMNk!eg@=QfVr z;s6|x!9gHs9^0YdYc#Z~atjHvTntL#&2O)eJjvw3lw9a>$<9U{HNOH>|F2J4g!oGA ztzrG;gOLo_l+t3Y#<)38_3*L31PX!Az%7WHATk8Arb z9iUr|9S)039H&wyWO_(9o~}zPT||du)R9i5Blx)3Wl06_RwuvWFEftIDI~ZNwIOvj zGBs)xPsmx&_um07vryH!G9!OF7Z-)W1DA~Z5!3GDjNng>n<;P9Zo$676G&L%@OVbliR+JNj)KKKzRmf(3r{h| z{i7>}xj@$1+!1Lwe>sDnB*GSbrW+zWf`!rJG>q;2Bng>G^2DO?v)XV1iS+ajec2Qc z%|GCgqv@iyrfnU*^!|au=Djk8aKKS&DGm9!=3pq)jnAlr$VJ1S3#~-V|C;gBM^4)z zd|^!Jw=(IZTqH&Vk_@O5*b60>YC)I4^%sogmS03)NlURBJ9tgOxx=jv=96dN7Ma@_ zJM#wUx1+#P-cp^ujcvDE*N*|^7Rz1Oq}31k3%mGHf+LxK!vD!K?x<`?2BN#rty;n| z0)Emf!FParBC3?Jxvy?)(e`i{ZS3sr+x+s9PiiL#AyE}t^W~H&a@E+UGI%>yN6#~f zjb88B4Cm~%90_(d03s`XMkpNIf;XpNsG@h~h-r!u+l#UP$P=E$9Un(-@XVA1f^jC? z5w591@%KpQ=oKDxErEX%wabVhLR|k26!wk~X+`1ajS+;Ki7g(%i|JRV93}osn4`7O z;;A~Sx)g71!P-ywD3Ebf#JM}K%e7h-@ZU-)(K1IY$89D4`tAO7<``vpfP-%9@O#4k zp)jOidtnFEjCRJGo8n9`$9B2pZKlGudMS+9RQf6KPRpGMy*XkibZ$?nzp?ucVI#i>{@EZr7qS`okheq>CW z!P1+A+ABxgRyDoy0Qp{5;g;Q;{@l_yFqT0@Ybt@MkJ5Z# zjSo{{btF12=}RO1j3##fukSw$S%$&pthar5Q&fcmn4rehfu0$ zdLg`>2aJkMda67kevU}akB|^sF5T6AU`^#*DF7|ydy_A7NF}d#E4q&1)gGz_I6#+|kD`6qD>%(f6Ce%f@x7Ozk~EZ;DR? zF+?!W(9A7btMGry;BA8^6fI+OcoDirXRZ4Vo!-G9W48~{d9&wnsqz1`S-R&Z&TyIuX%DKmUj=yw|=kwTxhRVC;u-X&JI(pH92%mW?d11UZN{Yx7Z3>4oMyqKKN_2BnGl z@qO%*Ulyy1h#YGXl+#$GJK>!_r1jvFrdQP)?2n(n1(i(0Bw&Ui6fElsc@+P0NUnet zis^xL?3yUlyV|}>lQb9PE|_5?M4JIbYZ<`=!2wA}eCF}gO1{n?($Gzz`!o4+!%N1df#XOrif6{#y;a+VE0Ga@cSSJqnRHv1-fe9M1E$8s7Q<^mJ6dK`*-9t z-Gjk|yITk;^^3W{IxuN&bM$K5nc#!GvhQH;M<8>eZldyD=lPa&+-I6 zYS+C1YQ|VT61mv?R>EEbEPAM7j6w~!fzRk{WUQ%8(VN`JgZWH)7;Iiy*7v5N3}YT| zI~Ch~PZ(f@o&8Z^J7OYc|0`u#RDpKD50{FF3ZWCR^hU22N{B>j{1I)_CsvkYbm6Hd zb!fMEvtz5%aUm@W#!HsiG7gLIwjerl;FMg|BPU(}I=_-jrk5gk&ojrCl z+gm|aN;4WF(hhyIBg3m|{xIQ`adFT;Lw8~a8M)53{2TCbbEZdcM%Tl>VmA-1u3Vzs zUcIK?>+Rk4Zz408P{&qdziIx_*YcozN1=B0($4#waEE5M!7I)GS>$0~wEymNGt0wk z(B6wXBie0$vMaG9)VKXs&hfIQ!pcP}AG!v|9K_AmzY4H-Z7t{84O3u(`#)(CKDsVL zJ4KJhBId!k3WT-8WV%qS!B*j(Q#MIDA8LY6x+J_YT_ju_9}Lwc(@Oze^!LEO`q^v| z9$F#VEAnwq$h|O4%2_wri7SfmY`)8ffSX}Yb9{3A)%W3~ ziGyKGd0IehF=xkp)k0H=x!IUZkybwU)&FB zwsXVOLEIj6F=o6|ELwsb#JGInEs?zXx&|RGN)P_Erf$zv)^>V33MU3%(jqWn%)NpX zZBoR*sr&JK@lnQaIha2N9}I7~V#{98zo+|ix3jh5VYoUtNZClMqo&|WTT9#1Ibe_T zx&CAQlJdu&CUXAV=nTZRI@CZjjPIuAYg)%P94yLy}5%I4wn7my_t8L z7y7fS9yAFJ%|AIRh`3v})}G1W@G$D7z$`VAP;0WKk?~9WjsD}Tn;^Dix>>V8(*3$# zUsbp>?Vyz2)g>Qc$=&Kyc=VgZKE~*(bkD+%z@Bky8U_!p-GyZyw#g3qW8YZ88Ct%!z(v!?V?M(Yh$U2};)KY=d^8Wm~xTH&7M z5Hg6@85|@TQ^BRL&l|VSSNpTA(*;ORz)E2>$7tDVdfqKu`DxfEuVD+AY*u^gA}3ob z##88nXk~+;z9lQOU6jWQgM)V{1lSf$?qc4<+L?#I@0@y#`lc1DIkbrU?+dk-X|o$3 zU27y!`qK&A3YGF7f3(^0k~om`UE_k$Z`pOfOo^JwCxr>pfIL(@UHzTuB@rU}1=i8= ztOR~@#n~-6p~xAaL zZ*8-o5hODBp8z_!BaZ_@oLNJfUPOH}8Na?JMm&Lm^zoqXRA)H3iH}L(J*1H|vz@bz zRcR4NB_L$(y*~%rhRa?U^%TGhE-%6Rd$5^Av@ba0qFmS7LbVWV7f~1H3JEcj0bhEg zP_C>Me4G9*%}k6m5`A`^67D&)PChb9iD=fo1|c}Z1)C>4L6w$INGF?Wk}>HCfSXNe zMh!a*`^z8azt+2O^1Y8(0N(*-NDHLiH?}s3cC6*q7mB^m=x}o^M;}jxM1mqqJOh5b z34FBADyts4!y@A^*(2a+928VVa-T&@RD-61i$Dr_*2|yKxk7|a8fV|U6(@Y6=PXOe;ckW+1^iH2E~ZQ zohO74*Vlj{Jvl`+f0oJP`UGJQl8FDKX7aly0FUPpS@=-ZBu_nQ^q@C{Tc3)6= zZ{EgO|KQB^L9DR$nR_|dqeY5VB)Ve!j31ADZdD2eZm}PW>#-m_dz{;M^`zGqh%A9h zXCgC0@B)@3{Ham< zew89_F6pZTA|!y*;gQNsf6O46!V>?irj|mAhq@2O-@@bWr=cW~R%U#|g)r3DGyeN= z>Y||_g^Vu5d(@V@ZtQ+J|D)P$Ttu@$n-~ZGES#H~fe8oaC0d%7+@;0fqP-E`Mtl*f z`nV#M&!3gwIP-aK{>lLQeWco;Yj+&yv!r?Xo8mU}5Nst8?opqJr%MqwQ%yq8e2?a_ z?goIli*Vi=CZKR7u^gU)wmOH3vvH3GfNKCd8?{vL5X?k@A(;S%eKkZk7aEBj3dQ=i zC*2uc5?!48{EN}VJ&OXrWCB=RSoe3h(1dXxmG;2n19t*DG~Hg=w9oEt-?NcRv_(F( zppJG!SRZrfw5koqV6w5`DWR^%@!_xNHoM=1i{;)#@eWVZgg;xU8x5d8BNnxsFg(KB zJ6I4(k~R_2pMwXJV8Z((^V*God2t9RCg$Hza|WV>lFE0CuvTm^;23Hgt>dp5N0#@F zAe_~pGsgWai%TK%QeS}tEMKL&0wTDGvMtDxz?1)SJ`mOm8x469oCoC5mQ!i)gX;{K zPDi5i1m*-q`2z0lpPL=5EFJGKK+tzf!j5U2E_`<*8EYdeqz2XsOA0m)9)oendLIw; z)}q(b)#Fa$IUo~Yy(J~* qc<*O^uZVjKyVJ=3&oB4CTU<73hJ-+E83r`qM@e4oWtps5=>Gr}FK71v diff --git a/assets/k9s.png b/assets/k9s.png index 36753e26f049a898994e8f7b782197881b472bc9..9137cb21941b2fe0d8fb9744b9159d1ff0f30c12 100644 GIT binary patch literal 130038 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 z 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�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