Commit Graph

3159 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
5d94b2a8e8 Merge pull request #118709 from ty-dc/pr/ut
[UT] add ut for pkg/registry/networking/ipaddress
2023-09-04 02:49:48 -07:00
Kubernetes Prow Robot
efadb94a74 Merge pull request #120259 from SataQiu/clean-apf-20230830
apf: remove v1alpha1 API
2023-08-31 19:44:42 -07:00
Quan Tian
2b69daa960 Allow specifying ExternalTrafficPolicy for ClusterIP Services with ExternalIPs
When defining a ClusterIP Service, we can specify externalIP, and the
traffic policy of externalIP is subject to externalTrafficPolicy.
However, the policy can't be set when type is not NodePort or
LoadBalancer, and will default to Cluster when kube-proxy processes the
Service.

This commit updates the defaulting and validation of Service to allow
specifying ExternalTrafficPolicy for ClusterIP Services with
ExternalIPs.

Signed-off-by: Quan Tian <qtian@vmware.com>
2023-08-30 23:56:47 +08:00
SataQiu
2825519da2 apf: remove v1alpha1 API 2023-08-30 20:48:42 +08:00
Kubernetes Prow Robot
370c85f5ab Merge pull request #118493 from kerthcet/cleanup/pod-status-reason
Remove reasons from PodConditionType
2023-08-30 01:40:47 -07:00
Kubernetes Prow Robot
df8bfdf55e Merge pull request #120102 from p0lyn0mial/upstream-storage-etcd-new-params
storage/factory: extend the Create method by newList and resourcePrefix params
2023-08-24 05:22:32 -07:00
Lukasz Szaszkiewicz
ccabc01093 storage/factory: extend the Create method by newList and resourcePrefix params 2023-08-24 11:23:05 +02:00
Kubernetes Prow Robot
c034f321f9 Merge pull request #119879 from togettoyou/cleanup
Fix receiver names in legacyProvider
2023-08-23 08:07:29 -07:00
Kubernetes Prow Robot
c0691f3784 Merge pull request #119789 from thockin/deprecate_svc_lb_ingress_with_clusterip
Gate: disallow .status.loadBalancer on non-LB svc
2023-08-22 10:02:55 -07:00
Patrick Ohly
2472291790 api: introduce separate VolumeResourceRequirements struct
PVC and containers shared the same ResourceRequirements struct to define their
API. When resource claims were added, that struct got extended, which
accidentally also changed the PVC API. To avoid such a mistake from happening
again, PVC now uses its own VolumeResourceRequirements struct.

The `Claims` field gets removed because risk of breaking someone is low:
theoretically, YAML files which have a claims field for volumes now
get rejected when validating against the OpenAPI. Such files
have never made sense and should be fixed.

Code that uses the struct definitions needs to be updated.
2023-08-21 15:31:28 +02:00
Tim Hockin
a930892769 Gate: disallow .status.loadBalancer on non-LB svc
The fact that the .status.loadBalancer field can be set while .spec.type
is not "LoadBalancer" is a flub.  Any spec update will already clear
.status.ingress, so it's hard to really rely on this.  After this
change, updates which try to set this combination will fail validation.

Existing cases of this will not be broken.  Any spec/metadata update
will clear it (no error) and this is the only stanza of status.

