Skip to content

Commit 1e9104b

Browse files
upgrade to latest dependencies (#1264)
bumping knative.dev/pkg df28fea...0c39ce4: > 0c39ce4 Allow to disable http2 for the webhook (# 2877) bumping knative.dev/reconciler-test 4ae7322...616ce2c: > 616ce2c Improve error message when deleting resources (# 619) > a27023d Copy pull secrets to SA for eventshub (# 614) > 6eb37a7 upgrade to latest dependencies (# 605) bumping knative.dev/eventing 7de3ecc...37dc77d: > 37dc77d [release-1.10] bump x/net to v0.17 (# 7353) Signed-off-by: Knative Automation <[email protected]>
1 parent fcdaf98 commit 1e9104b

File tree

9 files changed

+99
-18
lines changed

9 files changed

+99
-18
lines changed

go.mod

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ require (
2121
k8s.io/client-go v0.25.4
2222
k8s.io/code-generator v0.25.4
2323
k8s.io/kube-openapi v0.0.0-20220803162953-67bda5d908f1
24-
knative.dev/eventing v0.37.3
24+
knative.dev/eventing v0.37.4
2525
knative.dev/hack v0.0.0-20230417170854-f591fea109b3
26-
knative.dev/pkg v0.0.0-20231011201526-df28feae6d34
27-
knative.dev/reconciler-test v0.0.0-20230928102338-4ae7322c84fa
26+
knative.dev/pkg v0.0.0-20231023160942-0c39ce4b3a7f
27+
knative.dev/reconciler-test v0.0.0-20231023114053-616ce2cecb19
2828
sigs.k8s.io/controller-runtime v0.11.2
2929
)
3030

go.sum

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1028,14 +1028,14 @@ k8s.io/kube-openapi v0.0.0-20220803162953-67bda5d908f1 h1:MQ8BAZPZlWk3S9K4a9NCkI
10281028
k8s.io/kube-openapi v0.0.0-20220803162953-67bda5d908f1/go.mod h1:C/N6wCaBHeBHkHUesQOQy2/MZqGgMAFPqGsGQLdbZBU=
10291029
k8s.io/utils v0.0.0-20221108210102-8e77b1f39fe2 h1:GfD9OzL11kvZN5iArC6oTS7RTj7oJOIfnislxYlqTj8=
10301030
k8s.io/utils v0.0.0-20221108210102-8e77b1f39fe2/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
1031-
knative.dev/eventing v0.37.3 h1:TFJS/bcWJbcY4YvGg+LNEm0qdmeaMAHdUGHKuOmnX9E=
1032-
knative.dev/eventing v0.37.3/go.mod h1:DFZEmPkisDkr3jbTQd6mK+Dno3k9yacSgbkJGIDWg3c=
1031+
knative.dev/eventing v0.37.4 h1:JPgz4VvYY0/YO9O+5Y4FNUhuZKNxE1Soo8zKs7JdTBU=
1032+
knative.dev/eventing v0.37.4/go.mod h1:oGwuBilJ14D1AJyRnsVR3iujY8aw2mhhPSDFCfUaTis=
10331033
knative.dev/hack v0.0.0-20230417170854-f591fea109b3 h1:+W4WBOq83tfGXKhtv8OB/uJeYqze3zh69GKiz1ucuqk=
10341034
knative.dev/hack v0.0.0-20230417170854-f591fea109b3/go.mod h1:yk2OjGDsbEnQjfxdm0/HJKS2WqTLEFg/N6nUs6Rqx3Q=
1035-
knative.dev/pkg v0.0.0-20231011201526-df28feae6d34 h1:H+K37bEBZ2STSWMjCgrdilj38KKZGVxBbob22K99Y50=
1036-
knative.dev/pkg v0.0.0-20231011201526-df28feae6d34/go.mod h1:ZRgzFBFmdBsARm6+Pkr9WRG8bXys8rYq64ELfLG6+9w=
1037-
knative.dev/reconciler-test v0.0.0-20230928102338-4ae7322c84fa h1:e8YtAgy9ZXjpbyS47nF2AhMJ3NRB1vUDfXwI0EANEKg=
1038-
knative.dev/reconciler-test v0.0.0-20230928102338-4ae7322c84fa/go.mod h1:By7fsbkjKWbTmxwAs9lL1itxZI1otbhiEsAZmprEtvI=
1035+
knative.dev/pkg v0.0.0-20231023160942-0c39ce4b3a7f h1:XCH1qZqW1riR8cjhMGjewxQXlWPrfgxeUorBjpC6lE4=
1036+
knative.dev/pkg v0.0.0-20231023160942-0c39ce4b3a7f/go.mod h1:ZRgzFBFmdBsARm6+Pkr9WRG8bXys8rYq64ELfLG6+9w=
1037+
knative.dev/reconciler-test v0.0.0-20231023114053-616ce2cecb19 h1:E7gYUPhZs4yOlBD8taIy7OBmVCsegNlggQcIPYIIFbg=
1038+
knative.dev/reconciler-test v0.0.0-20231023114053-616ce2cecb19/go.mod h1:5eaMf3A7YtrddJul/ddiv3zOC4wPx40Ndsq4jq0oM/c=
10391039
pgregory.net/rapid v0.3.3 h1:jCjBsY4ln4Atz78QoBWxUEvAHaFyNDQg9+WU62aCn1U=
10401040
pgregory.net/rapid v0.3.3/go.mod h1:UYpPVyjFHzYBGHIxLFoupi8vwk6rXNzRY9OMvVxFIOU=
10411041
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=

vendor/knative.dev/pkg/webhook/webhook.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,17 @@ type Options struct {
6767
// GracePeriod is how long to wait after failing readiness probes
6868
// before shutting down.
6969
GracePeriod time.Duration
70+
71+
// EnableHTTP2 enables HTTP2 for webhooks.
72+
// Mitigate CVE-2023-44487 by disabling HTTP2 by default until the Go
73+
// standard library and golang.org/x/net are fully fixed.
74+
// Right now, it is possible for authenticated and unauthenticated users to
75+
// hold open HTTP2 connections and consume huge amounts of memory.
76+
// See:
77+
// * https://github.com/kubernetes/kubernetes/pull/121120
78+
// * https://github.com/kubernetes/kubernetes/issues/121197
79+
// * https://github.com/golang/go/issues/63417#issuecomment-1758858612
80+
EnableHTTP2 bool
7081
}
7182

7283
// Operation is the verb being operated on
@@ -219,11 +230,18 @@ func (wh *Webhook) Run(stop <-chan struct{}) error {
219230
QuietPeriod: wh.Options.GracePeriod,
220231
}
221232

233+
// If TLSNextProto is not nil, HTTP/2 support is not enabled automatically.
234+
nextProto := map[string]func(*http.Server, *tls.Conn, http.Handler){}
235+
if wh.Options.EnableHTTP2 {
236+
nextProto = nil
237+
}
238+
222239
server := &http.Server{
223240
Handler: drainer,
224241
Addr: fmt.Sprint(":", wh.Options.Port),
225242
TLSConfig: wh.tlsConfig,
226243
ReadHeaderTimeout: time.Minute, //https://medium.com/a-journey-with-go/go-understand-and-mitigate-slowloris-attack-711c1b1403f6
244+
TLSNextProto: nextProto,
227245
}
228246

229247
eg, ctx := errgroup.WithContext(ctx)

vendor/knative.dev/reconciler-test/pkg/environment/namespace.go

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,12 +122,26 @@ func (mr *MagicEnvironment) CreateNamespaceIfNeeded() error {
122122
return fmt.Errorf("error copying the image pull Secret: %s", err)
123123
}
124124

125-
_, err = c.CoreV1().ServiceAccounts(mr.namespace).Patch(context.Background(), sa.Name, types.StrategicMergePatchType,
126-
[]byte(`{"imagePullSecrets":[{"name":"`+mr.imagePullSecretName+`"}]}`), metav1.PatchOptions{})
125+
for _, secret := range sa.ImagePullSecrets {
126+
if secret.Name == mr.imagePullSecretName {
127+
return nil
128+
}
129+
}
130+
131+
// Prevent overwriting existing imagePullSecrets
132+
patch := `[{"op":"add","path":"/imagePullSecrets/-","value":{"name":"` + mr.imagePullSecretName + `"}}]`
133+
if len(sa.ImagePullSecrets) == 0 {
134+
patch = `[{"op":"add","path":"/imagePullSecrets","value":[{"name":"` + mr.imagePullSecretName + `"}]}]`
135+
}
136+
137+
_, err = c.CoreV1().ServiceAccounts(mr.namespace).Patch(context.Background(), sa.Name, types.JSONPatchType,
138+
[]byte(patch), metav1.PatchOptions{})
127139
if err != nil {
128-
return fmt.Errorf("patch failed on NS/SA (%s/%s): %s", mr.namespace, sa.Name, err)
140+
return fmt.Errorf("patch failed on NS/SA (%s/%s): %w",
141+
mr.namespace, sa.Name, err)
129142
}
130143
}
144+
131145
return nil
132146
}
133147

