@@ -31,6 +31,9 @@ type getFlagpole struct {
31
31
Output string
32
32
ChunkSize int64
33
33
Prefix string
34
+
35
+ Watch bool
36
+ WatchOnly bool
34
37
}
35
38
36
39
var (
50
53
# Nearly equivalent
51
54
kubectl get leases -n kube-system -o yaml
52
55
56
+ # Watch all leases with namespace "kube-system"
57
+ augerctl get leases -n kube-system -w
58
+ # Nearly equivalent
59
+ kubectl get leases -n kube-system -w -o yaml
60
+
53
61
# List a single resource of type "apiservices.apiregistration.k8s.io" and name "v1.apps"
54
62
augerctl get apiservices.apiregistration.k8s.io v1.apps
55
63
# Nearly equivalent
@@ -89,6 +97,8 @@ func newCtlGetCommand(f *flagpole) *cobra.Command {
89
97
cmd .Flags ().Int64Var (& flags .ChunkSize , "chunk-size" , 500 , "chunk size of the list pager" )
90
98
cmd .Flags ().StringVar (& flags .Prefix , "prefix" , "/registry" , "prefix to prepend to the resource" )
91
99
100
+ cmd .Flags ().BoolVarP (& flags .Watch , "watch" , "w" , false , "after listing/getting the requested object, watch for changes" )
101
+ cmd .Flags ().BoolVar (& flags .WatchOnly , "watch-only" , false , "watch for changes to the requested object(s), without listing/getting first" )
92
102
return cmd
93
103
}
94
104
@@ -124,13 +134,30 @@ func getCommand(ctx context.Context, etcdclient client.Client, flags *getFlagpol
124
134
client .WithResponse (printer .Print ),
125
135
}
126
136
127
- // TODO: Support watch
137
+ if flags .Watch {
138
+ if ! flags .WatchOnly {
139
+ rev , err := etcdclient .Get (ctx , flags .Prefix ,
140
+ opOpts ... ,
141
+ )
142
+ if err != nil {
143
+ return err
144
+ }
145
+ opOpts = append (opOpts , client .WithRevision (rev ))
146
+ }
128
147
129
- _ , err := etcdclient .Get (ctx , flags .Prefix ,
130
- opOpts ... ,
131
- )
132
- if err != nil {
133
- return err
148
+ err := etcdclient .Watch (ctx , flags .Prefix ,
149
+ opOpts ... ,
150
+ )
151
+ if err != nil {
152
+ return err
153
+ }
154
+ } else {
155
+ _ , err := etcdclient .Get (ctx , flags .Prefix ,
156
+ opOpts ... ,
157
+ )
158
+ if err != nil {
159
+ return err
160
+ }
134
161
}
135
162
136
163
return nil
0 commit comments