Commit Graph

893 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
4ca91a6542 Merge pull request #134994 from liggitt/drop-strict-cost
Drop locked StrictCostEnforcementForVAP and StrictCostEnforcementForWebhooks feature gates
2025-10-31 07:38:12 -07:00
Kubernetes Prow Robot
b4d4cc9384 Merge pull request #123642 from aramase/aramase/f/kep_3331_jwks_metrics
Add JWKS fetch metrics for jwt authenticator
2025-10-30 22:42:02 -07:00
Jordan Liggitt
bd11e52bfc Drop locked StrictCostEnforcementForVAP and StrictCostEnforcementForWebhooks feature gates 2025-10-31 00:03:42 -04:00
Siyuan Zhang
67143028e7 Add --min-compatibility flag.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2025-10-30 13:36:38 -05:00
Anish Ramasekar
24a53fa638 add JWKS fetch metrics for jwt authenticator
Signed-off-by: Anish Ramasekar <anish.ramasekar@gmail.com>
2025-10-29 11:42:40 -07:00
Sean Sullivan
413c34f319 Added feature gate and tests 2025-10-21 20:31:24 +00:00
Kubernetes Prow Robot
db63a581ca Merge pull request #134366 from tallclair/feature-gates-test
Set multiple feature gates simultaneously in test
2025-10-13 13:11:33 -07:00
Antonio Ojea
0b0a5974f8 integration test: webhook proxy behavior
adds a new integration test to verify that the API server's egress
to admission webhooks correctly respects the standard `HTTPS_PROXY`
and `NO_PROXY` environment variables.

