Commit Graph

2255 Commits

Author SHA1 Message Date
Bryan Boreham 0a152f103a 'kubectl events' command (#99557)
* Basic scaffolding for kubectl events command

* Simple implementation of 'kubectl events'

* Print event fields

Borrowing code from 'kubectl describe'

* Sort events before printing

* Make output more like 'kubectl get events'

Print namespace if fetching from all

* Refactor: extract print functions

To make it easier to add watch function next.

* Implement watch for new events

Run the list function same as before, so those events come out in order,
then watch from the ResourceVersion after the last event.

* Clear up some lint warnings

* Update description and example text

* refactor: introduce a listOptions variable

* Implement --for option

splitResourceTypeName() function borrowed from cli-runtime because we
need similar behaviour to Builder.ResourceNames(), but applying to
Event.InvolvedObject.

* Add kubectl/pkg/cmd/events to vendor/modules.txt

* Add back cmdutil.Factory

Needed in NewCmdAlpha to construct the 'events' command

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>

* Fix lint

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>

* Make package alias go-cromulent

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>

* Use genericclioptions.RESTClientGetter instead of cmdutil.Factory

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>

* Decode object parameter to GroupVersionKind and name

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>

* Merge two files into one

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>

* Include example for --for option

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>

* Fix inconsistent option name in error message

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>

* Remove unnecessary Validate call

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>

* Use fields from event series

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>

* Support chunking of list of events

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>

* Use watchtools utility to receive watch events

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>

* Split struct into flags and options

Flags represents the inputs from the CLI; options are what the running
command needs. This structure parallels the 'wait' command, and should
be easier to write tests for.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>

* Add some parameters to usage string

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>

* Do only one of list or watch

We tried to print the list first then start a watch after the last
event, but sometimes the server will return "watch is too old" on that
ResourceVersion.
Instead, if we need to watch just start it from the beginning.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>

* Print message if no events found

Also, if watching, don't print the headings until the first event
arrives.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>

Kubernetes-commit: a988182f595af64bc007ba9162509e089c36fd89
2021-10-29 17:13:38 +00:00
Kubernetes Publisher 46fac21dcb Merge pull request #104915 from alculquicondor/job-ready
Track ready pods in Job status

Kubernetes-commit: 6edcb60d9f854903d341dc5155a78ff8221ad64e
2021-10-28 17:15:17 +00:00
Kubernetes Publisher 46e1b66a47 Merge pull request #105736 from deejross/drain-output-ffix
kubectl drain node output should say node was drained not evicted

Kubernetes-commit: 3fb98823c4f4e406d8c7572cc8de93a31dbaf537
2021-10-28 01:10:01 +00:00
Kubernetes Publisher 89d0053274 Merge pull request #105711 from VilledeMontreal/feat/multiComp
Shell completion of multiple resource names

Kubernetes-commit: aa7c6338c6767a86a76abae819670145033497f6
2021-10-27 21:08:50 +00:00
Kubernetes Publisher 7bae6d690a Merge pull request #105851 from VilledeMontreal/feature/compOutputFlag
Add completion to the --output/-o flag

Kubernetes-commit: 011aef1222bb5459401a400231cd8ad309486510
2021-10-27 05:11:42 +00:00
Kubernetes Publisher 0b81755902 Merge pull request #105896 from zqzten/upgrade-json-patch
upgrade json-patch to v4.12.0

Kubernetes-commit: 18cb34ebb2b64a7607057c7dea80427e2af387f3
2021-10-27 01:16:40 +00:00
Kubernetes Publisher e14545a096 Merge pull request #104832 from zc2638/fix/kubectl-env-update
add unit tests for `updateEnv`

Kubernetes-commit: 99ad41412754c6036460d3d9295db4e0e72eb688
2021-10-26 21:09:14 +00:00
Zach Zhu 7e120aedbd upgrade github.com/evanphx/json-patch to v4.12.0
Fix partial negative indice support in json patch

Kubernetes-commit: 20cc72344e653ab90c1a851816bb206b715fd231
2021-10-26 11:20:45 +08:00
Kubernetes Publisher fbd2bcf85b Merge pull request #104877 from pohly/json-kobj
component-base: test and fix JSON output for KObj

Kubernetes-commit: a5cd438b9fbf49e013453f4d6c9b2e935a78071c
2021-10-22 21:17:42 +00:00
Marc Khouzam b9e380aef5 Add completion to the --output/-o flag
For example:
$ kubectl get -o json<TAB>
json   jsonpath   jsonpath-as-json  jsonpath-file

Signed-off-by: Marc Khouzam <marc.khouzam@montreal.ca>

Kubernetes-commit: 5f22baeaf1f662d0fe90ea41e453883cb726323c
2021-10-22 15:15:23 -04:00
Patrick Ohly fe834d1621 klog 2.30.0, logr 1.2.0, zapr 1.2.0
The new releases fix logging of KObj in JSON output: klog implements the new
logr.Marshaler interface and zapr uses it instead of Stringer when logging the
ObjectRef created by KObj.

Kubernetes-commit: 169e8b65a00b45ef8bbc7a14cd985df1c835953b
2021-10-22 15:13:47 +02:00
Kubernetes Publisher bfcc74e277 Merge pull request #105030 from liggitt/json-stdlib
switch from json-iterator to forked stdlib json decoder

Kubernetes-commit: cc25656b00baa33168b7a9bc574101a06788efea
2021-10-22 05:11:51 +00:00
Kubernetes Publisher 6d98fd9964 Merge pull request #105514 from jpetazzo/tweak-kubectl-run-help
Minor improvements in 'kubectl run' flag help

Kubernetes-commit: 4cfd2820badf7e90b70ef19762b9e80af3f7bc71
2021-10-21 17:04:28 +00:00
Kubernetes Publisher f5043d986f Merge pull request #94165 from soltysh/fix_cp
Use separate pathSpec for local and remote to properly handle cleaning paths

Kubernetes-commit: 6cbe18544d90c29d6b3e460dffa6d795a88257ae
2021-10-20 01:04:17 +00:00
Ross Peoples dc5f5d4011 drain node output should say drained not evicted
Kubernetes-commit: 0cf3dba1f1df9555a46f2a086e48dcfe3c9ad6b2
2021-10-18 11:05:28 -05:00
Marc Khouzam b111bee570 Complete multiple resource names
This commit teaches the completion function to repeat resource names
when supported by the command. The logic checks if a resource name
has already been specified by the user and does not include it again
when repeating the completion.

For example, the get command can receive multiple pods names, therefore
with this commit we have:
  kubectl get pod pod1 [tab]
will provide completion of pod names again, but not show 'pod1' since
it is already part of the command-line.

The improvement affects the following commands:
- annotate
- apply edit-last-applied
- apply view-last-applied
- autoscale
- delete
- describe
- edit
- expose
- get
- label
- patch
- rollout history
- rollout pause
- rollout restart
- rollout resume
- rollout undo
- scale
- taint

Note that "rollout status" only accepts a single resource name, unlike
the other "rollout ..." commands; this required the creation of a
special completion function that did not repeat just for that case.

Signed-off-by: Marc Khouzam <marc.khouzam@montreal.ca>

Kubernetes-commit: 7aa5cb40316dbeb970250ee0835fbd597fd19a20
2021-10-15 15:36:09 -04:00
Jérôme Petazzoni eadcbb187a Minor improvements in 'kubectl run' flag help
I initially noticed a minor typo in --tty, and while fixing it,
I noticed small discrepancies in some other flags. These minor
changes should make the 'kubectl run' flag help slightly more
correct (hopefully). 🙂

Kubernetes-commit: 7ca336caf383bca9848cab64657a92b025f34312
2021-10-06 16:57:47 +02:00
Jordan Liggitt 3ad990456b vendor sigs.k8s.io/json
Kubernetes-commit: 434ce4336ab06b3c34208822d558c0432ada3ad3
2021-09-14 18:20:36 -04:00
Aldo Culquicondor def56a58a5 Add ready field to Job status
to keep a count of the pods that have the ready condition.

Also:
- Add feature gate JobReadyPods.
- Add Ready to describe.

Change-Id: Ib934730a430a8e2a2f485671e345fe2330006939

Kubernetes-commit: 1bff5eb44d9897e12aff3ea10f5a856580158278
2021-09-08 14:31:59 -04:00
zc 7f3d19c990 add unit tests for updateEnv
Kubernetes-commit: f79183f2918446907da08325066a334466146711
2021-09-08 10:49:15 +08:00
Maciej Szulik fe89be9c6f Use separate pathSpec for local and remote to properly handle cleaning paths
Kubernetes-commit: 0fb6815f08f39c8af814fa733d5235681a124b81
2020-08-21 19:24:19 +02:00
Kubernetes Publisher 04a41bcaa8 Merge pull request #105445 from ardaguclu/diff-invalid-arg-status-code
Add diff command return status code greater than 1 when flags invalid

Kubernetes-commit: e054181e517b48a3c862207537092c28604aaad9
2021-10-13 01:10:20 +00:00
Kubernetes Publisher a8d3024f11 Merge pull request #105141 from VilledeMontreal/fix/noloadPluginsForComp
Do not try to load plugins for cobra commands

Kubernetes-commit: dbd8d3bcd620037b5262eed1778f0784b49e55bc
2021-10-06 21:08:51 +00:00
Arda Güçlü 8307ca4a3c Add diff command return status code greater than 1 when flags invalid
This PR adds flagerror handler function to detect when flags are invalid.
Default flag handler returns status code 1. However, diff command embraces
this status code as changes are found. By overriding flag errors,
this PR shows same message with default case and returns status code 2.

Kubernetes-commit: 4f0848520d4cdd679c76479949546002c5935e3c
2021-10-04 13:02:34 +03:00
Kubernetes Publisher 5920119027 Merge pull request #105384 from seans3/command-headers-fix
Fixes kubectl command headers which hangs on kubectl run

Kubernetes-commit: e380ce57143fe84f8d575636ab81a06f7f8b28aa
2021-10-02 05:10:04 +00:00
Kubernetes Publisher 1e432bea02 Merge pull request #105076 from pohly/log-flush-frequency-bug
initialize logging after flag parsing + refactor commands

Kubernetes-commit: 82da9bdaab705a1a72e4c5915f6ddd8775592fdf
2021-10-02 01:11:40 +00:00
Kubernetes Publisher d6b2b6aad8 Merge pull request #105372 from MadhavJivrajani/vendor-clock-utils
Vendor in k8s.io/utils

Kubernetes-commit: eebeff9f7e0fccf1d220ce809eaea7f7f9248ce0
2021-10-01 01:15:30 +00:00
Sean Sullivan 8a45e525e5 Fixes kubectl command headers which hangs on kubectl run
Kubernetes-commit: 1d1a5499e717b928c6b2782fdcad9fa4052a38a1
2021-09-30 13:53:00 -07:00
Madhav Jivrajani c2928398a9 run hack/{pind-dependency.sh, update-vendor.sh}
Signed-off-by: Madhav Jivrajani <madhav.jiv@gmail.com>

Kubernetes-commit: a43fca76ea7ff6fb08153c9081f7858cd4d06dd8
2021-09-30 19:15:35 +05:30
Kubernetes Publisher 8f64ba48a0 Merge pull request #105121 from wujiangfa-xlauncher/master
fix top node output format incorrect

Kubernetes-commit: dac94e1c9ee31034d174815e287ba39fa67b2b72
2021-09-30 01:13:11 +00:00
Kubernetes Publisher b81892cba3 Merge pull request #105330 from liggitt/importboss-doc
Make package paths referenced by import boss valid

Kubernetes-commit: d551560a78292e1d4cac1de2ae684c803ddea183
2021-09-30 01:13:09 +00:00
Kubernetes Publisher 4a6a401a01 Merge pull request #105117 from cmssczy/fix_useless_error_handling
handle error when parse Quantity

Kubernetes-commit: 995a1c5abf48f9a3573f4bce4db54c381cdebe23
2021-09-30 01:13:07 +00:00
Kubernetes Publisher 2c81f86bd6 Merge pull request #105327 from julianvmodesto/kubectl-dry-run-flag-removals
Remove deprecated kubectl --dry-run values.

Kubernetes-commit: bac45abf77ed1f96921365c056303066fc177702
2021-09-30 01:13:05 +00:00
Jordan Liggitt 6f01cf6b69 Make package paths referenced by import boss valid
Kubernetes-commit: f6b831aeaca2ff1481074e05c6771050f2b40516
2021-09-28 13:06:39 -04:00
Julian V. Modesto f9ab824bc9 Remove deprecated kubectl --dry-run values.
The boolean values for --dry-run have been deprecated for removal since
1.18, more than 2 releases.

The default value for --dry-run with the flag set and unspecified has
been deprecated for removal since 1.18, more than 2 releases.

Both values are now removed in this change. Any kubectl --dry-run
usage no longer accepts --dry-run=(true|false) boolean values and usage
now requires that a value of (client|server|none) is specified.

Kubernetes-commit: e0b7a85ee5b5d546bec2dc0e8cbf5cd4c0c684d8
2021-09-28 10:03:20 -04:00
Marc Khouzam e6118325f3 Ignore flags that could precede the Cobra command
See https://github.com/kubernetes/kubectl/issues/1119

Signed-off-by: Marc Khouzam <marc.khouzam@montreal.ca>

Kubernetes-commit: d41c2685b67317fea1d1a3843d8f5870bc724b3b
2021-09-20 18:20:49 -04:00
Marc Khouzam 10504c18ad Do not try to load plugins for cobra commands
Cobra adds the commands 'help', '__complete' and '__completeNoDesc'
inside rootCmd.Execute(), however, when kubectl decides if it should
lookup plugins, rootCmd.Execute() had not been called yet.  Therefore,
the call to cmd.Find(cmdPathPieces) done by kubectl does not find the
commands added by Cobra.  To fix this we must check for them explicitly.

Signed-off-by: Marc Khouzam <marc.khouzam@montreal.ca>

Kubernetes-commit: e703b3d25377e763b117805b3d88fe7236f3ff76
2021-09-19 14:34:10 -04:00
caozhiyuan 0cf1a18bec handle error when parse Quantity
Kubernetes-commit: b9d7584c3a838d83c6c8c6e405907bf05addc850
2021-09-18 15:05:21 +08:00
wujiangfa-xlauncher cadea4d691 fix top node output format incorrect
#105112

Kubernetes-commit: e838017f11dae4bc1c0a12c9703d0153661bd27d
2021-09-18 09:41:51 +08:00
Kubernetes Publisher d11f42ab70 Merge pull request #104761 from lauchokyip/improveCM
Improve create configmap test

Kubernetes-commit: ff593c89a0c8c46e37fca168e05d4fa09d15f353
2021-09-17 13:56:41 +00:00
Kubernetes Publisher b48b62c33b Merge pull request #104949 from Karthik-K-N/json-iterator-version-update
Updated json-iterator version to 1.1.12 from 1.1.11

Kubernetes-commit: 6a49ed41eab79d745c53723ce7f134222279545e
2021-09-17 13:56:39 +00:00
Patrick Ohly 466b483531 initialize logging after flag parsing
It wasn't documented that InitLogs already uses the log flush frequency, so
some commands have called it before parsing (for example, kubectl in the
original code for logs.go). The flag never had an effect in such commands.

Fixing this turned into a major refactoring of how commands set up flags and
run their Cobra command:

- component-base/logs: implicitely registering flags during package init is an
  anti-pattern that makes it impossible to use the package in commands which
  want full control over their command line. Logging flags must be added
  explicitly now, something that the new cli.Run does automatically.

- component-base/logs: AddFlags would have crashed in kubectl-convert if it
  had been called because it relied on the global pflag.CommandLine. This
  has been fixed and kubectl-convert now has the same --log-flush-frequency
  flag as other commands.

- component-base/logs/testinit: an exception are tests where flag.CommandLine has
  to be used. This new package can be imported to add flags to that
  once per test program.

- Normalization of the klog command line flags was inconsistent. Some commands
  unintentionally didn't normalize to the recommended format with hyphens. This
  gets fixed for sample programs, but not for production programs because
  it would be a breaking change.

This refactoring has the following user-visible effects:

- The validation error for `go run ./cmd/kube-apiserver --logging-format=json
  --add-dir-header` now references `add-dir-header` instead of `add_dir_header`.

- `staging/src/k8s.io/cloud-provider/sample` uses flags with hyphen instead of
  underscore.

- `--log-flush-frequency` is not listed anymore in the --logging-format flag's
  `non-default formats don't honor these flags` usage text because it will also
  work for non-default formats once it is needed.

- `cmd/kubelet`: the description of `--logging-format` uses hyphens instead of
  underscores for the flags, which now matches what the command is using.

- `staging/src/k8s.io/component-base/logs/example/cmd`: added logging flags.

- `apiextensions-apiserver` no longer prints a useless stack trace for `main`
  when command line parsing raises an error.

Kubernetes-commit: 21d1bcd6b8498370832fa76f680d3de56837bc83
2021-09-16 18:18:35 +02:00
Kubernetes Publisher 159a770147 Merge pull request #104711 from claudiubelu/update-pause-3.6
update pause image references to use 3.6

Kubernetes-commit: c79f7c1add652ce7c70205bb0ba2911744ce640b
2021-09-14 04:15:52 +00:00
Harjas 809211b6c8 kubectl: Use fields from event series when computing describe events for a object (#104482)
* take into account new fields for event

* add event with old event fields for test

* fix: remove unnecessary "+1" from event series count

* fix: update the assertion for failing test case

Kubernetes-commit: c6935ad50e0809c1dc2d3ac9000abda0ecb49bcc
2021-09-14 00:18:50 +00:00
Karthik K N bbcee55a4a Updated vendor files and pinned versions
Kubernetes-commit: c5b4e05834d8edceac94ab1a91c3153581534393
2021-09-13 15:42:42 +05:30
Kubernetes Publisher b137e419be Merge pull request #104884 from eddiezane/ez/update-kubectl-run-flags
Remove functionality from deprecated kubectl run flags

Kubernetes-commit: d6acb7ce01cddb611592d6b8e3c218431000d295
2021-09-10 16:45:48 +00:00
Kubernetes Publisher 512e110f9a Merge pull request #104103 from pohly/logr-1.0
klog 2.20.0, logr v1.1.0, zapr v1.1.0

Kubernetes-commit: 5b49d125b76b4d92d5f782630b75b911fee75aaa
2021-09-10 00:11:31 +00:00
Eddie Zaneski 20604e9e21 Remove functionality from deprecated kubectl run flags
Signed-off-by: Eddie Zaneski <eddiezane@gmail.com>

Kubernetes-commit: da8f404ae09823ff5fa214397215263f095e90f2
2021-09-09 15:22:28 -06:00
Chok Yip Lau fad6761bba Improve configmap test
Kubernetes-commit: fa7ad6e4657769f767e3a34407cb6ad327d5259c
2021-09-03 15:54:11 -04:00
Kubernetes Publisher 6e3acf365d Merge pull request #104621 from jaehnri/docs/KUBECTL-1100
Fix typo in kubectl describe pods example

Kubernetes-commit: 033456a2b2c98984a9d6a3eae0445fc15935cdf4
2021-09-02 16:40:14 +00:00