vendor/knative.dev/reconciler-test/pkg/eventshub/rbac/100-sa.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,9 @@ kind: ServiceAccount
1717
metadata:
1818
name: {{ .name }}
1919
namespace: {{ .namespace }}
20+
{{ if .withPullSecrets }}
21+
imagePullSecrets:
22+
{{ range $_, $value := .withPullSecrets.secrets }}
23+
- name: {{ $value }}
24+
{{ end }}
25+
{{ end }}

vendor/knative.dev/reconciler-test/pkg/eventshub/rbac/rbac.go

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ import (
2121
"embed"
2222

2323
apierrors "k8s.io/apimachinery/pkg/api/errors"
24+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
25+
kubeclient "knative.dev/pkg/client/injection/kube/client"
26+
"knative.dev/reconciler-test/pkg/environment"
2427

2528
"knative.dev/reconciler-test/pkg/feature"
2629
"knative.dev/reconciler-test/pkg/manifest"
@@ -30,11 +33,33 @@ import (
3033
var templates embed.FS
3134

3235
// Install creates the necessary ServiceAccount, Role, RoleBinding for the eventshub.
33-
// The resources are named according to the current namespace defined in the environment.
3436
func Install(cfg map[string]interface{}) feature.StepFn {
3537
return func(ctx context.Context, t feature.T) {
38+
WithPullSecrets(ctx, t)(cfg)
3639
if _, err := manifest.InstallYamlFS(ctx, templates, cfg); err != nil && !apierrors.IsAlreadyExists(err) {
3740
t.Fatal(err)
3841
}
3942
}
4043
}
44+
45+
func WithPullSecrets(ctx context.Context, t feature.T) manifest.CfgFn {
46+
namespace := environment.FromContext(ctx).Namespace()
47+
serviceAccount, err := kubeclient.Get(ctx).CoreV1().ServiceAccounts(namespace).Get(ctx, "default", metav1.GetOptions{})
48+
if err != nil {
49+
t.Fatalf("Failed to read default SA in %s namespace: %v", namespace, err)
50+
}
51+
52+
return func(cfg map[string]interface{}) {
53+
if len(serviceAccount.ImagePullSecrets) == 0 {
54+
return
55+
}
56+
if _, set := cfg["withPullSecrets"]; !set {
57+
cfg["withPullSecrets"] = map[string]interface{}{}
58+
}
59+
withPullSecrets := cfg["withPullSecrets"].(map[string]interface{})
60+
withPullSecrets["secrets"] = []string{}
61+
for _, secret := range serviceAccount.ImagePullSecrets {
62+
withPullSecrets["secrets"] = append(withPullSecrets["secrets"].([]string), secret.Name)
63+
}
64+
}
65+
}

vendor/knative.dev/reconciler-test/pkg/feature/feature.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,8 @@ func DeleteResources(ctx context.Context, t T, refs []corev1.ObjectReference) er
227227
}
228228
}
229229

