Skip to content

Commit

Permalink
Update for Kubernetes 1.26.4 (aws#1971)
Browse files Browse the repository at this point in the history
* Update for Kubernetes 1.26.4

* checksums
  • Loading branch information
kschumy authored and danbudris committed Sep 25, 2023
1 parent c113e23 commit b65d27b
Show file tree
Hide file tree
Showing 4 changed files with 228 additions and 21 deletions.
38 changes: 19 additions & 19 deletions projects/kubernetes/kubernetes/1-26/CHECKSUMS
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
64bdc661ce3ed64b1ea2d432a1942fcab352911de5e4da531a689929599186d1 _output/1-26/bin/darwin/amd64/kubectl
e6cca0175fb2a5df6ab538ffd4956a18b2f5d0179157642788963f458f57aab6 _output/1-26/bin/linux/amd64/kube-apiserver
eb56193a2b0473c939d3079e0df380f9901bc9695d2045e5b992ee9fdc4e7375 _output/1-26/bin/linux/amd64/kube-controller-manager
10b3d4c07cdfd38e25e75327df59df9141825bd16f65064b18c2ac3e887f359d _output/1-26/bin/linux/amd64/kube-proxy
3ea41e393b9c2e2ab17142433560ab8c915251f472b2bd2c97945e611ecf6322 _output/1-26/bin/linux/amd64/kube-scheduler
58e41fcceb33dcb96fae55f8763e7e5734fa27a41da60b2b8ab0b88a791e3ea3 _output/1-26/bin/linux/amd64/kubeadm
b179a7479eeaf368e6bb4a93ba06d147d79bd94eddb56801a762e38c2ae2cc66 _output/1-26/bin/linux/amd64/kubectl
f501747cc5c036cdf0cb216dfefac0c93390aa56a47f93c08e5333e1f3d7e3c0 _output/1-26/bin/linux/amd64/kubelet
3ba5dbbccd7742530344445a189159b1f110de13fde0f1ecfe8eee17851200dd _output/1-26/bin/linux/arm64/kube-apiserver
51e94affe8ff57eb29ee222cf70b18913042150c8fb24f8c106c41c74d612b8b _output/1-26/bin/linux/arm64/kube-controller-manager
0ecbb400c6d27dd896230c760115bca54cd099b642867081a2aa80de06fac5be _output/1-26/bin/linux/arm64/kube-proxy
4826a0615c4b4d23466925e854e226378a2c7d53b2cddfa774080d786631321c _output/1-26/bin/linux/arm64/kube-scheduler
91326749f5ca3642ae4137b991da654c4c374939b46eee5be4d7cced99ee89d4 _output/1-26/bin/linux/arm64/kubeadm
70ce780c51740f57a174ce37dcd8ae010160df66529fdedc5d6b592f4226f306 _output/1-26/bin/linux/arm64/kubectl
3262e0767eb15f6199966ae60720170f124159a52d179473ba9d3621813ab6e3 _output/1-26/bin/linux/arm64/kubelet
40830d0b9fb6f258e2fa61a766b0b8693f3ca148230fdd41590dcc3aeeb2e8ea _output/1-26/bin/windows/amd64/kube-proxy.exe
94078d78894acf72ee2b769d7f70ec8dace1fc178ced3d504930502a87b10fd0 _output/1-26/bin/windows/amd64/kubeadm.exe
a707f2f584a6859acbe43367a7a84b293f60eba1e5b042579b17cf50c7b61210 _output/1-26/bin/windows/amd64/kubectl.exe
e6ae3d4d7088c1ebdde72cc5117b31fe5457204ec0978b288db368073d7cb196 _output/1-26/bin/windows/amd64/kubelet.exe
f2449f838975332491a1e6d60f6f0a08748dd539cd769c7be5c188c19e2b4977 _output/1-26/bin/darwin/amd64/kubectl
21348e5472348b2ad312d836d25bde60769c4fd0e9bda5206db6e86b2ef974fb _output/1-26/bin/linux/amd64/kube-apiserver
2d59753dc5718fc7a23523b6769a53a99f487ad40ec22deaddb11db5525a5931 _output/1-26/bin/linux/amd64/kube-controller-manager
caac431ec5dd1bc62629de28667ee40ee0e90ba6a7a7b35949e1154148a89c62 _output/1-26/bin/linux/amd64/kube-proxy
531b8db834e0f98022df9c6ca1d8bffd229c817f057b05d2b511524d32f8bf6f _output/1-26/bin/linux/amd64/kube-scheduler
09e084c0d7c830bd9d5b944df0adffaf40f951fb50077734e4a0c4cc5af8f3da _output/1-26/bin/linux/amd64/kubeadm
71342d660b865f0c1614ad3ecbc4d09b504266e061b1394f4390f0b0b4eabaa6 _output/1-26/bin/linux/amd64/kubectl
3251f4065e677be954aeedb94c4138d4098f67452b5d602564e6bdc235e3fc0b _output/1-26/bin/linux/amd64/kubelet
d4abbabfd0c2b0d278e70b3f89a693a7b19a5692d492006ec140e1c6e6977e95 _output/1-26/bin/linux/arm64/kube-apiserver
f1f3182c3e0e08bf0407443ca6308346139fca2e6aa8294aad32b8490c0f35e0 _output/1-26/bin/linux/arm64/kube-controller-manager
f4a7a3bd0e8f232eb86d0a788313097daee6620941808185112fe9e13354822b _output/1-26/bin/linux/arm64/kube-proxy
0421f58f6564b31a8a654aa1ee3e7678cc98e3779b75b7cfebd5bca5a840794a _output/1-26/bin/linux/arm64/kube-scheduler
a54d53c38c1f2bebd12226ed0cb23c33c216b47e5bcc4a05d3f2c19a9a532e7c _output/1-26/bin/linux/arm64/kubeadm
06fefdee6348702b13364cc6a61c7391f0dbf95b7bff6e381a940ba4c84941eb _output/1-26/bin/linux/arm64/kubectl
389f45740da801d7ed52bad1acde71e8e49ffeae1d531109641444063a214bd7 _output/1-26/bin/linux/arm64/kubelet
606338bd5fff2ccb0262e1ffa2bb0fefb12038b7e684fb8871fd7e94e115a22f _output/1-26/bin/windows/amd64/kube-proxy.exe
ee29bd4cdcd035d3c961bc5ab231d434951ffd01d14839a6e6afabbd3fd1150e _output/1-26/bin/windows/amd64/kubeadm.exe
fe0e608c5ab976eedf9633d446621b4c50331e0d19601e30d0af02c18adf52bf _output/1-26/bin/windows/amd64/kubectl.exe
1130ad03d6b677baa9bb65c6ab78183417147df9a2a40646c228f8355b5c410a _output/1-26/bin/windows/amd64/kubelet.exe
2 changes: 1 addition & 1 deletion projects/kubernetes/kubernetes/1-26/GIT_TAG
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v1.26.3
v1.26.4
Original file line number Diff line number Diff line change
Expand Up @@ -1387,7 +1387,7 @@ index 00000000000..3388050d507
+ }
+}
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 542c6783072..108558f17eb 100644
index 43957fd607b..448182497db 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -1455,6 +1455,7 @@ k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/v1
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: baomingwang <[email protected]>
Date: Thu, 8 Dec 2022 19:34:09 -0800
Subject: [PATCH] --EKS-PATCH-- Added serialization from etcd error metric