It adds a new test util to implement a Fake DNS server that allows
to override DNS resolution in tests, specially useful for integration
test that can only bind to localhost the servers, that is ignored
by certain functionalities.
2025-10-02 22:31:08 +00:00
Tim Allclair
4986abe0b8 Automated refactoring to use SetFeatureGatesDuringTest 2025-10-01 21:10:53 -07:00
Jefftree
872981a205 Rename CLE test directories 2025-09-12 21:17:06 +00:00
Joe Betz
fc091d93d5 Update tests that depend on internal model names
Signed-off-by: Joe Betz <jpbetz@google.com>
2025-09-10 15:52:59 -04:00
Kubernetes Prow Robot
2854e946c3 Merge pull request #131430 from carlory/follow-up-127017
remove v1beta3 flowcontrol from rest storage
2025-09-10 11:48:05 -07:00
carlory
7e6aafe157 fix intergation test
Signed-off-by: carlory <baofa.fan@daocloud.io>
2025-09-10 22:51:41 +08:00
Kubernetes Prow Robot
ef4add4509 Merge pull request #133356 from mayuka-c/issue-133175
Replace usage of deprecated ErrWaitTimeout with recommended method across all Pkgs
2025-09-05 06:43:34 -07:00
Kubernetes Prow Robot
a6693542b7 Merge pull request #133781 from pohly/test-apiserver-flag-registration
test/integration/apiserver: fix several data races
2025-09-02 13:09:17 -07:00
Patrick Ohly
fa1f9d444c apiserver: avoid default toleration seconds data race for all tests
This reverts commit 2e756e7412,
which addressed the data race only for test/integration/apiserver/oidc.
It also occurs for test/integration/controlplane/transformation:

    WARNING: DATA RACE
    Read at 0x000008b9de38 by goroutine 104616:
      k8s.io/kubernetes/plugin/pkg/admission/defaulttolerationseconds.RegisterFlags()
          /home/prow/go/src/k8s.io/kubernetes/plugin/pkg/admission/defaulttolerationseconds/admission.go:42 +0x30
      k8s.io/kubernetes/pkg/kubeapiserver/options.registerAllAdmissionPluginFlags()
          /home/prow/go/src/k8s.io/kubernetes/pkg/kubeapiserver/options/plugins.go:115 +0x64
      k8s.io/kubernetes/pkg/kubeapiserver/options.(*AdmissionOptions).AddFlags()
          /home/prow/go/src/k8s.io/kubernetes/pkg/kubeapiserver/options/admission.go:73 +0x55
      k8s.io/kubernetes/pkg/controlplane/apiserver/options.(*Options).AddFlags()
          /home/prow/go/src/k8s.io/kubernetes/pkg/controlplane/apiserver/options/options.go:154 +0x388
      k8s.io/kubernetes/cmd/kube-apiserver/app/options.(*ServerRunOptions).Flags()
          /home/prow/go/src/k8s.io/kubernetes/cmd/kube-apiserver/app/options/options.go:101 +0x73
      k8s.io/kubernetes/cmd/kube-apiserver/app/testing.StartTestServer()
          /home/prow/go/src/k8s.io/kubernetes/cmd/kube-apiserver/app/testing/testserver.go:219 +0xb77
      k8s.io/kubernetes/test/integration/controlplane/transformation.newTransformTest()
          /home/prow/go/src/k8s.io/kubernetes/test/integration/controlplane/transformation/transformation_test.go:131 +0x6d0
      k8s.io/kubernetes/test/integration/controlplane/transformation.TestKMSv2Healthz()
          /home/prow/go/src/k8s.io/kubernetes/test/integration/controlplane/transformation/kmsv2_transformation_test.go:874 +0x1c8
      testing.tRunner()
          /usr/local/go/src/testing/testing.go:1792 +0x225
      testing.(*T).Run.gowrap1()
          /usr/local/go/src/testing/testing.go:1851 +0x44

    Previous write at 0x000008b9de38 by goroutine 111926:
      github.com/spf13/pflag.newInt64Value()
          /home/prow/go/src/k8s.io/kubernetes/vendor/github.com/spf13/pflag/int64.go:9 +0x49
      github.com/spf13/pflag.(*FlagSet).Int64Var()
          /home/prow/go/src/k8s.io/kubernetes/vendor/github.com/spf13/pflag/int64.go:41 +0x3d
      k8s.io/kubernetes/plugin/pkg/admission/defaulttolerationseconds.RegisterFlags()
          /home/prow/go/src/k8s.io/kubernetes/plugin/pkg/admission/defaulttolerationseconds/admission.go:42 +0x25
      k8s.io/kubernetes/pkg/kubeapiserver/options.registerAllAdmissionPluginFlags()
          /home/prow/go/src/k8s.io/kubernetes/pkg/kubeapiserver/options/plugins.go:115 +0x64
      k8s.io/kubernetes/pkg/kubeapiserver/options.(*AdmissionOptions).AddFlags()
          /home/prow/go/src/k8s.io/kubernetes/pkg/kubeapiserver/options/admission.go:73 +0x55
      k8s.io/kubernetes/pkg/controlplane/apiserver/options.(*Options).AddFlags()
          /home/prow/go/src/k8s.io/kubernetes/pkg/controlplane/apiserver/options/options.go:154 +0x388
      k8s.io/kubernetes/cmd/kube-apiserver/app/options.(*ServerRunOptions).Flags()
          /home/prow/go/src/k8s.io/kubernetes/cmd/kube-apiserver/app/options/options.go:101 +0x73
      k8s.io/kubernetes/cmd/kube-apiserver/app/testing.StartTestServer()
          /home/prow/go/src/k8s.io/kubernetes/cmd/kube-apiserver/app/testing/testserver.go:219 +0xb77
      k8s.io/kubernetes/test/integration/controlplane/transformation.newTransformTest()
          /home/prow/go/src/k8s.io/kubernetes/test/integration/controlplane/transformation/transformation_test.go:131 +0x6d0
      k8s.io/kubernetes/test/integration/controlplane/transformation.TestKMSv2FeatureFlag()
          /home/prow/go/src/k8s.io/kubernetes/test/integration/controlplane/transformation/kmsv2_transformation_test.go:1009 +0x117
      testing.tRunner()
          /usr/local/go/src/testing/testing.go:1792 +0x225
      testing.(*T).Run.gowrap1()
          /usr/local/go/src/testing/testing.go:1851 +0x44

A more general solution is to lock while registering the variables (= write)
and while reading the variables once in InspectFeatureGates.
2025-09-02 21:01:04 +02:00
Stephen Kitt
c35d5473dd Remove the otel semantics override
With the bump to otelhttp 0.61, this is no longer necessary.