230+
var lastResource corev1.ObjectReference // One still present resource
231+
230232
err := wait.Poll(time.Second, 4*time.Minute, func() (bool, error) {
231233
for _, ref := range refs {
232234
gv, err := schema.ParseGroupVersion(ref.APIVersion)
@@ -248,13 +250,15 @@ func DeleteResources(ctx context.Context, t T, refs []corev1.ObjectReference) er
248250
return false, fmt.Errorf("failed to get resource %+v %s/%s: %w", resource, ref.Namespace, ref.Name, err)
249251
}
250252

253+
lastResource = ref
251254
t.Logf("Resource %+v %s/%s still present", resource, ref.Namespace, ref.Name)
252255
return false, nil
253256
}
254257

255258
return true, nil
256259
})
257260
if err != nil {
261+
LogReferences(lastResource)(ctx, t)
258262
return fmt.Errorf("failed to wait for resources to be deleted: %v", err)
259263
}
260264

vendor/knative.dev/reconciler-test/pkg/feature/logging.go

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2727
"k8s.io/apimachinery/pkg/runtime/schema"
2828
"knative.dev/pkg/apis"
29+
kubeclient "knative.dev/pkg/client/injection/kube/client"
2930
"knative.dev/pkg/injection/clients/dynamicclient"
3031
)
3132