Cherry-pick of upstream Kubernetes PR #114376
---
.../pkg/storage/etcd3/metrics/metrics.go | 15 +++++
.../pkg/storage/etcd3/metrics/metrics_test.go | 57 +++++++++++++++++++
.../apiserver/pkg/storage/etcd3/store.go | 31 +++++++++-
3 files changed, 100 insertions(+), 3 deletions(-)
create mode 100644 staging/src/k8s.io/apiserver/pkg/storage/etcd3/metrics/metrics_test.go

diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/metrics/metrics.go b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/metrics/metrics.go
index 8255822945d..a01f50954fe 100644
--- a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/metrics/metrics.go
+++ b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/metrics/metrics.go
@@ -113,6 +113,15 @@ var (
},
[]string{"resource"},
)
+ decodeErrorCounts = compbasemetrics.NewCounterVec(
+ &compbasemetrics.CounterOpts{
+ Namespace: "apiserver",
+ Name: "storage_decode_errors_total",
+ Help: "Number of stored object decode errors split by object type",
+ StabilityLevel: compbasemetrics.ALPHA,
+ },
+ []string{"resource"},
+ )
)

var registerMetrics sync.Once
@@ -130,6 +139,7 @@ func Register() {
legacyregistry.MustRegister(listStorageNumFetched)
legacyregistry.MustRegister(listStorageNumSelectorEvals)
legacyregistry.MustRegister(listStorageNumReturned)
+ legacyregistry.MustRegister(decodeErrorCounts)
})
}

@@ -148,6 +158,11 @@ func RecordEtcdBookmark(resource string) {
etcdBookmarkCounts.WithLabelValues(resource).Inc()
}

