Commit Graph

17820 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
08bbecb8e3 Merge pull request #115465 from seans3/openapi-client-testing
Refactor fake versions of openapi client into testing subdir
2023-02-14 16:35:54 -08:00
Kubernetes Prow Robot
b8688048f8 Merge pull request #115758 from sourcelliu/storageversion
Remove unused code
2023-02-14 14:26:03 -08:00
Kubernetes Prow Robot
4cf352c4bb Merge pull request #115456 from pohly/goroutine-leak-check
test/integration: goroutine leak check
2023-02-14 08:31:31 -08:00
mantuliu
bc70548c47 Remove unused code
Signed-off-by: mantuliu <240951888@qq.com>
2023-02-14 20:08:11 +08:00
Kubernetes Prow Robot
5ad9e41879 Merge pull request #114987 from astefanutti/pr-codegen-applyconfig
Add applyconfiguration generator to code-generator script
2023-02-14 03:19:30 -08:00
Patrick Ohly
f131cabfa0 test: use go-uber/goleak for strict leak checking
It provides more readable output and has additional APIs for using it inside a
unit test. goleak.IgnoreCurrent is needed to filter out the goroutine that gets
started when importing go.opencensus.io/stats/view.

In order to handle background goroutines that get created on demand and cannot
be stopped (like the one for LogzHealth), a helper function ensures that those
are running before calling goleak.IgnoreCurrent. Keeping those goroutines
running is not a problem and thus not worth the effort of adding new APIs to
stop them.

Other goroutines are genuine leaks for which no fix is available. Those get
suppressed via IgnoreTopFunction, which works as long as that function
is unique enough.