New gate "AllowServiceLBStatusOnNonLB" is off by default, but can be
enabled if this change actually breaks someone, which seems exceeedingly
unlikely.
2023-08-20 16:40:41 -07:00
Kubernetes Prow Robot
ee265c92fe Merge pull request #119937 from RyanAoh/kep-1860-dev
Make Kubernetes aware of the LoadBalancer behaviour
2023-08-17 14:00:28 -07:00
git-jxj
a5b3a4b738 cleanup: Update deprecated FromInt to FromInt32 (#119858)
* redo commit

* apply suggestions from liggitt

* update Parse function based on suggestions
2023-08-16 09:33:01 -07:00
Kubernetes Prow Robot
fd4109d5f6 Merge pull request #119732 from sairameshv/pdb-fix
Fix to honor PDB with an empty selector `{}`
2023-08-15 19:44:00 -07:00
Aohan Yang
3ac2899d2b Add IP mode field 2023-08-14 11:24:49 +08:00
Junhao Zou
509ffe2938 Fix receiver names in legacyProvider 2023-08-10 14:59:46 +08:00
Mark Rossetti
0d90d1ffa5 Revert "Merge pull request #118895 from RyanAoh/kep-1860"
This reverts commit 890a6c8f70, reversing
changes made to 4f60a8d493.
2023-08-09 15:51:20 -07:00
Sai Ramesh Vanka
a6329ac453 Fix to honor PDB with an empty selector {}
PDB with an empty selector `{}` is selecting all the pods in a namespace.
But, during the `drain`, all the pods are getting evicted which is not expected.
This change should fix the issue and honor the pdb before evicting the pods.

Signed-off-by: Sai Ramesh Vanka <svanka@redhat.com>
2023-08-08 17:28:48 +05:30
Kubernetes Prow Robot
18f8cb8398 Merge pull request #118644 from alexzielenski/apiserver/policy/namespaceParamRef
KEP-3488: Promote ValidatingAdmissionPolicy to Beta
2023-07-21 17:44:08 -07:00
Kubernetes Prow Robot
f3a070f9c6 Merge pull request #116469 from RomanBednar/pv-phase-transition-time
PersistentVolume last phase transition time
2023-07-21 16:10:07 -07:00
Roman Bednar
a9c3444a47 test: add coverage for pv status update and create strategy 2023-07-21 21:39:16 +02:00
Roman Bednar
aa65bab426 implement pv last phase transition time 2023-07-21 20:42:25 +02:00
Roman Bednar
a31fee98f0 rename function for dropping disabled fields
The function should indicate it is specific for dropping spec fields.
2023-07-21 17:19:11 +02:00
Alexander Zielenski
88becfc0ba api: add v1beta1 ValidatingAdmissionPolicy/Binding types and storage 2023-07-20 13:24:09 -07:00
Kubernetes Prow Robot
5766947ab8 Merge pull request #119437 from serathius/etcd-semantics
Fix the semantic meaning of etcd server within component statuses and metrics.
2023-07-20 13:18:22 -07:00
Kubernetes Prow Robot
8a053c700a Merge pull request #119215 from alexzielenski/apiserver/policy/namespaceParamRef-alpha
KEP-3488: Per namespace policy params
2023-07-20 13:18:10 -07:00
Alexander Zielenski
c8dbf4712c add namespaceParamRef to v1alpha1 and internal
add required field to validation test

test multiple combinartions of paramRefs in binding tests

add validation test cases for new ParamRef fields
2023-07-20 09:30:09 -07:00
Marek Siarkowicz
03aad1f823 Fix the semantic meaning of etcd server within component statuses and metrics.
Instead of numerating all the etcd endpoints known by apiserver, we will
group them by purpose. `etcd-0` will be the default etcd, `etcd-1` will
be the first resource override, `etcd-2` will be the second override and
so on.
2023-07-20 15:08:41 +02:00
kannon92
ce92952037 add podReplacementPolicy and terminating field to job api 2023-07-19 16:34:38 +00:00
Kubernetes Prow Robot
f3f5dd99ac Merge pull request #119294 from mimowo/backoff-limit-per-index-api
Extend the Job API for BackoffLimitPerIndex
2023-07-18 10:05:21 -07:00
Kubernetes Prow Robot
56b59c89f5 Merge pull request #117666 from carlory/fix-008
Remove ability to re-enable serving deprecated policyv1beta1 APIs
2023-07-18 08:41:12 -07:00
Michal Wozniak
fcbfdc1710 Extend the Job API for BackoffLimitPerIndex 2023-07-18 11:28:15 +02:00
carlory
850dc6123a Remove ability to re-enable serving deprecated policyv1beta1 APIs 2023-07-18 10:24:26 +08:00
Aohan Yang
e6863757f4 Add IP mode field 2023-07-17 15:51:40 +08:00
Mike Spreitzer
2069835094 Tolerate only the two allowed field changes
Signed-off-by: Mike Spreitzer <mspreitz@us.ibm.com>
2023-07-14 01:01:43 +00:00
Abu Kashem
3754d2da20 apf: allow admin to change the Exempt field only of the exempt pl
Signed-off-by: Mike Spreitzer <mspreitz@us.ibm.com>
2023-07-14 01:01:29 +00:00
Dr. Stefan Schimanski
f1f2fa9da8 kube-apiserver/corerest: split apart generic code 2023-07-12 14:13:10 +02:00
Dr. Stefan Schimanski
a34e06e74c kube-apiserver/corerest: structure Config 2023-07-11 17:27:20 +02:00
Dr. Stefan Schimanski
75e3576523 kube-apiserver: rewire service controllers: kubernetesservice + IP repair 2023-07-11 17:27:20 +02:00
Dr. Stefan Schimanski
c733c57962 pkg/controlplane: wire core storage as RESTStorageProvider 2023-07-05 16:46:40 +02:00
Dr. Stefan Schimanski
68aee61d4f SPLIT: kube-apiserver/corerest: split out service IP setup logic 2023-07-05 11:00:37 +02:00
Dr. Stefan Schimanski
dad3e4d211 SPLIT: kube-apiserver/corerest: split constructor 2023-07-05 09:45:20 +02:00
Dr. Stefan Schimanski
616c959988 FIXUP: pkg/controlplane: move bootstrap controller to controllers/kubernetesservice 2023-07-04 16:38:14 +02:00
Dr. Stefan Schimanski
19cb6d036a kube-apiserver/corerest: remove redundant interface 2023-07-03 15:27:09 +02:00
Kubernetes Prow Robot
a8cc22f416 Merge pull request #118680 from danwinship/not-that-kind-of-proxying
move an apiserver helper function out of pkg/proxy
2023-07-03 02:28:51 -07:00
Dan Winship
bb0c3a0818 Remove proxyutil.IsProxyableIP / IsProxyableHostname
These don't belong in pkg/proxy/util; they involve a completely
unrelated definition of proxying.

Since each is only used from one place, just inline them at the
callers.
2023-07-01 08:49:38 -04:00
Patrick Ohly
a5df442be7 flowcontrol: copy object before passing it to client-go Create to avoid data race
This is similar to 5e1c6cd0d4, except that here generics are involved:
because client-go Create under the hood mutates its input value temporarily,
callers must make a copy if the object is read from some other goroutine.

The race as reported by "go test -race" for
test/integration/examples.TestAggregatedAPIServerRejectRedirectResponse is:

WARNING: DATA RACE
Read at 0x00c000556010 by goroutine 16128:
  reflect.Value.String()
      /usr/local/go/src/reflect/value.go:2565 +0x216
  encoding/json.stringEncoder()
      /usr/local/go/src/encoding/json/encode.go:645 +0x223
  encoding/json.structEncoder.encode()
      /usr/local/go/src/encoding/json/encode.go:759 +0x2ba
  encoding/json.structEncoder.encode-fm()
      <autogenerated>:1 +0xdb
  encoding/json.ptrEncoder.encode()
      /usr/local/go/src/encoding/json/encode.go:943 +0x382
  encoding/json.ptrEncoder.encode-fm()
      <autogenerated>:1 +0x90
  encoding/json.(*encodeState).reflectValue()
      /usr/local/go/src/encoding/json/encode.go:358 +0x88
  encoding/json.(*encodeState).marshal()
      /usr/local/go/src/encoding/json/encode.go:330 +0x224
  encoding/json.Marshal()
      /usr/local/go/src/encoding/json/encode.go:161 +0xf9
  k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/util/flowcontrol/format.ToJSON()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/util/flowcontrol/format/formatting.go:81 +0x44
  k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/util/flowcontrol/format.Stringer.String()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/util/flowcontrol/format/formatting.go:68 +0x5a4
  k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/util/flowcontrol/format.(*Stringer).String()
      <autogenerated>:1 +0x4b
  fmt.(*pp).handleMethods()
      /usr/local/go/src/fmt/print.go:673 +0x4db
  fmt.(*pp).printArg()
      /usr/local/go/src/fmt/print.go:756 +0xce4
  fmt.(*pp).doPrintf()
      /usr/local/go/src/fmt/print.go:1077 +0x599
  fmt.Fprintf()
      /usr/local/go/src/fmt/print.go:224 +0x7e
  k8s.io/kubernetes/vendor/k8s.io/klog/v2.(*loggingT).printfDepth()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/klog/v2/klog.go:733 +0x216
  k8s.io/kubernetes/vendor/k8s.io/klog/v2.(*loggingT).printf()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/klog/v2/klog.go:718 +0xcc
  k8s.io/kubernetes/vendor/k8s.io/klog/v2.Verbose.Infof()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/klog/v2/klog.go:1418 +0x64
  k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/util/flowcontrol.(*cfgMeal).digestFlowSchemasLocked()
...
Previous write at 0x00c000556010 by goroutine 15271:
  k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/apis/meta/v1.(*TypeMeta).SetGroupVersionKind()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/meta.go:121 +0x193
  k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/runtime.WithVersionEncoder.Encode()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/runtime/helper.go:239 +0x325
  k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/runtime.(*WithVersionEncoder).Encode()
      <autogenerated>:1 +0xfb
  k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/runtime.Encode()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/runtime/codec.go:49 +0xb3
  k8s.io/kubernetes/vendor/k8s.io/client-go/rest.(*Request).Body()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/client-go/rest/request.go:470 +0x884
  k8s.io/kubernetes/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3.(*flowSchemas).Create()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3/flowschema.go:118 +0x23c
  k8s.io/kubernetes/pkg/registry/flowcontrol/ensurer.(*objectOps[...]).Create()
      <autogenerated>:1 +0x10f
  k8s.io/kubernetes/pkg/registry/flowcontrol/ensurer.EnsureConfiguration[...]()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/pkg/registry/flowcontrol/ensurer/strategy.go:272 +0x1b5
  k8s.io/kubernetes/pkg/registry/flowcontrol/ensurer.EnsureConfigurations[...]()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/pkg/registry/flowcontrol/ensurer/strategy.go:247 +0xf3
  k8s.io/kubernetes/pkg/registry/flowcontrol/rest.ensureMandatoryConfiguration()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/pkg/registry/flowcontrol/rest/storage_flowcontrol.go:230 +0x59e
  k8s.io/kubernetes/pkg/registry/flowcontrol/rest.ensure()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/pkg/registry/flowcontrol/rest/storage_flowcontrol.go:202 +0x1b2
  k8s.io/kubernetes/pkg/registry/flowcontrol/rest.(*bootstrapConfigurationEnsurer).ensureAPFBootstrapConfiguration.func1.1()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/pkg/registry/flowcontrol/rest/storage_flowcontrol.go:159 +0xe4
  k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/wait.runConditionWithCrashProtectionWithContext()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:154 +0x7b
2023-06-30 09:55:25 +02:00
Kubernetes Prow Robot
ba6d2674ca Merge pull request #118722 from aojea/ip_leading_zeros
ipallocator bug if ips has leading zeros
2023-06-25 07:11:07 -07:00
Antonio Ojea
e4f93d8a82 ipallocator bug if ips has leading zeros
The ipallocator for the new IPAddress object use the golang big.Int
library for some math operations, like adding an offset to an IP
address.

We use the bytes array to convert between big.Int and IP addresses,
however, IP addresses are always represented as 4 or 16 bytes arrays.
Big int bytes representations just return the byte array until the
most representative number, this requires that we need to prepend
these extra bytes for IPs with leading zeros.

Change-Id: I9d539f582cae1f9f4e373b28c5b94d7a342f09c7
Signed-off-by: Antonio Ojea <aojea@google.com>
2023-06-25 13:14:46 +00:00
Mike Spreitzer
92a35f5bca Usse generics to simplify pkg/registry/flowcontrol/ensurer
Signed-off-by: Mike Spreitzer <mspreitz@us.ibm.com>
2023-06-22 00:56:54 -04:00