@@ -62,13 +63,26 @@ func logReference(ref corev1.ObjectReference) StepFn {
6263
return
6364
}
6465

65-
b, err := json.MarshalIndent(r, "", " ")
66+
b, err := json.MarshalIndent(r, "", " ")
6667
if err != nil {
6768
t.Logf("Failed to marshal %s: %v\n", resourceStr, err)
6869
return
6970
}
7071

71-
t.Logf("%s\n%s", resourceStr, string(b))
72+
// Get events for the given resource
73+
events, _ := kubeclient.Get(ctx).EventsV1().
74+
Events(ref.Namespace).
75+
List(ctx, metav1.ListOptions{
76+
TypeMeta: metav1.TypeMeta{
77+
Kind: ref.Kind,
78+
APIVersion: ref.APIVersion,
79+
},
80+
FieldSelector: fmt.Sprintf("involvedObject.name=%s", ref.Name),
81+
Limit: 50,
82+
})
83+
eBytes, _ := json.MarshalIndent(events, "", " ")
84+
85+
t.Logf("%s\n%s\nEvents:\n%s\n", resourceStr, string(b), string(eBytes))
7286

7387
// Recursively log owners
7488
for _, or := range r.GetOwnerReferences() {

vendor/modules.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1052,7 +1052,7 @@ k8s.io/utils/net
10521052
k8s.io/utils/pointer
10531053
k8s.io/utils/strings/slices
10541054
k8s.io/utils/trace
1055-
# knative.dev/eventing v0.37.3
1055+
# knative.dev/eventing v0.37.4
10561056
## explicit; go 1.19
10571057
knative.dev/eventing/cmd/heartbeats
10581058
knative.dev/eventing/pkg/adapter/v2
@@ -1156,7 +1156,7 @@ knative.dev/eventing/test/test_images/print
11561156
# knative.dev/hack v0.0.0-20230417170854-f591fea109b3
11571157
## explicit; go 1.18
11581158
knative.dev/hack
1159-
# knative.dev/pkg v0.0.0-20231011201526-df28feae6d34
1159+
# knative.dev/pkg v0.0.0-20231023160942-0c39ce4b3a7f
11601160
## explicit; go 1.18
11611161
knative.dev/pkg/apis
11621162
knative.dev/pkg/apis/duck
@@ -1261,7 +1261,7 @@ knative.dev/pkg/webhook/json
12611261
knative.dev/pkg/webhook/resourcesemantics
12621262
knative.dev/pkg/webhook/resourcesemantics/defaulting
12631263
knative.dev/pkg/webhook/resourcesemantics/validation
1264-
# knative.dev/reconciler-test v0.0.0-20230928102338-4ae7322c84fa
1264+
# knative.dev/reconciler-test v0.0.0-20231023114053-616ce2cecb19
12651265
## explicit; go 1.18
12661266
knative.dev/reconciler-test/cmd/eventshub
12671267
knative.dev/reconciler-test/pkg/environment

0 commit comments

Comments
 (0)