Signed-off-by: Stephen Kitt <skitt@redhat.com>
2025-08-28 09:23:06 +02:00
Mayuka Channankaiah
6c56d2fd1b Replace usage of deprecated ErrWaitTimeout with recommended method across all Pkgs 2025-08-01 14:18:06 +05:30
David Ashpole
78c9672deb migrate tracing tests to use the new otelhttp semantic conventions 2025-07-30 17:12:26 +00:00
Anish Ramasekar
48eef9ce9a test: fix TestStructuredAuthenticationConfigReload flake by handling expected network errors
Signed-off-by: Anish Ramasekar <anish.ramasekar@gmail.com>
2025-07-29 08:06:39 +00:00
Patrick Ohly
21d929f599 integration: use --runtime-config-emulation-forward-compatible
Some tests do version emulation and need the DRA feature. In that combination
the --runtime-config-emulation-forward-compatible option is needed to allow
enabling the V1 API although it's only available in 1.34.
2025-07-24 08:33:56 +02:00
Patrick Ohly
5c4f81743c DRA: use v1 API
As before when adding v1beta2, DRA drivers built using the
k8s.io/dynamic-resource-allocation helper packages remain compatible with all
Kubernetes release >= 1.32. The helper code picks whatever API version is
enabled from v1beta1/v1beta2/v1.

However, the control plane now depends on v1, so a cluster configuration where
only v1beta1 or v1beta2 are enabled without the v1 won't work.
2025-07-24 08:33:45 +02:00
Patrick Ohly
cff91579e8 DRA API: v1 registration + tests 2025-07-24 08:30:25 +02:00
Kubernetes Prow Robot
9827205bfe Merge pull request #132340 from dashpole/graduate_tracing
Graduate API Server Tracing to GA
2025-07-21 14:14:33 -07:00
Anish Ramasekar
2e756e7412 fix data race in OIDC integration tests by serializing test server starts
Signed-off-by: Anish Ramasekar <anish.ramasekar@gmail.com>
2025-07-20 15:17:04 -05:00
Kubernetes Prow Robot
033ffc73d6 Merge pull request #132299 from aramase/aramase/f/authn_config_hash_metric
Add `last_config_info` metric for authn, authz and encryption config
2025-07-17 18:24:24 -07:00
Anish Ramasekar
21e2fcea9e Add automatic_reload_last_config_info metric for auth configs
Signed-off-by: Anish Ramasekar <anish.ramasekar@gmail.com>
2025-07-17 17:47:51 -05:00
Kubernetes Prow Robot
3dd0e86190 Merge pull request #132821 from cici37/mapBeta
[KEP-3962]Promote MutatingAdmissionPolicy to Beta
2025-07-17 14:18:24 -07:00
Kubernetes Prow Robot
e55e75f6d9 Merge pull request #132768 from enj/enj/f/authn_egress
Add egress selector support to JWT authenticator
2025-07-15 17:48:29 -07:00
Monis Khan
b69fd9d42c Add egress selector support to JWT authenticator
This change adds the StructuredAuthenticationConfigurationEgressSelector
beta feature (default on).  When enabled, each JWT authenticator
specified via the AuthenticationConfiguration.jwt array can
optionally specify either the controlplane or cluster egress
selector by setting the issuer.egressSelectorType field.  When
unset, the prior behavior of using no egress selector is retained.

Egress selection is valuable when the persona configuring the JWT
authenticator and the persona managing the control plane are
different individuals.  This change allows the latter to protect
control plane network services from unexpected connections.