+// RecordDecodeError sets the storage_decode_errors metrics.
+func RecordDecodeError(resource string) {
+ decodeErrorCounts.WithLabelValues(resource).Inc()
+}
+
// Reset resets the etcd_request_duration_seconds metric.
func Reset() {
etcdRequestLatency.Reset()
diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/metrics/metrics_test.go b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/metrics/metrics_test.go
new file mode 100644
index 00000000000..76fe533bae2
--- /dev/null
+++ b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/metrics/metrics_test.go
@@ -0,0 +1,57 @@
+/*
+Copyright 2023 The Kubernetes Authors.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package metrics
+
+import (
+ "strings"
+ "testing"
+
+ "k8s.io/component-base/metrics"
+ "k8s.io/component-base/metrics/testutil"
+)
+
+func TestRecordDecodeError(t *testing.T) {
+ registry := metrics.NewKubeRegistry()
+ defer registry.Reset()
+ registry.Register(decodeErrorCounts)
+ resourceName := "pods"
+ testedMetrics := "apiserver_storage_decode_errors_total"
+ testCases := []struct {
+ desc string
+ resource string
+ want string
+ }{
+ {
+ desc: "test success",
+ resource: resourceName,
+ want: `
+ # HELP apiserver_storage_decode_errors_total [ALPHA] Number of stored object decode errors split by object type
+ # TYPE apiserver_storage_decode_errors_total counter
+ apiserver_storage_decode_errors_total{resource="pods"} 1
+`,
+ },
+ }
+
+ for _, test := range testCases {
+ t.Run(test.desc, func(t *testing.T) {
+ RecordDecodeError(test.resource)
+ if err := testutil.GatherAndCompare(registry, strings.NewReader(test.want), testedMetrics); err != nil {
+ t.Fatal(err)
+ }
+ })
+ }
+}
diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store.go b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store.go
index 51e5b9012b9..a35205f260c 100644
--- a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store.go
+++ b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store.go
@@ -156,7 +156,12 @@ func (s *store) Get(ctx context.Context, key string, opts storage.GetOptions, ou
return storage.NewInternalError(err.Error())
}

- return decode(s.codec, s.versioner, data, out, kv.ModRevision)
+ err = decode(s.codec, s.versioner, data, out, kv.ModRevision)
+ if err != nil {
+ recordDecodeError(s.groupResourceString, preparedKey)
+ return err
+ }
+ return nil
}

// Create implements storage.Interface.Create.
@@ -220,6 +225,7 @@ func (s *store) Create(ctx context.Context, key string, obj, out runtime.Object,
err = decode(s.codec, s.versioner, data, out, putResp.Header.Revision)
if err != nil {
span.AddEvent("decode failed", attribute.Int("len", len(data)), attribute.String("err", err.Error()))
+ recordDecodeError(s.groupResourceString, preparedKey)
return err
}
span.AddEvent("decode succeeded", attribute.Int("len", len(data)))
@@ -352,7 +358,12 @@ func (s *store) conditionalDelete(
if deleteResp.Header == nil {
return errors.New("invalid DeleteRange response - nil header")
}
- return decode(s.codec, s.versioner, origState.data, out, deleteResp.Header.Revision)
+ err = decode(s.codec, s.versioner, origState.data, out, deleteResp.Header.Revision)
+ if err != nil {
+ recordDecodeError(s.groupResourceString, key)
+ return err
+ }
+ return nil
}
}

@@ -470,7 +481,12 @@ func (s *store) GuaranteedUpdate(
}
// recheck that the data from etcd is not stale before short-circuiting a write
if !origState.stale {
- return decode(s.codec, s.versioner, origState.data, destination, origState.rev)
+ err = decode(s.codec, s.versioner, origState.data, destination, origState.rev)
+ if err != nil {
+ recordDecodeError(s.groupResourceString, preparedKey)
+ return err
+ }
+ return nil
}
}

@@ -518,6 +534,7 @@ func (s *store) GuaranteedUpdate(
err = decode(s.codec, s.versioner, data, destination, putResp.Header.Revision)
if err != nil {
span.AddEvent("decode failed", attribute.Int("len", len(data)), attribute.String("err", err.Error()))
+ recordDecodeError(s.groupResourceString, preparedKey)
return err
}
span.AddEvent("decode succeeded", attribute.Int("len", len(data)))
@@ -745,6 +762,7 @@ func (s *store) GetList(ctx context.Context, key string, opts storage.ListOption
}

if err := appendListItem(v, data, uint64(kv.ModRevision), pred, s.codec, s.versioner, newItemFunc); err != nil {
+ recordDecodeError(s.groupResourceString, string(kv.Key))
return err
}
numEvald++
@@ -880,6 +898,7 @@ func (s *store) getState(ctx context.Context, getResp *clientv3.GetResponse, key
state.data = data
state.stale = stale
if err := decode(s.codec, s.versioner, state.data, state.obj, state.rev); err != nil {
+ recordDecodeError(s.groupResourceString, key)
return nil, err
}
}
@@ -1018,6 +1037,12 @@ func appendListItem(v reflect.Value, data []byte, rev uint64, pred storage.Selec
return nil
}

+// recordDecodeError record decode error split by object type.
+func recordDecodeError(resource string, key string) {
+ metrics.RecordDecodeError(resource)
+ klog.V(4).Infof("Decoding %s \"%s\" failed", resource, key)
+}
+
func notFound(key string) clientv3.Cmp {
return clientv3.Compare(clientv3.ModRevision(key), "=", 0)
}

0 comments on commit b65d27b

Please sign in to comment.