Skip to content

Commit

Permalink
[kueuectl] List cluster queues
Browse files Browse the repository at this point in the history
* BoolSliceVar for active filter
* Remove kubectl dep
* avoid caching contexts
* split gotOut in test
  • Loading branch information
vladikkuzn committed May 14, 2024
1 parent c11188d commit 294b42a
Show file tree
Hide file tree
Showing 6 changed files with 66 additions and 94 deletions.
6 changes: 3 additions & 3 deletions cmd/kueuectl/app/list/helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ func addClusterQueueFilterFlagVar(cmd *cobra.Command, p *string) {
"Filter by cluster queue name which associated with the local queue.")
}

func addClusterQueueActiveFilterFlagVar(cmd *cobra.Command, p *string) {
cmd.Flags().StringVar(p, "active", "",
"Filter by active status of cluster queues. Valid values are '*', 'true', 'false'.")
func addActiveFilterFlagVar(cmd *cobra.Command, p *[]bool) {
cmd.Flags().BoolSliceVar(p, "active", make([]bool, 0),
"Filter by active status. Valid values: 'true' and 'false'.")
}
109 changes: 49 additions & 60 deletions cmd/kueuectl/app/list/list_clusterqueue.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,34 +30,18 @@ import (
"k8s.io/cli-runtime/pkg/genericclioptions"
"k8s.io/cli-runtime/pkg/genericiooptions"
"k8s.io/cli-runtime/pkg/printers"
"k8s.io/kubectl/pkg/util/templates"

"sigs.k8s.io/kueue/apis/kueue/v1beta1"
"sigs.k8s.io/kueue/client-go/clientset/versioned"
"sigs.k8s.io/kueue/client-go/clientset/versioned/scheme"
kueuev1beta1 "sigs.k8s.io/kueue/client-go/clientset/versioned/typed/kueue/v1beta1"
)

var (
cqShort = `List ClusterQueues`
cqLong = templates.LongDesc(`Lists all ClusterQueues, potentially limiting output to those that are active/inactive and matching the label selector.`)
cqExample = templates.Examples(`
# List ClusterQueue
kueuectl list clusterqueue`)
)

type clusterQueueActive string

const (
// No filter
clusterQueueActiveAll clusterQueueActive = "*"
clusterQueueActiveEmpty clusterQueueActive = ""

// Truthy values
clusterQueueActiveTrue clusterQueueActive = "true"

// Falsy values
clusterQueueActiveFalse clusterQueueActive = "false"
cqShort = `List ClusterQueues`
cqLong = `Lists all ClusterQueues, potentially limiting output to those that are active/inactive and matching the label selector.`
cqExample = ` # List ClusterQueue
kueuectl list clusterqueue`
)

type ClusterQueueOptions struct {
Expand All @@ -68,32 +52,32 @@ type ClusterQueueOptions struct {
FieldSelector string

// Kueuectl flags
// Active is the flag to filter */true/false (all/active/inactive) cluster queues
// Active is an optional flag to filter true/false (active/inactive) cluster queues
// Active means the cluster queue has kueue.ClusterQueueActive condition with status=metav1.ConditionTrue
Active string
Active []bool

Client kueuev1beta1.KueueV1beta1Interface
Client kueuev1beta1.KueueV1beta1Interface
clusterQueueListRequestLimit int64

PrintObj printers.ResourcePrinterFunc

// ctx is the context for the command
ctx context.Context

genericiooptions.IOStreams
}

func NewClusterQueueOptions(streams genericiooptions.IOStreams) *ClusterQueueOptions {
return &ClusterQueueOptions{
PrintFlags: genericclioptions.NewPrintFlags("").WithTypeSetter(scheme.Scheme),
IOStreams: streams,
PrintFlags: genericclioptions.NewPrintFlags("").WithTypeSetter(scheme.Scheme),
Active: make([]bool, 0),
clusterQueueListRequestLimit: 300,
IOStreams: streams,
}
}

func NewClusterQueueCmd(clientGetter genericclioptions.RESTClientGetter, streams genericiooptions.IOStreams) *cobra.Command {
o := NewClusterQueueOptions(streams)

cmd := &cobra.Command{
Use: "clusterqueue [--selector key1=value1] [--field-selector key1=value1] [--active=*|true|false]",
Use: "clusterqueue [--selector key1=value1] [--field-selector key1=value1] [--active=true|false]",
DisableFlagsInUseLine: true,
Aliases: []string{"cq"},
Short: cqShort,
Expand All @@ -102,7 +86,7 @@ func NewClusterQueueCmd(clientGetter genericclioptions.RESTClientGetter, streams
Run: func(cmd *cobra.Command, args []string) {
cobra.CheckErr(o.Complete(clientGetter, cmd, args))
cobra.CheckErr(o.Validate())
cobra.CheckErr(o.Run())
cobra.CheckErr(o.Run(cmd.Context()))
},
SuggestFor: []string{"ps"},
}
Expand All @@ -111,15 +95,14 @@ func NewClusterQueueCmd(clientGetter genericclioptions.RESTClientGetter, streams

addFieldSelectorFlagVar(cmd, &o.FieldSelector)
addLabelSelectorFlagVar(cmd, &o.LabelSelector)
addClusterQueueActiveFilterFlagVar(cmd, &o.Active)
addActiveFilterFlagVar(cmd, &o.Active)

return cmd
}

// Complete takes the command arguments and infers any remaining options.
func (o *ClusterQueueOptions) Complete(clientGetter genericclioptions.RESTClientGetter, cmd *cobra.Command, args []string) error {
var err error
o.ctx = cmd.Context()

config, err := clientGetter.ToRESTConfig()
if err != nil {
Expand All @@ -144,7 +127,7 @@ func (o *ClusterQueueOptions) Complete(clientGetter genericclioptions.RESTClient
}

if len(args) > 0 {
activeFlag, err := cmd.Flags().GetString("active")
activeFlag, err := cmd.Flags().GetBoolSlice("active")
if err != nil {
return err
}
Expand All @@ -156,51 +139,57 @@ func (o *ClusterQueueOptions) Complete(clientGetter genericclioptions.RESTClient

func (o *ClusterQueueOptions) Validate() error {
if !o.validActiveFlagOptionProvided() {
return fmt.Errorf("invalid value for --active flag: %s", o.Active)
return fmt.Errorf("only one active flag can be provided")
}
return nil
}

func (o *ClusterQueueOptions) validActiveFlagOptionProvided() bool {
return o.Active == string(clusterQueueActiveAll) ||
o.Active == string(clusterQueueActiveEmpty) ||
o.Active == string(clusterQueueActiveTrue) ||
o.Active == string(clusterQueueActiveFalse)
return len(o.Active) == 0 || len(o.Active) == 1
}

// Run prints the cluster queues.
func (o *ClusterQueueOptions) Run() error {
opts := metav1.ListOptions{LabelSelector: o.LabelSelector, FieldSelector: o.FieldSelector}
list, err := o.Client.ClusterQueues().List(o.ctx, opts)
if err != nil {
return err
}
func (o *ClusterQueueOptions) Run(ctx context.Context) error {
continueToken := ""
for {
cql, err := o.Client.ClusterQueues().List(ctx, metav1.ListOptions{
LabelSelector: o.LabelSelector,
FieldSelector: o.FieldSelector,
Limit: o.clusterQueueListRequestLimit,
Continue: continueToken,
})
if err != nil {
return err
}
if len(cql.Items) == 0 {
return nil
}

if len(list.Items) == 0 {
return nil
}
o.applyActiveFilter(cql)

o.applyActiveFilter(list)
if err := o.PrintObj(cql, o.Out); err != nil {
return err
}

return o.PrintObj(list, o.Out)
if cql.Continue == "" {
return nil
}
continueToken = cql.Continue
}
}

func (o *ClusterQueueOptions) applyActiveFilter(cql *v1beta1.ClusterQueueList) {
if o.Active == string(clusterQueueActiveAll) || o.Active == string(clusterQueueActiveEmpty) {
if o.Active == nil || len(o.Active) == 0 {
return
}

filtered := make([]v1beta1.ClusterQueue, 0, len(cql.Items))
for _, cq := range cql.Items {
switch o.Active {
case string(clusterQueueActiveTrue):
if isActiveStatus(&cq) {
filtered = append(filtered, cq)
}
case string(clusterQueueActiveFalse):
if !isActiveStatus(&cq) {
filtered = append(filtered, cq)
}
if o.Active[0] && isActiveStatus(&cq) {
filtered = append(filtered, cq)
}
if !o.Active[0] && !isActiveStatus(&cq) {
filtered = append(filtered, cq)
}
}
cql.Items = filtered
Expand Down Expand Up @@ -248,5 +237,5 @@ func toTableRow(cq *v1beta1.ClusterQueue) metav1.TableRow {
}

func isActiveStatus(cq *v1beta1.ClusterQueue) bool {
return meta.IsStatusConditionPresentAndEqual(cq.Status.Conditions, v1beta1.ClusterQueueActive, metav1.ConditionTrue)
return meta.IsStatusConditionTrue(cq.Status.Conditions, v1beta1.ClusterQueueActive)
}
22 changes: 13 additions & 9 deletions cmd/kueuectl/app/list/list_clusterqueue_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ limitations under the License.
package list

import (
"context"
"strings"
"testing"
"time"
Expand All @@ -42,7 +43,7 @@ func TestClusterQueueRun(t *testing.T) {
"should print all cluster queue list": {
o: &ClusterQueueOptions{
PrintObj: printClusterQueueTable,
Active: "*",
Active: make([]bool, 0),
Client: fake.NewSimpleClientset(
utiltesting.MakeClusterQueue("cq1").
Condition(v1beta1.ClusterQueueActive, metav1.ConditionTrue, "", "").
Expand All @@ -67,7 +68,8 @@ func TestClusterQueueRun(t *testing.T) {
"cq1 0 0 true 60m",
"cq2 0 0 false 60m",
"cq3 0 0 false 60m",
"cq4 0 0 false 60m\n",
"cq4 0 0 false 60m",
"",
},
},
"should print all cluster queue list if active is not provided": {
Expand Down Expand Up @@ -100,13 +102,14 @@ func TestClusterQueueRun(t *testing.T) {
"cq1 cohort1 0 0 true 60m",
"cq2 1 0 false 60m",
"cq3 0 1 false 60m",
"cq4 0 0 false 60m\n",
"cq4 0 0 false 60m",
"",
},
},
"should print active cluster queue list": {
o: &ClusterQueueOptions{
PrintObj: printClusterQueueTable,
Active: "true",
Active: []bool{true},
Client: fake.NewSimpleClientset(
utiltesting.MakeClusterQueue("cq1").
Condition(v1beta1.ClusterQueueActive, metav1.ConditionTrue, "", "").
Expand All @@ -128,24 +131,25 @@ func TestClusterQueueRun(t *testing.T) {
},
wantOut: []string{
"NAME COHORT PENDING WORKLOADS ADMITTED WORKLOADS ACTIVE AGE",
"cq1 0 0 true 60m\n",
"cq1 0 0 true 60m",
"",
},
},
}
for name, tc := range testCases {
t.Run(name, func(t *testing.T) {
t.Parallel()
s, _, out, _ := genericiooptions.NewTestIOStreams()
tc.o.IOStreams = s

gotErr := tc.o.Run()
gotErr := tc.o.Run(context.Background())
if diff := cmp.Diff(tc.wantErr, gotErr, cmpopts.EquateErrors()); diff != "" {
t.Errorf("Unexpected error (-want/+got)\n%s", diff)
}

gotOut := out.String()
joinedWantOut := strings.Join(tc.wantOut, "\n")
gotOut := strings.Split(out.String(), "\n")

if diff := cmp.Diff(joinedWantOut, gotOut); diff != "" {
if diff := cmp.Diff(tc.wantOut, gotOut); diff != "" {
t.Errorf("Unexpected output (-want/+got)\n%s", diff)
}
})
Expand Down
7 changes: 0 additions & 7 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ require (
k8s.io/component-helpers v0.29.4
k8s.io/klog/v2 v2.110.1
k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00
k8s.io/kubectl v0.29.4
k8s.io/metrics v0.29.4
k8s.io/utils v0.0.0-20240102154912-e7106e64919e
sigs.k8s.io/controller-runtime v0.17.3
Expand All @@ -39,7 +38,6 @@ require (

require (
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect
github.com/MakeNowJust/heredoc v1.0.0 // indirect
github.com/NYTimes/gziphandler v1.1.1 // indirect
github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230321174746-8dcc6526cfb1 // indirect
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
Expand Down Expand Up @@ -73,7 +71,6 @@ require (
github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 // indirect
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/gorilla/websocket v1.5.0 // indirect
github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 // indirect
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 // indirect
Expand All @@ -86,19 +83,15 @@ require (
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect
github.com/mitchellh/go-wordwrap v1.0.1 // indirect
github.com/moby/spdystream v0.2.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
github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect
github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/prometheus/common v0.45.0 // indirect
github.com/prometheus/procfs v0.12.0 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/sirupsen/logrus v1.9.3 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/stoewer/go-strcase v1.3.0 // indirect
Expand Down
14 changes: 0 additions & 14 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,10 @@ cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2Aawl
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/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ=
github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE=
github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I=
github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=
github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230321174746-8dcc6526cfb1 h1:X8MJ0fnN5FPdcGF5Ij2/OW+HgiJrRg3AfHAx1PJtIzM=
github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230321174746-8dcc6526cfb1/go.mod h1:pSwJ0fSY5KhvocuWSx4fz3BA8OrA1bQn+K1Eli3BRwM=
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-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so=
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
Expand Down Expand Up @@ -133,7 +129,6 @@ 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.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 h1:pdN6V1QBWetyv/0+wjACpqVH+eVULgEjkurDLq3goeM=
Expand Down Expand Up @@ -181,10 +176,6 @@ github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWE
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg=
github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k=
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/moby/spdystream v0.2.0 h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8=
github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c=
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=
Expand All @@ -196,8 +187,6 @@ github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 h1:n6/
github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4=
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/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus=
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
Expand Down Expand Up @@ -229,7 +218,6 @@ github.com/ray-project/kuberay/ray-operator v1.1.1 h1:mVOA1ddS9aAsPvhhHrpf0ZXgTz
github.com/ray-project/kuberay/ray-operator v1.1.1/go.mod h1:ZqyKKvMP5nKDldQoKmur+Wcx7wVlV9Q98phFqHzr+KY=
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/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/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
Expand Down Expand Up @@ -472,8 +460,6 @@ k8s.io/kube-aggregator v0.28.1 h1:rvG4llYnQKHjj6YjjoBPEJxfD1uH0DJwkrJTNKGAaCs=
k8s.io/kube-aggregator v0.28.1/go.mod h1:JaLizMe+AECSpO2OmrWVsvnG0V3dX1RpW+Wq/QHbu18=
k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 h1:aVUu9fTY98ivBPKR9Y5w/AuzbMm96cd3YHRTU83I780=
k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA=
k8s.io/kubectl v0.29.4 h1:2LFrAznoDZjN8JFMSUcuhER5o+yjTLzWWbOiDzVjmd8=
k8s.io/kubectl v0.29.4/go.mod h1:YTKRF9y1/ccqZ2bnpOWaJD8V7johKqZR/qOMq+0pfxU=
k8s.io/metrics v0.29.4 h1:06sZ63/Kt9HEb5GP/1y6xbHDz6XkxnHpu949UdXfoXQ=
k8s.io/metrics v0.29.4/go.mod h1:ZN9peB0nLTqPZuwQna8ZUrPFJQ0i8QNH4pqRJopS+9c=
k8s.io/utils v0.0.0-20240102154912-e7106e64919e h1:eQ/4ljkx21sObifjzXwlPKpdGLrCfRziVtos3ofG/sQ=
Expand Down
Loading

0 comments on commit 294b42a

Please sign in to comment.