Signed-off-by: Monis Khan <mok@microsoft.com>
2025-07-15 16:03:07 -04:00
Cici Huang
a3ecea296c manual change 2025-07-15 01:44:13 +00:00
Kubernetes Prow Robot
3430e34d88 Merge pull request #132656 from liggitt/selector-authz
KEP-4601: Graduate selector authorization to stable
2025-07-14 16:42:38 -07:00
Jordan Liggitt
a04e7cf5eb KEP-4601: Graduate selector authorization to stable 2025-07-14 16:19:52 -04:00
Kubernetes Prow Robot
12dc894f80 Merge pull request #127322 from vrutkovs/tracing-set-audit-id
tracing: set audit-id on incoming requests
2025-07-13 17:58:23 -07:00
ylink-lfs
e0f9914ef7 chore: replace int32Ptr usage with ptr.To 2025-07-13 08:12:55 +08:00
Jefftree
adb71d041d Forcefully expire lease in integration test to fix flake 2025-07-08 17:51:59 +00:00
PatrickLaabs
1802c55652 chore: depr. pointer pkg replacement for test integration 2025-07-06 22:02:04 +02:00
Kubernetes Prow Robot
201325e869 Merge pull request #132433 from michaelasp/configurablecle
feat: make CLE timers configurable
2025-06-30 12:08:31 -07:00
David Ashpole
75fc2b1cf6 promote TracingConfiguration to v1 2025-06-30 12:31:23 +00:00
Kubernetes Prow Robot
28e4f3f6a3 Merge pull request #131350 from pohly/etcd-output
etcd output interception
2025-06-26 04:46:29 -07:00
Michael Aspinwall
1a59c250ea feat: make CLE timers configurable 2025-06-25 16:38:50 +00:00
Ben Luddy
190c8c7abc Use per-policy marker names for VAP integration tests.
Writes to policy resources don't instantaneously take effect in admission. ValidatingAdmissionPolicy
integration tests determine that the policies under test have taken effect by adding a sentinel
policy rule and polling until that rule is applied to a request.

If the marker resource names are the same for each test case in a series of test cases, then
observing a policy's effect on a marker request only indicates that _any_ test policy is in effect,
but it's not necessarily the policy the current test case is waiting for. For example:

1. Test 1 creates a policy and binding.

2. The policy and binding are observed by the admission plugin and take effect.

3. Test 1 observes that a policy is in effect via marker requests.

4. Test 1 exercises the behavior under test and successfully deletes the policy and binding it
created.

5. Test 2 creates a policy and binding.

6. Test 2 observes that a policy is in effect via marker requests, but the policy in effect is still
the one created by Test 1.

7. Test 2 exercises the behavior under test, which fails because it was evaluated against Test 1's
policy.

Generating a per-policy name for the marker resource in each test resolves the timing issue. In the
example, step (6) will not proceed until the admission plugin has observed the policy and binding
created in (5).
2025-06-25 11:17:20 -04:00
Kubernetes Prow Robot
5e33c00e37 Merge pull request #132336 from dashpole/fix_apiserver_tracing_race
Fix APIServerTracing test data race
2025-06-22 20:26:56 -07:00
Kubernetes Prow Robot
b569406b79 Merge pull request #129438 from pacoxu/apiserver-probe-etcd
add etcd server overrides to etcd probe factory for healthz and readyz
2025-06-19 11:30:52 -07:00
Paco Xu
891e7fec6e add seperate health check/probe for multi etcd override servers
- grouping health checks for exclusion purposes & add exclude integration test

Signed-off-by: Paco Xu <paco.xu@daocloud.io>
2025-06-17 09:30:41 +08:00
David Ashpole
f4a4586255 fix APIServerTracing test data race 2025-06-16 17:36:23 +00:00
Kubernetes Prow Robot
7e94ec9eac Merge pull request #132000 from pohly/dra-api-alpha3-removal
DRA API: remove obsolete types from v1alpha3
2025-06-12 09:39:12 -07:00
Anish Ramasekar
512f000d0f Update tests for StructuredAuthenticationConfiguration feature gate GA
Signed-off-by: Anish Ramasekar <anish.ramasekar@gmail.com>
2025-06-10 14:11:30 -07:00
Vinayak Goyal
26b188aaa8 KEP-4633: Graduate to Stable. 2025-06-10 17:13:15 +00:00
Patrick Ohly
10de6780cf DRA API: remove obsolete types from v1alpha3
The v1alpha3 version is still needed for DeviceTaintRule, but the rest of the
types and most structs became obsolete in v1.32 when we introduced v1beta1 and
bumped the storage version to v1beta1.

Removing them now simplifies adding new features because new fields don't need
to be added to these obsolete types. This could have been done already in 1.33,
but wasn't to minimize disrupting on-going work.
2025-06-06 12:06:28 +02:00