Example output for the leak fixed in https://github.com/kubernetes/kubernetes/pull/115423:

    E0202 09:30:51.641841   74789 etcd.go:205] "EtcdMain goroutine check" err=<
        found unexpected goroutines:
        [Goroutine 4889 in state chan receive, with k8s.io/apimachinery/pkg/watch.(*Broadcaster).loop on top of the stack:
        goroutine 4889 [chan receive]:
        k8s.io/apimachinery/pkg/watch.(*Broadcaster).loop(0xc0076183c0)
        	/nvme/gopath/src/k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/watch/mux.go:268 +0x65
        created by k8s.io/apimachinery/pkg/watch.NewBroadcaster
        	/nvme/gopath/src/k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/watch/mux.go:77 +0x116
    >
2023-02-14 12:11:37 +01:00
Sean Sullivan
869da89eab Refactor fake versions of openapi client into testing subdir 2023-02-13 17:43:01 -08:00
Kubernetes Prow Robot
0e5d4a81f1 Merge pull request #115732 from jsafrane/revert-root-test
Revert #114605: its unit test requires root permission
2023-02-13 15:57:29 -08:00
Kubernetes Prow Robot
30f1567145 Merge pull request #115685 from skitt/rest-req-error
client-go: add an Error() function on Request
2023-02-13 14:53:41 -08:00
Kubernetes Prow Robot
281acc6a6b Merge pull request #115722 from ardaguclu/restclientgetter-debug
kubectl debug: Use restClientGetter instead cmd.Factory
2023-02-13 11:45:41 -08:00
Jan Safranek
673ea6af78 Revert "add unit test for check unmounted behavior of Unmount"
This reverts commit bf77290bbf.

Because the unit tests requires to run as root.
2023-02-13 18:50:29 +01:00
Jan Safranek
e7bd00b0b8 Revert "check umount result"
This reverts commit 368fd9d01e.
2023-02-13 17:52:26 +01:00
Kubernetes Prow Robot
79886690d4 Merge pull request #114920 from astefanutti/pr-codegen-144
fix: applyconfiguration-gen fails for types with non-builtin map fields
2023-02-13 06:49:30 -08:00
Stephen Kitt
f69c1c4746 client-go: add an Error() function on Request
Requests can accumulate errors with no obvious indication, e.g. if
their primary purpose is to construct a URL: URL() itself doesn't
return an error if r.err is non-nil.

Instead of changing URL() to return an error, which has quite a large
impact, add an Error() function and indicate on URL() that it should
be checked.

Signed-off-by: Stephen Kitt <skitt@redhat.com>
2023-02-13 15:12:43 +01:00
Arda Güçlü
f5b0d728c5 kubectl debug: Use restClientGetter instead cmd.Factory
As the move towards using `restClientGetter` interface instead
gigantic `cmd.Factory`, this PR does that change.
2023-02-13 13:17:36 +03:00
Arda Güçlü
d66b339868 kubectl debug: Initialize pod client and builder in complete
This PR initializes podclient and builder in complete function
instead run function.
2023-02-13 13:17:31 +03:00
Arda Güçlü
3ffdee7d2b kubectl debug: Standartize add flag function
This PR standartize add flag function interface to align with
other kubectl commands.
2023-02-13 12:36:18 +03:00
Kubernetes Prow Robot
cfa295f569 Merge pull request #115594 from wking/included-failed-to-evict-pod-namespace
kubectl/pkg/drain: Include namespace in evictPods return error
2023-02-12 20:27:28 -08:00
Kubernetes Prow Robot
d0db9a959b Merge pull request #115677 from aramase/kmsv2-middleware
[KMSv2] implement local KEK service
2023-02-10 16:21:29 -08:00
Monis Khan
ee2e1ff99a implement service.Service interface and update localKEK generation
Signed-off-by: Anish Ramasekar <anish.ramasekar@gmail.com>
Co-authored-by: Monis Khan <mok@microsoft.com>
Signed-off-by: Anish Ramasekar <anish.ramasekar@gmail.com>
2023-02-10 22:12:34 +00:00
Kubernetes Prow Robot
16bd7e6a79 Merge pull request #115674 from mengjiao-liu/update-podsecurity-registry
PodSecurity test: update registry from k8s.gcr.io to registry.k8s.io
2023-02-10 10:45:30 -08:00
Antonin Stefanutti
80246e4469 Update staging modules and vendor dir with new code-generator version 2023-02-10 11:03:05 +01:00
Antonin Stefanutti
634fb1b936 Update client examples with generated apply configurations 2023-02-10 11:01:37 +01:00
Antonin Stefanutti
a6109241a3 code-generator: fix GOPATH unbound variable 2023-02-10 11:01:37 +01:00
Antonin Stefanutti
65c09568d1 Add applyconfiguration-gen to code-generator tools.go 2023-02-10 11:01:37 +01:00
Antonin Stefanutti
299f74c161 code-generator: regen examples with apply configurations 2023-02-10 11:01:35 +01:00
Antonin Stefanutti
d2bd7d8557 Add applyconfiguration generator to code-generator script 2023-02-10 10:59:35 +01:00
Arda Güçlü
c40f9f8bbb Add explicitNamespace into ignore list in debug unit tests
Since, `explicitNamespace` is set by kubeconfig automatically, we can
safely add this field into ignore list.
2023-02-10 11:31:19 +03:00
Arda Güçlü
e0fedec69d (kubectl debug): Support debugging via files
Currently `kubectl debug` only supports passing names in command line.
However, users might want to pass resources in files by passing `-f` flag like
in all other kubectl commands.

This PR adds this ability.
2023-02-10 10:21:30 +03:00
Krzysztof Ostrowski
711a985217 kmsv2: add LocalKEKService
Signed-off-by: Krzysztof Ostrowski <kostrows@redhat.com>
2023-02-10 07:18:57 +00:00
Mengjiao Liu
51089767a6 PodSecurity test: update registry from k8s.gcr.io to registry.k8s.io 2023-02-10 11:02:42 +08:00
Anish Ramasekar
b6b00e65bc logcheck.conf: ensure that kms and value/encrypt uses structured logging
Signed-off-by: Anish Ramasekar <anish.ramasekar@gmail.com>
2023-02-10 02:28:39 +00:00
Anish Ramasekar
6db7496db6 [KMS] Use structured logging in value/encrypt
Signed-off-by: Anish Ramasekar <anish.ramasekar@gmail.com>
2023-02-09 23:57:07 +00:00
Kubernetes Prow Robot
9a51625ebe Merge pull request #115665 from aramase/aramase/f/update_vendor_k8s_utils
Update k8s.io/utils to `a36077c30491`
2023-02-09 15:50:53 -08:00
Kubernetes Prow Robot
0698d9eb82 Merge pull request #115649 from aramase/grpc-metrics
[KMSv2] Add metrics for grpc service
2023-02-09 15:50:45 -08:00
Anish Ramasekar
09e02052fd Update k8s.io/utils to a36077c30491
Signed-off-by: Anish Ramasekar <anish.ramasekar@gmail.com>
2023-02-09 20:09:41 +00:00
Anish Ramasekar
de3b2d525b [KMSv2] Add metrics for grpc service
Signed-off-by: Anish Ramasekar <anish.ramasekar@gmail.com>
2023-02-09 18:51:37 +00:00
Anish Ramasekar
f72cf5c510 [KMSv2] store hash of encrypted DEK as key in cache
Signed-off-by: Anish Ramasekar <anish.ramasekar@gmail.com>
2023-02-09 17:26:27 +00:00
Shang Jian Ding
d35da348c6 Implement kubectl debug profiles: general, baseline, and restricted (#114280)
* feat(debug): add more profiles

Signed-off-by: Jian Zeng <anonymousknight96@gmail.com>

* feat(debug): implment serveral debugging profiles

Including `general`, `baseline` and `restricted`.

I plan to add more profiles afterwards, but I'd like to get early
reviews.

Signed-off-by: Jian Zeng <anonymousknight96@gmail.com>

* test: add some basic tests

Signed-off-by: Jian Zeng <anonymousknight96@gmail.com>

* chore: add some helper functions

Signed-off-by: Jian Zeng <anonymousknight96@gmail.com>

* ensure pod copies always get their probes cleared

not wanting probes to be present is something we want
for all the debug profiles; so an easy place to implement
this is at the time of pod copy generation.

* ensure debug container in pod copy is added before the profile application

The way that the container list modification was defered causes the
debug container to be added after the profile applier runs. We now
make sure to have the container list modification happen before
the profile applier runs.

* make switch over pod copy, ephemeral, or node more clear

* use helper functions

added a helper function to modify a container out of a list that
matches the provided container name.

also added a helper function that adds capabilities to container
security.

* add tests for the debug profiles

* document new debugging profiles in command line help text

* add file header to profiles_test.go

* remove URL to KEP from help text

* move probe removal to the profiles

* remove mustNewProfileApplier in tests

* remove extra whiteline from import block

* remove isPodCopy helper func

* switch baselineProfile to using the modifyEphemeralContainer helper

* rename addCap to addCapability, and don't do deep copy

* fix godoc on modifyEphemeralContainer

* export DebugOptions.Applier for extensibility

* fix unit test

* fix spelling on overriden

* remove debugStyle facilities

* inline setHostNamespace helper func

* remove modifyContainer, modifyEphemeralContainer, and remove probes

their logic have been in-lined at call sites

* remove DebugApplierFunc convenience facility

* fix baseline profile implementation

it shouldn't have SYS_PTRACE base on
https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/1441-kubectl-debug#profile-baseline

* remove addCapability helper, in-lining at call sites

* address Arda's code review comments

1 use Bool instead of BoolPtr (now deprecated)
2 tweak for loop to continue when container name is not what we expect
3 use our knowledge on how the debug container is generated to simplify
  our modification to the security context
4 use our knowledge on how the pod for node debugging is generated to no
  longer explicit set pod's HostNework, HostPID and HostIPC fields to
  false

* remove tricky defer in generatePodCopyWithDebugContainer

* provide helper functions to make debug profiles more readable

* add note to remind people about updating --profile's help text when adding new profiles

* Implement helper functions with names that improve readability

* add styleUnsupported to replace debugStyle(-1)

* fix godoc on modifyContainer

* drop style prefix from debugStyle values

* put VisitContainers in podutils & use that from debug

* cite source for ContainerType and VisitContainers

* pull in AllContainers ContainerType value

* have VisitContainer take pod spec rather than pod

* in-line modifyContainer

* unexport helper funcs

* put debugStyle at top of file

* merge profile_applier.go into profile.go

* tweak dropCapabilities

* fix allowProcessTracing & add a test for it

* drop mask param from help funcs, since we can already unambiguous identify the container by name

* fix grammar in code comment

---------

Signed-off-by: Jian Zeng <anonymousknight96@gmail.com>
Co-authored-by: Jian Zeng <anonymousknight96@gmail.com>
2023-02-09 09:18:22 -08:00
Kubernetes Prow Robot
19eddfc567 Merge pull request #110953 from Abirdcfly/220705
cleanup kubectl describe cronjob v1beta1 in 1.26
2023-02-09 02:40:24 -08:00
Kubernetes Prow Robot
b0171f77f6 Merge pull request #115514 from pohly/event-broadcaster-shutdown
client-go: don't wait too long after EventBroadcaster.Shutdown
2023-02-08 04:38:58 -08:00
Kubernetes Prow Robot
dfb976e25a Merge pull request #114376 from baomingwang/serialization-error-metric
Added serialization from etcd error metric
2023-02-07 13:46:59 -08:00
W. Trevor King
b6318d4e5b kubectl/pkg/drain: Include namespace in evictPods return error
And also in the terminating-namespace log output.  This makes it
easier to track down drain-blocking pods, without having to hunt
around in earlier logs for 'evicting pod ...' messages.  Before this
change, caller logs might look like:

  evicting pod {namespace}/{name}
  ...
  error when waiting for pod "{name}" terminating: global timeout reached: 20s

With this change, they will look like:

  evicting pod {namespace}/{name}
  ...
  error when waiting for pod "{name}" in namespace "{namespace}" to terminate: global timeout reached: 20s
2023-02-07 13:14:27 -08:00
Kubernetes Prow Robot
22b88dea36 Merge pull request #115315 from enj/enj/i/kas_kubelet_conn_close
kubelet/client: collapse transport wiring onto standard approach
2023-02-07 07:01:14 -08:00
Kubernetes Prow Robot
b30ff25fdb Merge pull request #112662 from Iceber/fix_sample_apiserver_readme
sample-apiserver: create the client cert with SHA256
2023-02-07 07:01:01 -08:00
Kubernetes Prow Robot
4f321041bd Merge pull request #115537 from MadhavJivrajani/bump-tools-deps-go120
*: Bump golangci-lint version and adapt to new linters
2023-02-07 05:53:12 -08:00
Madhav Jivrajani
5e1f440d0a *: Fix linter warnings
Adapt to newly improved linters in golangci-lint v1.51.1

Signed-off-by: Madhav Jivrajani <madhav.jiv@gmail.com>
2023-02-07 13:01:41 +05:30
Kubernetes Prow Robot
6eb008620c Merge pull request #115379 from artemvmin/serial-mkfs
Add an option to limit the number of concurrent mkfs calls
2023-02-06 18:26:58 -08:00
Monis Khan
754cb3d601 kubelet/client: collapse transport wiring onto standard approach
Signed-off-by: Monis Khan <mok@microsoft.com>
2023-02-06 20:34:49 -05:00
Kubernetes Prow Robot
2ab3151936 Merge pull request #108396 from tkashem/retry-metric
client-go: add a metric to count request retries
2023-02-06 15:30:58 -08:00