Compare commits

...

94 Commits

Author SHA1 Message Date
Calum Murray 6e5cb3a209
feat: add new otel config (#8624)
* feat: add new otel config

Signed-off-by: Calum Murray <cmurray@redhat.com>

* chore: run ./hack/update-deps.sh

Signed-off-by: Calum Murray <cmurray@redhat.com>

* chore: fix boilerplate comments to use tabs instead of spaces

Signed-off-by: Calum Murray <cmurray@redhat.com>

* fix(test): otel config tests work

Signed-off-by: Calum Murray <cmurray@redhat.com>

* fix: configmap comments reflect eventing resources, not serving

Signed-off-by: Calum Murray <cmurray@redhat.com>

* change example metrics url to more sensible value

Signed-off-by: Calum Murray <cmurray@redhat.com>

* chore: update codegen to correct configmap checksum

Signed-off-by: Calum Murray <cmurray@redhat.com>

* cleanup: drop request metrics as they are unused in eventing

Signed-off-by: Calum Murray <cmurray@redhat.com>

* chore: fix configmap checksum

Signed-off-by: Calum Murray <cmurray@redhat.com>

---------

Signed-off-by: Calum Murray <cmurray@redhat.com>
2025-07-11 18:10:06 +00:00
Knative Automation 351613bc31
[main] Upgrade to latest dependencies (#8625)
upgrade to latest dependencies

bumping knative.dev/pkg 3eb1089...d3550d4:
  > d3550d4 Update community files (# 3214)
  > ab9aaa0 also add json keys to the top level config (# 3213)
  > 264afa3 add json struct tags to the observability configs (# 3212)
bumping knative.dev/hack/schema f525e18...70d4b00:
  > 70d4b00 Update community files (# 425)
bumping knative.dev/reconciler-test 9a20896...d97d900:
  > d97d900 Fix deps update (# 800)
  > e1c1e2a Update community files (# 799)
bumping knative.dev/hack f525e18...70d4b00:
  > 70d4b00 Update community files (# 425)

Signed-off-by: Knative Automation <automation@knative.team>
2025-07-09 06:50:03 +00:00
Calum Murray 50d5a2666d
Fix deps upgrade (#8620)
* ./hack/update-deps.sh

Signed-off-by: Calum Murray <cmurray@redhat.com>

* fix(deps): config parsing works again after deps upgrade

Signed-off-by: Calum Murray <cmurray@redhat.com>

---------

Signed-off-by: Calum Murray <cmurray@redhat.com>
2025-07-08 15:51:02 +00:00
Knative Automation 1840f7a37e
[Automated] Update eventing-eventing-integrations nightly (#8623)
Update eventing-integrations nightly

Signed-off-by: Knative Automation <automation@knative.team>
2025-07-08 12:05:03 +00:00
Knative Automation 75874ab1a3
[main] Update community files (#8621)
Update community files

Signed-off-by: Knative Automation <automation@knative.team>
2025-07-08 01:37:51 +00:00
Evan Anderson 1a736e167a
Update deps for K8s 1.33 (#8602)
* Run ./hack/update-deps.sh --upgrade && ./hack/update-codegen.sh and add k8s validation-gen

* Update k8s versions for e2e test

* Replace github.com/google/gofuzz with sigs.k8.io/randfill

* Fix kind kubernetes versions

* Fix github.com/google/gofuzz -> sigs.k8s.io/randfill for 3 other tests

* Avoid panic on internal context cancellation error by closing stop channel

* Re-run update-codegen.sh

* Replace kind shell scripts in kind-e2e with chainguard action

* Fix a bunch of linter errors that popped up

* Address feedback from Cali0707
2025-06-30 14:16:11 +00:00
Calum Murray 5bcf8011ac
test: multiple nested filters of the same type should work (#8610)
test: see if multiple nested filters of the same type work

Signed-off-by: Calum Murray <cmurray@redhat.com>
2025-06-25 13:44:05 +00:00
Calum Murray 7f047f979e
feat: add request reply cesql function (#8608)
* feat: add cesql function for verifying requestreply correlation ids

Signed-off-by: Calum Murray <cmurray@redhat.com>

* refactor: VerifyCorrelationId accepts the correlation id value instead of name

Signed-off-by: Calum Murray <cmurray@redhat.com>

* test: added unit tests for CESQL function KN_VERIFY_CORRELATION_ID

Signed-off-by: Calum Murray <cmurray@redhat.com>

* docs: add comment explaining the cesql function signature

Signed-off-by: Calum Murray <cmurray@redhat.com>

* fix formatting

Signed-off-by: Calum Murray <cmurray@redhat.com>

* chore: add license header comments

Signed-off-by: Calum Murray <cmurray@redhat.com>

---------

Signed-off-by: Calum Murray <cmurray@redhat.com>
2025-06-24 15:45:04 +00:00
Sukhinder Mann 5de389b9af
feat: support for additional pod scheduling definition on IntegrationSource (#8601)
* 🏷️ Using k8s core pod spec

Signed-off-by: S-Mann <29407727+S-Mann@users.noreply.github.com>

* ♻️ Pass pod template spec from NewContainerSource function

Signed-off-by: S-Mann <29407727+S-Mann@users.noreply.github.com>

* ♻️ Updated the merge logic for pod template spec

Signed-off-by: S-Mann <29407727+S-Mann@users.noreply.github.com>

* 🍱 Updated codegen to reflect changes for integration source spec

Signed-off-by: S-Mann <29407727+S-Mann@users.noreply.github.com>

* 🏷️ Added pod template attribute to integrationsource to match containersource CRDs

Signed-off-by: S-Mann <29407727+S-Mann@users.noreply.github.com>

* 🐛 [FIXED]pod object metadata added

Signed-off-by: S-Mann <29407727+S-Mann@users.noreply.github.com>

* 🚑️ [FIXED]handle when pod template spec is empty

Signed-off-by: S-Mann <29407727+S-Mann@users.noreply.github.com>

* 🚑️ [FIXED]only append labels to the container metadata

Signed-off-by: S-Mann <29407727+S-Mann@users.noreply.github.com>

* 🚸 Our integration labels will be merged over existing labels

Signed-off-by: S-Mann <29407727+S-Mann@users.noreply.github.com>

* 💚 [FIXED]linting rule QF1008 addressed for pod template object

Signed-off-by: S-Mann <29407727+S-Mann@users.noreply.github.com>

---------

Signed-off-by: S-Mann <29407727+S-Mann@users.noreply.github.com>
2025-06-23 18:58:03 +00:00
dependabot[bot] a582a8829e
Bump github.com/go-jose/go-jose/v3 from 3.0.3 to 3.0.4 (#8605)
* Bump github.com/go-jose/go-jose/v3 from 3.0.3 to 3.0.4

Bumps [github.com/go-jose/go-jose/v3](https://github.com/go-jose/go-jose) from 3.0.3 to 3.0.4.
- [Release notes](https://github.com/go-jose/go-jose/releases)
- [Changelog](https://github.com/go-jose/go-jose/blob/main/CHANGELOG.md)
- [Commits](https://github.com/go-jose/go-jose/compare/v3.0.3...v3.0.4)

---
updated-dependencies:
- dependency-name: github.com/go-jose/go-jose/v3
  dependency-version: 3.0.4
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update codegen

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Matthias Wessendorf <mwessend@redhat.com>
2025-06-23 15:07:03 +00:00
Calum Murray e25bccd256
feat: add package to set and verify correlation/reply ids for RequestReply (#8606)
* feat: add package to set and verify correlation/reply ids for requestreply

Signed-off-by: Calum Murray <cmurray@redhat.com>

* chore: add license headers

Signed-off-by: Calum Murray <cmurray@redhat.com>

* cleanup: fix formatting

Signed-off-by: Calum Murray <cmurray@redhat.com>

---------

Signed-off-by: Calum Murray <cmurray@redhat.com>
2025-06-23 13:04:04 +00:00
Matthias Wessendorf d56ee683bb
Adding addressable duck on crd (#8603)
Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2025-06-18 07:40:58 +00:00
Knative Automation 9d895582af
[main] Upgrade to latest dependencies (#8598)
upgrade to latest dependencies

bumping google.golang.org/genproto/googleapis/api 56aae31...b45e905:
  > b45e905 chore(all): update all (# 1204)
  > e70fdf4 chore(deps): bump golang.org/x/net to 0.37.0 (# 1202)
  > 33a14cd chore(deps): bump golang.org/x/net from 0.35.0 to 0.36.0 (# 1201)
  > 5d019e2 chore(deps): bump golang.org/x/net in /googleapis/bytestream (# 1200)
  > 81fb87f chore(all): auto-regenerate .pb.go files (# 1199)
  > 29e43e6 chore(all): auto-regenerate .pb.go files (# 1195)
  > a0af3ef chore(all): update all (# 1196)
  > 55c9018 chore(all): auto-regenerate .pb.go files (# 1194)
  > 546df14 chore(all): update all (# 1193)
  > 9fdb1ca chore(all): update Go to 1.24 (# 1191)
bumping go.opentelemetry.io/otel/trace edc378f...5ba5e7a:
  > 5ba5e7a Release v1.35.0/v0.57.0/v0.11.0 (# 6407)
  > 3908b67 chore(deps): update module github.com/securego/gosec/v2 to v2.22.2 (# 6412)
  > 50172b1 chore(deps): update module github.com/ryancurrah/gomodguard to v1.4.1 (# 6411)
  > cea6d2b fix(deps): update module google.golang.org/grpc to v1.71.0 (# 6409)
  > e2aee3a Move trace sdk tests from trace_test into trace package (# 6400)
  > 38f4f39 fix(deps): update build-tools to v0.20.0 (# 6403)
  > 2911449 Look at stale issues in ascending order (# 6396)
  > 7cb322a chore(deps): update github.com/golangci/dupl digest to 44c6a0b (# 6398)
  > 0c3651e fix(deps): update module github.com/golangci/golangci-lint to v1.64.6 (# 6394)
  > f04e951 chore(deps): update mvdan.cc/unparam digest to 0df0534 (# 6391)
  > 8878690 fix(deps): update golang.org/x to dead583 (# 6389)
  > d2d49f4 chore(deps): update module 4d63.com/gocheckcompilerdirectives to v1.3.0 (# 6388)
  > 5ccc9b5 chore(deps): update module github.com/kkhaike/contextcheck to v1.1.6 (# 6387)
  > 053f109 chore(deps): update actions/cache digest to d4323d4 (# 6384)
  > c6e2814 chore(deps): update module github.com/go-git/go-git/v5 to v5.14.0 (# 6385)
  > b18d593 chore(deps): update module github.com/protonmail/go-crypto to v1.1.6 (# 6383)
  > 9be18c1 sdk/trace: Fix gorountine leak in batchSpanProcessor.ForceFlush (# 6369)
  > 23c76d3 chore(deps): update module github.com/catenacyber/perfsprint to v0.9.0 (# 6379)
  > aec954c chore(deps): update codecov/codecov-action action to v5.4.0 (# 6380)
  > 44d5045 sdk/trace: Fix goroutine leak in simpleSpanProcessor.Shutdown (# 6368)
  > 7f724db chore(deps): update actions/download-artifact digest to cc20338 (# 6377)
  > 86d783c fix(deps): update build-tools to v0.19.0 (# 6376)
  > bb42ffa chore(deps): update module github.com/bombsimon/wsl/v4 to v4.6.0 (# 6373)
  > d903b7b chore(deps): update module go.opentelemetry.io/build-tools to v0.19.0 (# 6374)
  > 9e57b0d chore(deps): update python:3.13.2-slim-bullseye docker digest to 31b581c (# 6370)
  > 6192b14 [chore] clean up revive configuration (# 6353)
  > 4d7fcb6 chore(deps): update module golang.org/x/crypto to v0.35.0 (# 6366)
  > 70f52c4 chore(deps): update python:3.13.2-slim-bullseye docker digest to d3852c9 (# 6367)
  > 8f4a5c6 chore(deps): update module github.com/gaijinentertainment/go-exhaustruct/v3 to v3.3.1 (# 6361)
  > 87e328b chore(deps): update golang.org/x (# 6355)
  > cbb4e24 fix(deps): update module github.com/google/go-cmp to v0.7.0 (# 6359)
  > 863a0b2 chore(deps): update ossf/scorecard-action action to v2.4.1 (# 6358)
  > c0d043a chore(deps): update github/codeql-action digest to b56ba49 (# 6354)
  > 1e573f2 chore(deps): update actions/upload-artifact digest to 4cec3d8 (# 6356)
  > 010790d chore(deps): update module github.com/ldez/exptostd to v0.4.2 (# 6357)
  > 597e1d7 chore(deps): update module github.com/quasilyte/go-ruleguard to v0.4.4 (# 6348)
  > 92a7481 chore(deps): update golang.org/x/telemetry digest to 165e2f8 (# 6346)
  > 2509d78 [chore] Add OpenSSF Best Practices badge (# 6345)
  > 7f64adf [chore] Add a policy on adding tests (# 6334)
  > f65062e chore(deps): update module github.com/kisielk/errcheck to v1.9.0 (# 6340)
  > fb8b0f2 Add FOSSA scanning workflow (# 6331)
  > dfe20c4 chore(deps): update module github.com/catenacyber/perfsprint to v0.8.2 (# 6339)
  > 8231483 fix(deps): update googleapis to 56aae31 (# 6338)
  > 6239155 chore(deps): update actions/cache digest to 0c907a7 (# 6337)
  > 1ee7c79 sdk/log: Add FilterProcessor and EnabledParameters (# 6317)
  > b80639c chore(deps): update module github.com/nunnatsa/ginkgolinter to v0.19.1 (# 6311)
  > e033250 fix(deps): update golang.org/x to aa4b98e (# 6336)
  > 963190b fix(deps): update golang.org/x to eff6e97 (# 6325)
  > 14dc8ea chore(deps): update module github.com/4meepo/tagalign to v1.4.2 (# 6327)
  > af9dcb0 chore(deps): update module github.com/spf13/cobra to v1.9.1 (# 6324)
  > 26493d7 chore(deps): update module github.com/mgechev/revive to v1.7.0 (# 6326)
  > 8562bdf [chore] Use public Linux ARM64 runners (# 6320)
  > c08d161 chore(deps): update module github.com/tetafro/godot to v1.5.0 (# 6323)
  > 1d1f79c chore(deps): update module github.com/tdakkota/asciicheck to v0.4.1 (# 6322)
  > f2a1518 chore(deps): update golang.org/x/telemetry digest to 6f9b61d (# 6321)
  > 55ff06f sdk/log: Change BenchmarkLoggerNewRecord to BenchmarkLoggerEmit (# 6315)
  > 8261e7b chore(deps): update otel/weaver docker tag to v0.13.2 (# 6318)
  > da2d2f8 fix(deps): update module github.com/golangci/golangci-lint to v1.64.5 (# 6319)
  > a9cbc3d chore(deps): update module github.com/tdakkota/asciicheck to v0.4.0 (# 6316)
  > 9d4c2f7 [chore] Fix go-work Make target with the highest required Go version (# 6285)
  > d9ab149 chore(deps): update module github.com/securego/gosec/v2 to v2.22.1 (# 6314)
  > f62232f Replace tenv with usetesting (# 6313)
  > 44ea53b Add support for Go 1.24 (# 6304)
  > 8d2c38d fix(deps): update googleapis to 5a70512 (# 6308)
  > 4b7d52a chore(deps): update module github.com/gostaticanalysis/forcetypeassert to v0.2.0 (# 6312)
  > d4b0597 chore(deps): update golang.org/x/telemetry digest to 7530529 (# 6305)
  > dfc43f0 fix(deps): update module github.com/golangci/golangci-lint to v1.64.4 (# 6310)
  > fd8eb0b chore(deps): update otel/weaver docker tag to v0.13.1 (# 6309)
  > 47c4b11 chore(deps): update module github.com/mgechev/revive to v1.6.1 (# 6306)
  > 3c1286a Document and check resource comparability (# 6272)
  > afbe545 fix(deps): update module github.com/golangci/golangci-lint to v1.64.2 (# 6301)
  > 6c8583d chore(deps): update module github.com/ldez/exptostd to v0.4.1 (# 6300)
  > 1971f5f fix(deps): update golang.org/x (# 6297)
  > d40491f chore(deps): pin actions/stale action to 5bef64f (# 6295)
  > 7d503b7 Close stale issues and PRs after 2 years of inactivity (# 6284)
  > 6e3724a chore(deps): update module github.com/catenacyber/perfsprint to v0.8.1 (# 6294)
  > ab254c2 chore(deps): update module go-simpler.org/sloglint to v0.9.0 (# 6293)
  > 6e1c433 chore(deps): update module 4d63.com/gochecknoglobals to v0.2.2 (# 6291)
  > ae0cc74 chore(deps): update otel/weaver docker tag to v0.13.0 (# 6292)
  > fabdac2 fix(deps): update googleapis to e9438ea (# 6289)
  > 42273a6 chore(deps): update module golang.org/x/crypto to v0.33.0 (# 6290)
  > b42504e chore(deps): update module github.com/grpc-ecosystem/grpc-gateway/v2 to v2.26.1 (# 6288)
  > 834e574 chore(deps): update github/codeql-action digest to 9e8d078 (# 6287)
  > b25505b fix(deps): update golang.org/x to f9890c6 (# 6282)
  > 558dbdd chore(deps): update python docker tag to v3.13.2 (# 6283)
  > 6894f1b Add an OpenSSF badge to README.md (# 6269)
  > 25ee2bd Default github workflow permission read-all (# 6268)
  > d46bfb0 Fix comment of the RecordOnly sampling decision (# 6257)
  > 51cf2d7 chore(deps): update golang.org/x/telemetry digest to 557cf9c (# 6279)
  > c9bb09c chore(deps): pin dependencies (# 6278)
  > 9ea576a Use renovate best-practices (# 6267)
  > 8667c15 fix(deps): update module google.golang.org/protobuf to v1.36.5 (# 6277)
  > 5879a01 fix(deps): update build-tools to v0.18.0 (# 6276)
  > 0c62fd1 chore(deps): update actions/upload-artifact action to v4 (# 6266)
  > ac173ac chore(deps): update ossf/scorecard-action action to v2.4.0 (# 6265)
  > ee272d4 chore(deps): update golang.org/x/telemetry digest to c67c2d1 (# 6264)
  > e1472c4 chore(deps): update actions/checkout action to v4.2.2 (# 6263)
  > 092ed4e chore(deps): update actions/upload-artifact digest to ff15f03 (# 6262)
  > 69c3c61 Create scorecard.yml to enable OSSF Scorecard reporting (# 6247)
  > 85fab8b chore(deps): update module github.com/catenacyber/perfsprint to v0.8.0 (# 6261)
  > 13b6133 chore(deps): update lycheeverse/lychee-action action to v2.3.0 (# 6258)
  > 589d959 chore(deps): update module github.com/cloudflare/circl to v1.6.0 (# 6259)
  > eb988d7 fix(deps): update module go.opentelemetry.io/collector/pdata to v1.25.0 (# 6255)
  > 4778db7 fix(deps): update module go.opentelemetry.io/otel/trace to v1.34.0 (# 6256)
  > 3dbdfb2 chore(deps): update module google.golang.org/grpc to v1.70.0 (# 6254)
  > 18dadf4 chore(deps): update golang.org/x/telemetry digest to 3af0d96 (# 6253)
  > 2d050f9 fix(deps): update googleapis to 7023788 (# 6251)
  > 74923b2 chore(deps): update module golang.org/x/text to v0.22.0 (# 6252)
  > 1ba3e46 chore(deps): update google.golang.org/genproto/googleapis/rpc digest to 29210b9 (# 6250)
  > 6b3868e fix(deps): update golang.org/x (# 6249)
  > 9aae208 Add an auto-instrumentable no-op implementation to the `trace` package (# 6203)
  > fa5a782 Generate `semconv/v1.30.0` (# 6240)
  > 078a4a8 sdk/log: Assign fltrProcessors on provider creation instead of lazy (# 6239)
  > 2260929 Use archive URL for weaver registry (# 6235)
  > 27aaa7a Generate the `semconv/v1.28.0` package (# 6236)
  > 987efa6 chore(deps): update module github.com/polyfloyd/go-errorlint to v1.7.1 (# 6237)
  > 8324155 Weaver (# 5898)
  > a81250c chore(deps): update module github.com/skeema/knownhosts to v1.3.1 (# 6231)
  > 007fb1f chore(deps): update module github.com/spf13/pflag to v1.0.6 (# 6224)
  > 1994f63 Update codespell target (# 6223)
  > d10a36b stdoutlog: Emit Record.EventName field (# 6210)
  > e52d3a1 fix(deps): update golang.org/x to e0ece0d (# 6222)
  > 712ecdc chore(deps): update dependency codespell to v2.4.1 (# 6221)
  > b9819d2 fix(deps): update golang.org/x to 3edf0e9 (# 6219)
  > 98da0d1 chore(deps): update module github.com/cyphar/filepath-securejoin to v0.4.1 (# 6218)
  > dc7c33a fix(deps): update googleapis to 29210b9 (# 6217)
  > a027f11 chore: Update Logs API design doc (# 6206)
  > ae7ac48 otlplog: Emit Record.EventName field (# 6211)
  > 5d25818 fix(deps): update module google.golang.org/protobuf to v1.36.4 (# 6214)
  > d3119b0 chore(deps): update codecov/codecov-action action to v5.3.1 (# 6213)
  > de5d214 fix(deps): update googleapis to 65684f5 (# 6212)
  > 3585b80 fix(deps): update module google.golang.org/grpc to v1.70.0 (# 6208)
  > a8e5482 chore(deps): update codecov/codecov-action action to v5.3.0 (# 6207)
  > 6605083 chore(deps): update module github.com/go-git/go-git/v5 to v5.13.2 (# 6204)
  > 0c97148 Update module github.com/prometheus/common to v0.62.0 and fix tests (# 6198)
  > b0d0bb9 chore: Group renovate build-tools updates (# 6201)
  > 5363a52 fix(deps): update module go.opentelemetry.io/build-tools/multimod to v0.17.0 (# 6200)
  > b5ef234 fix(deps): update module go.opentelemetry.io/build-tools/semconvgen to v0.17.0 (# 6202)
  > 70b8f7e fix(deps): update module go.opentelemetry.io/build-tools/gotmpl to v0.17.0 (# 6199)
  > a85d0c1 fix(deps): update module go.opentelemetry.io/build-tools/crosslink to v0.17.0 (# 6197)
  > eba4618 fix(deps): update googleapis to 138b5a5 (# 6194)
  > 6d9bb01 chore(deps): update codecov/codecov-action action to v5.2.0 (# 6195)
  > 62e4225 sdk/log: Add EventName (# 6193)
  > 185547c log: Add EventName (# 6187)
  > e108415 fix(deps): update github.com/opentracing-contrib/go-grpc/test digest to 2f9c7e3 (# 6190)
  > 01a7584 fix(deps): update module github.com/opentracing-contrib/go-grpc to v0.1.1 (# 6191)
  > d7ebb7a log: Add ValueFromAttribute and KeyValueFromAttribute  (# 6180)
  > 538e869 chore(deps): update dependency codespell to v2.4.0 (# 6189)
  > 3a0023d chore(deps): update module github.com/pjbgf/sha1cd to v0.3.2 (# 6188)
  > 41e697f chore(deps): update module github.com/grpc-ecosystem/grpc-gateway/v2 to v2.26.0 (# 6186)
  > e8cd4aa chore(deps): update golang.org/x/telemetry digest to 04cd7ba (# 6176)
bumping golang.org/x/mod dc121ce...9d33331:
  > 9d33331 x/mod: add the ignore directive
  > ae88a97 all: change from sort functions to slices functions
bumping golang.org/x/oauth2 b9c813b...0042180:
  > 0042180 oauth2: Deep copy context client in NewClient
  > ce350bf oauth2: remove unneeded TokenSource implementation in transport test
  > 44967ab google: fix typos
  > 9c82a8c oauth2.go: use a more straightforward return value
  > 681b4d8 jws: split token into fixed number of parts
  > 3f78298 all: upgrade go directive to at least 1.23.0 [generated]
  > 109dabf endpoints: add links/provider for Discord
  > ac571fa oauth2: fix docs for Config.DeviceAuth
  > 314ee5b endpoints: add patreon endpoint
bumping golang.org/x/tools 64b63a6...578c121:
  > 578c121 go.mod: update golang.org/x dependencies
  > f114dcf gopls/internal/protocol: refine DocumentURI Clean method and its usages
  > 82ee0fd internal/mcp: change paginateList to a generic helper
  > 64bfecc gopls/internal/golang: fix extract bug with anon functions
  > 4546fbd internal/mcp: unify json tag parsing
  > 82473ce gopls/doc/release: tweak v0.19
  > f3c581f gopls/internal/protocol: add DocumentURI.Base accessor
  > d9bacab gopls/internal/server: improve "editing generated file" warning
  > 1afeefa internal/mcp: unexport FileResourceHandler
  > 33d5988 gopls/internal/server: Organize Imports of generated files
  > cb39a5f gopls/internal/golang: Format generated files
  > e43ca0c internal/mcp: validate tool input schemas
  > 61f37dc gopls: use new gomodcache index
  > fed8cc8 internal/refactor: keep comments with same import
  > c7873a3 gopls/internal/golang: eliminate dot import: skip keyed fields
  > 6e8a193 gopls/internal/debug: integrate flight recorder
  > 25caa76 gopls/internal/telemetry/cmd/stacks: delete
  > c3cb1f1 gopls/internal/mcp: add top level symbols from current package
  > effd83e gopls/internal/golang: add type inlayhint for variable decl
  > 58e5e62 gopls/internal/test/marker: organize mcp tool context test
  > ec7b2b3 gopls/internal/mcp: add exported type spec and value spec to context
  > f12067d gopls/internal/analysis/modernize: disable appendclipped
  > 59ce1d8 gopls/internal/analysis/modernize: appendclipped: preserve result type
  > 2246f6d internal/mcp: middleware on the sending side
  > 8fbc773 gopls/internal/analysis/modernize: add TODOs for nilness problem
  > 8675e27 gopls/internal/mcp: add context mcp tool
  > bcaee63 gopls/internal/protocol: make some optional integer fields indirect
  > 4e672d5 gopls/internal/protocol: PublishDiagnosticsParams.version omitempty
  > e88c5a4 internal/mcp: simplify session type params
  > 61b248f internal/mcp: add missing testenv.NeedsExec
  > a405109 internal/mcp: add a test for complete mapping of CallToolParams fields
  > d0c0a57 go/analysis/passes/unusedresult: remove maps.Copy
  > 73f1234 internal/mcp: community design
  > d794c0d internal/mcp: generic handling of CallToolParams
  > 3959656 internal/mcp: add iterator methods resources and prompts
  > f80f3ff gopls/internal/protocol: add Mapper.{Pos,Node]Text helpers
  > ef3a8dc go/analysis/passes/unusedresult: add test
  > 661b815 go/analysis/passes/unusedresult: add slices, maps functions
  > dd6ec04 gopls/internal/settings: add maprange analyzer
  > 218e5f2 gopls/internal: handle errors, or document that we ignore them
  > cb264bf internal/mcp: clean up diagnostics from Google import
  > c8e47eb internal/gofix: document batch fix commands
  > d3809ea internal/mcp: handle synthetic responses in conformance test
  > 147cb9c gopls/internal/analysis/modernize: minmax: put comments at proper positions
  > 59198a1 internal/mcp: add resource conformance test
  > bef2d59 internal/golang: re-fix crash in definition of invalid "continue label"
  > ad22223 gopls/internal/golang: fix crash in definition of invalid "continue label"
  > 2815c8b internal/tokeninternal: tag AddExistingFiles for go1.24
  > 389a102 gopls/internal/telemetry/cmd/stacks: collect from go.dev frontend
  > 81de76b gopls/internal/analysis/modernize: fix bug in minmax analyzer that incorrectly handles nested if-else-if structures
  > 7610d95 go/analysis/passes/printf: refine diagnostic locations
  > c6e0ebc internal/mcp: run conformance tests on 1.24 with a GOEXPERIMENT setting
  > 53be3d4 internal/mcp/jsonschema: apply schema defaults to an instance
  > d12ca1c internal/mcp/jsonschema: remove shared structure from schema inference
  > de7968d internal/gofix: add -gofix.allow_binding_decl flag
  > 93f6460 internal/mcp: add iterator method for tools
  > 359ea3a internal/mcp: add JSON conformance tests, and fix some bugs
  > 9233e12 gopls: update to staticcheck@master
  > 3eaf5e2 internal/mcp/jsonschema: validate defaults
  > 50c5c27 internal/mcp/jsonschema: check for structure separately
  > 4354923 internal/mcp: add pagination for prompts
  > 15e680e gopls/.../completion: unimported completion snippets
  > cc4b6fe internal/mcp/jsonschema: generalize error wrapping
  > 82fa2c0 internal/mcp/jsonschema: clearer validations errors
  > 845000b internal/mcp: meta and progress token
  > 66fd759 internal/mcp: add pagination for resources
  > f8a56cc internal/jsonrpc2_v2: update for go1.16+
  > 14c014c internal/tokeninternal: optimize AddExistingFiles
  > 6d1bf3b internal/test/integration/bench: add second kubernetes benchmark
  > 866eb14 go/analysis/passes/printf: fix the issue where %#q/%#x/%#X recursion is not recognized
  > baa4e14 internal/modindex: tiny test improvement
  > 1c017f1 internal/telemetry/cmd/stacks: support Delve
  > 2391123 internal/mcp: treat zero struct fields generously
  > 08af7d4 all: fix some function names and typos in comment
  > 60df06f internal/mcp: add pagination for tools
  > f5ea575 go/ssa/interp: use slices.Equal to simplify code
  > 6e44d1e internal/mcp: future-proof prompt handling
  > 4d4fb92 internal/mcp: implement logging
  > 66d4add internal/gocommand: re-disable flaky TestRmdirAfterGoList_Runner
  > ac05d44 jsonschema: package doc
  > 35a9265 jsonschema: add more schema fields
  > 95976d8 internal/mcp: construct README with weave
  > d5ec4a9 internal/mcp: add notifications
  > aebd3be gopls/internal/test/integration: simplify GoToDefinition
  > 423c5af gopls/internal/analysis/recursiveiter: set Diagnostic.End
  > dc34568 gopls/internal/test/integration/completion: relax expectations
  > 87749a7 all: fix typos
  > edbd9df jsonschema: dynamic references
  > 9460f2f gopls/internal/analysis/recursiveiter: report inefficient recursion
  > 150502a internal/mcp: keep an ordered list of feature keys
  > 10eb2f3 gopls/internal/mcp: add location info to mcp tool input arg
  > a2c2a72 internal/tokeninternal: avoid use of AddExistingFiles, for now
  > b62c6c1 internal/mcp: remove misplaced TODO comment
  > babda13 gopls: update to github.com/dominikh/go-tools@v0.6.1
  > 87f67c8 gopls/internal/debug: display Session.View.Folder.Options
  > 19c36ab internal/tokeninternal: use go1.25's FileSet.AddExistingFiles
  > 77de774 gopls/internal/golang: modify extract behavior for error handling returns
  > 6202e58 internal/mcp: generate method names
  > 86158bd internal/mcp: sampling
  > db456f9 internal/mcp: client middleware
  > 8edad1e internal/mcp: add the FileResourceHandler method
  > 7ae2e5c gopls/internal/golang: implement "inline local variable" code action
  > d71c72f gopls/internal/analysis/modernize: bloop: document deoptimization
  > b8ee9f1 gopls/internal/test/marker: add mcp tools action marker
  > c5e4271 internal/mcp: dispatcher middleware
  > 5a46e4d gopls/internal/analysis/modernize/slicesdelete: convert index type if needed
  > c460ea9 gopls/internal/analysis/modernize: disable slicesdelete pass
  > 2263a61 gopls/internal/test/marker: add a folding ranges test case
  > 5c7400c gopls/internal/cache/parsego: use PreorderStack
  > bc8c84c gopls/internal/golang: AddTest: fix types.Package.Path nil panic
  > b37bd0b internal/typesinternal: add go1.23 methods to NamedOrAlias
  > c6b2a9c internal/typesinternal: add TypeNameFor helper
  > ec0dab2 internal/mcp/design: sync with public design
  > b1e5d85 internal/gocommand: move and reenable TestRmdirAfterGoList
  > 78956f9 internal/mcp/design: yet more cleanup; define the Roots iterator
  > 6731e88 internal/diff/lcs: fix flaky test
  > 07c24ad internal/mcp: update README
  > 279ce35 internal/mcp/design: further clean-up
  > 0c0d330 internal/diff/lcs: log pseudorandom seeds so failures can be repro'd
  > 04dca59 internal/mcp: hide CancelledParams
  > 3c52d1f internal/mcp: reinstate ClientSession
  > 3e37703 internal/refactor/inline: report when a "binding decl" was inserted
  > d2ad3e0 internal/astutil/cursor: delete shims for old Cursor
  > 84fa02a x/tools: gofix -fix -test ./...
  > 43dd712 gopls/internal/protocol: make FoldingRange fields optional
  > baeb0da cmd/deadcode: respect unused symbols inside all loaded modules
  > fdae66b internal/mcp: design.md: polishing
  > 5eb0d1f internal/mcp: fix typos
  > ad2312c internal/mcp: design.md: link to spec change
  > cb65fbb internal/mcp: rename LocalTransport->InMemoryTransport, and document
  > 9a093bc internal/mcp: rename ServerConnection->ServerSession
  > c905b91 internal/mcp: design.md: clarify backward compatibility guarantee
  > 274b895 internal/mcp: resource tweaks
  > 283948d internal/mcp: document iterators
  > cd1dd28 internal/mcp: use RawMessage for tool args
  > cd3f34c internal/mcp: change CallTool signature
  > ccbd1d9 internal/mcp: change function signatures match design doc
  > e31df77 internal/mcp: pointerize all the things
  > 3ab3cc4 internal/mcp: document content constructors
  > a5938fa internal/mcp: remove omitzero
  > 34082a6 internal/mcp: simplify content
  > f1f12cf internal/mcp: merge the protocol package into mcp
  > 403f7ef internal/mcp/design: add pagination
  > 7d76ce6 internal/mcp/jsonschema: check that schemas form a tree
  > 0987b89 jsonschema: resolve remote references
  > 8ac1955 internal/mcp: implement resources
  > ade411c gopls/internal/lsprpc: start mcp server by passing -mcp-listen
  > 865cd20 x/tools: various cleanups related to planned parser changes
  > 8ab19ea internal/mcp: describe standard rpc signature
  > 4d1336a internal/mcp: add resource subscriptions
  > 6dfeba5 internal/mcp: adjust content types
  > 3818858 internal/mcp/protocol: make type name more convenient
  > bbef3e4 internal/mcp: implement roots
  > 2835a17 internal/mcp: design.md: adjust resource design
  > 7b959ff go/ast/inspector: improve doc comments
  > acf038e internal/mcp/protocol: featureSet[T]
  > 0d237c0 go/analysis/passes/framepointer: only stop on unconditional branches
  > 3ce9106 internal/mcp: fix roots design
  > 7b18363 go/ast/inspector: publish Cursor
  > a240192 internal/mcp/design.md: minor changes
  > ce6fe29 gopls/internal/completion: apply modernizers
  > 2cf2b2a internal/mcp/design: weave discussion of differences with mcp-go
  > b303c1f internal/mcp/design: remove the protocol package; update tools
  > d11c94a internal/design: minor cleanup; add 'errors' and 'ping' sections
  > 721ad8d internal/mcp/design.md: prompts and resources
  > b489159 internal/mcp: progress notifications
  > b61ab33 internal/mcp/design: add a section on cancellation
  > ef35d72 internal/mcp/design: add section on clients and servers
  > 8ee3f58 internal/mcp/design.md: completions
  > 4160b77 internal/mcp/design.md: client features
  > d60d930 internal/mcp: tool section of design
  > c89ad19 internal/mcp: JSON Schema design
  > 1ead56f internal/mcp/design: describe mcp-go delta
  > 2587caa internal/mcp/design: discuss generated protocol types
  > 3d89335 internal/mcp: a new extensibility point for HTTP transports
  > 6736a6d jsonschema: resolve refs
  > 51dcb32 gopls/internal/analysis/modernize: add checks to prevent invalid fixes from slicesContains
  > bad5619 internal/mcp/protocol: spell "Id" idiomatically
  > 89c7c2c internal/mcp/design: logging
  > dbc82b6 internal/mcp/jsonschema: make Schema.every fully recursive
  > 4a72625 internal/mcp/design: start a full design doc, with stubs
  > 3f0db34 internal/mcp: rename ClientConnection to ServerConnection
  > c836232 internal/mcp: rename Make* to New*
  > f71ad04 jsonschema: implement JSON Pointers for schemas
  > f8980b6 internal/mcp/jsonschema: support validating structs
  > 7231669 gopls/internal/analysis/modernize: don't offer a fix when initialization statement is not empty
  > deec52f internal/typesinternal: use TypeAndValue.IsBuiltin in ClassifyCall
  > 887e16c internal/mcp: NewClient takes Transport
  > ff4f533 internal/mcp: add README.md and CONTRIBUTING.md
  > 6b12a4e internal/mcp/protocol: move out of mcp/internal, as it's used in the API
  > 0ac692e gopls/internal/golang: Hover: show allocator size class
  > 8be0535 gopls/internal/golang: make "Show assembly" work in tests
  > 055c1af go/ssa: clear Function.subst after building bodyless function
  > 898dcae gopls/internal/golang/completion: new code for unimported completions
  > 9635d6c jsonschema: resolve anchors
  > 51a10bc jsonschema: resolve URIs for $id
bumping golang.org/x/net 7d6e62a...6e41cae:
  > 6e41cae go.mod: update golang.org/x dependencies
  > 15f7d40 http2: correctly wrap ErrFrameTooLarge in Framer.ReadFrame
  > ef33bc0 internal/http3: use bubbled context in synctest tests
  > 919c6bc http2: use an array instead of a map in typeFrameParser
  > bae01a7 trace: add missing td tag
bumping golang.org/x/text 700cc20...8072180:
  > 8072180 go.mod: update golang.org/x dependencies
  > 6cacac1 go.mod: update tagx:ignore'd golang.org/x dependencies
bumping google.golang.org/genproto/googleapis/rpc 56aae31...b45e905:
  > b45e905 chore(all): update all (# 1204)
  > e70fdf4 chore(deps): bump golang.org/x/net to 0.37.0 (# 1202)
  > 33a14cd chore(deps): bump golang.org/x/net from 0.35.0 to 0.36.0 (# 1201)
  > 5d019e2 chore(deps): bump golang.org/x/net in /googleapis/bytestream (# 1200)
  > 81fb87f chore(all): auto-regenerate .pb.go files (# 1199)
  > 29e43e6 chore(all): auto-regenerate .pb.go files (# 1195)
  > a0af3ef chore(all): update all (# 1196)
  > 55c9018 chore(all): auto-regenerate .pb.go files (# 1194)
  > 546df14 chore(all): update all (# 1193)
  > 9fdb1ca chore(all): update Go to 1.24 (# 1191)
bumping golang.org/x/sync 506c70f...8a14946:
  > 8a14946 errgroup: remove duplicated comment
  > 1869c69 all: replace deprecated ioutil
  > d1ac909 sync/errgroup: PanicError.Error print stack trace
bumping golang.org/x/crypto aae6e61...3bf9d2a:
  > 3bf9d2a ssh/test: skip KEX test if unsupported by system SSH client
  > 9bab967 go.mod: update golang.org/x dependencies
  > 4f9f0ca x509roots/fallback: add init time benchmark
  > eac7cf0 x509roots/fallback: move parsing code to a non-generated file
  > 18228cd acme: return err from deprecated TLS-SNI-[01|02] functions
  > 73f6362 acme: remove dead code
  > ebc8e46 ssh: add server side support for Diffie Hellman Group Exchange
  > e944286 ssh: expose negotiated algorithms
  > 78a1fd7 ssh: automatically add curve25519-sha256@libssh.org KEX alias
  > ac58737 ssh: export supported algorithms
  > 9dbbcf0 bcrypt: update InvalidCostError message to describe cost range inclusive
  > 9f6bf84 x509roots/fallback: update bundle
bumping go.opentelemetry.io/otel edc378f...5ba5e7a:
  > 5ba5e7a Release v1.35.0/v0.57.0/v0.11.0 (# 6407)
  > 3908b67 chore(deps): update module github.com/securego/gosec/v2 to v2.22.2 (# 6412)
  > 50172b1 chore(deps): update module github.com/ryancurrah/gomodguard to v1.4.1 (# 6411)
  > cea6d2b fix(deps): update module google.golang.org/grpc to v1.71.0 (# 6409)
  > e2aee3a Move trace sdk tests from trace_test into trace package (# 6400)
  > 38f4f39 fix(deps): update build-tools to v0.20.0 (# 6403)
  > 2911449 Look at stale issues in ascending order (# 6396)
  > 7cb322a chore(deps): update github.com/golangci/dupl digest to 44c6a0b (# 6398)
  > 0c3651e fix(deps): update module github.com/golangci/golangci-lint to v1.64.6 (# 6394)
  > f04e951 chore(deps): update mvdan.cc/unparam digest to 0df0534 (# 6391)
  > 8878690 fix(deps): update golang.org/x to dead583 (# 6389)
  > d2d49f4 chore(deps): update module 4d63.com/gocheckcompilerdirectives to v1.3.0 (# 6388)
  > 5ccc9b5 chore(deps): update module github.com/kkhaike/contextcheck to v1.1.6 (# 6387)
  > 053f109 chore(deps): update actions/cache digest to d4323d4 (# 6384)
  > c6e2814 chore(deps): update module github.com/go-git/go-git/v5 to v5.14.0 (# 6385)
  > b18d593 chore(deps): update module github.com/protonmail/go-crypto to v1.1.6 (# 6383)
  > 9be18c1 sdk/trace: Fix gorountine leak in batchSpanProcessor.ForceFlush (# 6369)
  > 23c76d3 chore(deps): update module github.com/catenacyber/perfsprint to v0.9.0 (# 6379)
  > aec954c chore(deps): update codecov/codecov-action action to v5.4.0 (# 6380)
  > 44d5045 sdk/trace: Fix goroutine leak in simpleSpanProcessor.Shutdown (# 6368)
  > 7f724db chore(deps): update actions/download-artifact digest to cc20338 (# 6377)
  > 86d783c fix(deps): update build-tools to v0.19.0 (# 6376)
  > bb42ffa chore(deps): update module github.com/bombsimon/wsl/v4 to v4.6.0 (# 6373)
  > d903b7b chore(deps): update module go.opentelemetry.io/build-tools to v0.19.0 (# 6374)
  > 9e57b0d chore(deps): update python:3.13.2-slim-bullseye docker digest to 31b581c (# 6370)
  > 6192b14 [chore] clean up revive configuration (# 6353)
  > 4d7fcb6 chore(deps): update module golang.org/x/crypto to v0.35.0 (# 6366)
  > 70f52c4 chore(deps): update python:3.13.2-slim-bullseye docker digest to d3852c9 (# 6367)
  > 8f4a5c6 chore(deps): update module github.com/gaijinentertainment/go-exhaustruct/v3 to v3.3.1 (# 6361)
  > 87e328b chore(deps): update golang.org/x (# 6355)
  > cbb4e24 fix(deps): update module github.com/google/go-cmp to v0.7.0 (# 6359)
  > 863a0b2 chore(deps): update ossf/scorecard-action action to v2.4.1 (# 6358)
  > c0d043a chore(deps): update github/codeql-action digest to b56ba49 (# 6354)
  > 1e573f2 chore(deps): update actions/upload-artifact digest to 4cec3d8 (# 6356)
  > 010790d chore(deps): update module github.com/ldez/exptostd to v0.4.2 (# 6357)
  > 597e1d7 chore(deps): update module github.com/quasilyte/go-ruleguard to v0.4.4 (# 6348)
  > 92a7481 chore(deps): update golang.org/x/telemetry digest to 165e2f8 (# 6346)
  > 2509d78 [chore] Add OpenSSF Best Practices badge (# 6345)
  > 7f64adf [chore] Add a policy on adding tests (# 6334)
  > f65062e chore(deps): update module github.com/kisielk/errcheck to v1.9.0 (# 6340)
  > fb8b0f2 Add FOSSA scanning workflow (# 6331)
  > dfe20c4 chore(deps): update module github.com/catenacyber/perfsprint to v0.8.2 (# 6339)
  > 8231483 fix(deps): update googleapis to 56aae31 (# 6338)
  > 6239155 chore(deps): update actions/cache digest to 0c907a7 (# 6337)
  > 1ee7c79 sdk/log: Add FilterProcessor and EnabledParameters (# 6317)
  > b80639c chore(deps): update module github.com/nunnatsa/ginkgolinter to v0.19.1 (# 6311)
  > e033250 fix(deps): update golang.org/x to aa4b98e (# 6336)
  > 963190b fix(deps): update golang.org/x to eff6e97 (# 6325)
  > 14dc8ea chore(deps): update module github.com/4meepo/tagalign to v1.4.2 (# 6327)
  > af9dcb0 chore(deps): update module github.com/spf13/cobra to v1.9.1 (# 6324)
  > 26493d7 chore(deps): update module github.com/mgechev/revive to v1.7.0 (# 6326)
  > 8562bdf [chore] Use public Linux ARM64 runners (# 6320)
  > c08d161 chore(deps): update module github.com/tetafro/godot to v1.5.0 (# 6323)
  > 1d1f79c chore(deps): update module github.com/tdakkota/asciicheck to v0.4.1 (# 6322)
  > f2a1518 chore(deps): update golang.org/x/telemetry digest to 6f9b61d (# 6321)
  > 55ff06f sdk/log: Change BenchmarkLoggerNewRecord to BenchmarkLoggerEmit (# 6315)
  > 8261e7b chore(deps): update otel/weaver docker tag to v0.13.2 (# 6318)
  > da2d2f8 fix(deps): update module github.com/golangci/golangci-lint to v1.64.5 (# 6319)
  > a9cbc3d chore(deps): update module github.com/tdakkota/asciicheck to v0.4.0 (# 6316)
  > 9d4c2f7 [chore] Fix go-work Make target with the highest required Go version (# 6285)
  > d9ab149 chore(deps): update module github.com/securego/gosec/v2 to v2.22.1 (# 6314)
  > f62232f Replace tenv with usetesting (# 6313)
  > 44ea53b Add support for Go 1.24 (# 6304)
  > 8d2c38d fix(deps): update googleapis to 5a70512 (# 6308)
  > 4b7d52a chore(deps): update module github.com/gostaticanalysis/forcetypeassert to v0.2.0 (# 6312)
  > d4b0597 chore(deps): update golang.org/x/telemetry digest to 7530529 (# 6305)
  > dfc43f0 fix(deps): update module github.com/golangci/golangci-lint to v1.64.4 (# 6310)
  > fd8eb0b chore(deps): update otel/weaver docker tag to v0.13.1 (# 6309)
  > 47c4b11 chore(deps): update module github.com/mgechev/revive to v1.6.1 (# 6306)
  > 3c1286a Document and check resource comparability (# 6272)
  > afbe545 fix(deps): update module github.com/golangci/golangci-lint to v1.64.2 (# 6301)
  > 6c8583d chore(deps): update module github.com/ldez/exptostd to v0.4.1 (# 6300)
  > 1971f5f fix(deps): update golang.org/x (# 6297)
  > d40491f chore(deps): pin actions/stale action to 5bef64f (# 6295)
  > 7d503b7 Close stale issues and PRs after 2 years of inactivity (# 6284)
  > 6e3724a chore(deps): update module github.com/catenacyber/perfsprint to v0.8.1 (# 6294)
  > ab254c2 chore(deps): update module go-simpler.org/sloglint to v0.9.0 (# 6293)
  > 6e1c433 chore(deps): update module 4d63.com/gochecknoglobals to v0.2.2 (# 6291)
  > ae0cc74 chore(deps): update otel/weaver docker tag to v0.13.0 (# 6292)
  > fabdac2 fix(deps): update googleapis to e9438ea (# 6289)
  > 42273a6 chore(deps): update module golang.org/x/crypto to v0.33.0 (# 6290)
  > b42504e chore(deps): update module github.com/grpc-ecosystem/grpc-gateway/v2 to v2.26.1 (# 6288)
  > 834e574 chore(deps): update github/codeql-action digest to 9e8d078 (# 6287)
  > b25505b fix(deps): update golang.org/x to f9890c6 (# 6282)
  > 558dbdd chore(deps): update python docker tag to v3.13.2 (# 6283)
  > 6894f1b Add an OpenSSF badge to README.md (# 6269)
  > 25ee2bd Default github workflow permission read-all (# 6268)
  > d46bfb0 Fix comment of the RecordOnly sampling decision (# 6257)
  > 51cf2d7 chore(deps): update golang.org/x/telemetry digest to 557cf9c (# 6279)
  > c9bb09c chore(deps): pin dependencies (# 6278)
  > 9ea576a Use renovate best-practices (# 6267)
  > 8667c15 fix(deps): update module google.golang.org/protobuf to v1.36.5 (# 6277)
  > 5879a01 fix(deps): update build-tools to v0.18.0 (# 6276)
  > 0c62fd1 chore(deps): update actions/upload-artifact action to v4 (# 6266)
  > ac173ac chore(deps): update ossf/scorecard-action action to v2.4.0 (# 6265)
  > ee272d4 chore(deps): update golang.org/x/telemetry digest to c67c2d1 (# 6264)
  > e1472c4 chore(deps): update actions/checkout action to v4.2.2 (# 6263)
  > 092ed4e chore(deps): update actions/upload-artifact digest to ff15f03 (# 6262)
  > 69c3c61 Create scorecard.yml to enable OSSF Scorecard reporting (# 6247)
  > 85fab8b chore(deps): update module github.com/catenacyber/perfsprint to v0.8.0 (# 6261)
  > 13b6133 chore(deps): update lycheeverse/lychee-action action to v2.3.0 (# 6258)
  > 589d959 chore(deps): update module github.com/cloudflare/circl to v1.6.0 (# 6259)
  > eb988d7 fix(deps): update module go.opentelemetry.io/collector/pdata to v1.25.0 (# 6255)
  > 4778db7 fix(deps): update module go.opentelemetry.io/otel/trace to v1.34.0 (# 6256)
  > 3dbdfb2 chore(deps): update module google.golang.org/grpc to v1.70.0 (# 6254)
  > 18dadf4 chore(deps): update golang.org/x/telemetry digest to 3af0d96 (# 6253)
  > 2d050f9 fix(deps): update googleapis to 7023788 (# 6251)
  > 74923b2 chore(deps): update module golang.org/x/text to v0.22.0 (# 6252)
  > 1ba3e46 chore(deps): update google.golang.org/genproto/googleapis/rpc digest to 29210b9 (# 6250)
  > 6b3868e fix(deps): update golang.org/x (# 6249)
  > 9aae208 Add an auto-instrumentable no-op implementation to the `trace` package (# 6203)
  > fa5a782 Generate `semconv/v1.30.0` (# 6240)
  > 078a4a8 sdk/log: Assign fltrProcessors on provider creation instead of lazy (# 6239)
  > 2260929 Use archive URL for weaver registry (# 6235)
  > 27aaa7a Generate the `semconv/v1.28.0` package (# 6236)
  > 987efa6 chore(deps): update module github.com/polyfloyd/go-errorlint to v1.7.1 (# 6237)
  > 8324155 Weaver (# 5898)
  > a81250c chore(deps): update module github.com/skeema/knownhosts to v1.3.1 (# 6231)
  > 007fb1f chore(deps): update module github.com/spf13/pflag to v1.0.6 (# 6224)
  > 1994f63 Update codespell target (# 6223)
  > d10a36b stdoutlog: Emit Record.EventName field (# 6210)
  > e52d3a1 fix(deps): update golang.org/x to e0ece0d (# 6222)
  > 712ecdc chore(deps): update dependency codespell to v2.4.1 (# 6221)
  > b9819d2 fix(deps): update golang.org/x to 3edf0e9 (# 6219)
  > 98da0d1 chore(deps): update module github.com/cyphar/filepath-securejoin to v0.4.1 (# 6218)
  > dc7c33a fix(deps): update googleapis to 29210b9 (# 6217)
  > a027f11 chore: Update Logs API design doc (# 6206)
  > ae7ac48 otlplog: Emit Record.EventName field (# 6211)
  > 5d25818 fix(deps): update module google.golang.org/protobuf to v1.36.4 (# 6214)
  > d3119b0 chore(deps): update codecov/codecov-action action to v5.3.1 (# 6213)
  > de5d214 fix(deps): update googleapis to 65684f5 (# 6212)
  > 3585b80 fix(deps): update module google.golang.org/grpc to v1.70.0 (# 6208)
  > a8e5482 chore(deps): update codecov/codecov-action action to v5.3.0 (# 6207)
  > 6605083 chore(deps): update module github.com/go-git/go-git/v5 to v5.13.2 (# 6204)
  > 0c97148 Update module github.com/prometheus/common to v0.62.0 and fix tests (# 6198)
  > b0d0bb9 chore: Group renovate build-tools updates (# 6201)
  > 5363a52 fix(deps): update module go.opentelemetry.io/build-tools/multimod to v0.17.0 (# 6200)
  > b5ef234 fix(deps): update module go.opentelemetry.io/build-tools/semconvgen to v0.17.0 (# 6202)
  > 70b8f7e fix(deps): update module go.opentelemetry.io/build-tools/gotmpl to v0.17.0 (# 6199)
  > a85d0c1 fix(deps): update module go.opentelemetry.io/build-tools/crosslink to v0.17.0 (# 6197)
  > eba4618 fix(deps): update googleapis to 138b5a5 (# 6194)
  > 6d9bb01 chore(deps): update codecov/codecov-action action to v5.2.0 (# 6195)
  > 62e4225 sdk/log: Add EventName (# 6193)
  > 185547c log: Add EventName (# 6187)
  > e108415 fix(deps): update github.com/opentracing-contrib/go-grpc/test digest to 2f9c7e3 (# 6190)
  > 01a7584 fix(deps): update module github.com/opentracing-contrib/go-grpc to v0.1.1 (# 6191)
  > d7ebb7a log: Add ValueFromAttribute and KeyValueFromAttribute  (# 6180)
  > 538e869 chore(deps): update dependency codespell to v2.4.0 (# 6189)
  > 3a0023d chore(deps): update module github.com/pjbgf/sha1cd to v0.3.2 (# 6188)
  > 41e697f chore(deps): update module github.com/grpc-ecosystem/grpc-gateway/v2 to v2.26.0 (# 6186)
  > e8cd4aa chore(deps): update golang.org/x/telemetry digest to 04cd7ba (# 6176)
bumping knative.dev/pkg 3c3a920...1da18b7:
  > 1da18b7 Bump the golang-x group with 3 updates (# 3183)
  > 2c412af Bump google.golang.org/grpc from 1.72.2 to 1.73.0 (# 3182)
bumping google.golang.org/grpc 6135a73...c52d025:
  > c52d025 Change version to 1.73.0 (# 8322)
  > ac60db1 Add flag guarding SPIFFE Bundle provider (# 8343) (# 8382)
  > 183c148 balancer/ringhash: Add experimental notice in package comment (# 8364) (# 8365)
  > b610465 delegatingresolver: avoid proxy for resolved addresses in NO_PROXY env (# 8329) (# 8354)
  > 96c4308 balancer/least_request : Fix panic while handling resolver errors (# 8333) (# 8338)
  > af5146b grpc: update contributing.md (# 8318)
  > 09166b6 cleanup: remove unused constants in generic xdsclient (# 8315)
  > e3f13e7 transport: Prevent sending negative timeouts (# 8312)
  > b89909b leakcheck: Fix flaky test TestCheck (# 8309)
  > 709023d grpcsync/event: Simplify synchronization (# 8308)
  > d36b02e transport: Propagate status code on receiving RST_STREAM during message read (# 8289)
  > ee7f0b6 resolver/delegatingresolver: wait for proxy resolver build before update in tests (# 8304)
  > 96e31db transport: Reject non-positive timeout values in server (# 8290)
  > d3d2702 cleanup: replace dial with newclient (# 8196)
  > d46d6d8 Update CONTRIBUTING.md (# 8300)
  > 950a7cf health: Add List method to gRPC Health service (# 8155)
  > 4680429 credentials/local: implement ValidateAuthority (# 8291)
  > b3d63b1 xds: add MetricsReporter for generic xds client (# 8274)
  > d00f4ac resolver/delegatingresolver: wait for proxy resolver to be built in test (# 8302)
  > 0e656b2 xds: modify generic clients grpctransport to accept optional custom grpc new client function (# 8301)
  > c84fab0 grpc: Update ClientStream.CloseSend docs (# 8292)
  > c7aec4d transport: skip Status.Proto() without details in writeStatus (# 8282)
  > 35aea9c weightedroundrobin: Remove nil embedded SubConn from endpointWeight (# 8297)
  > 41095ae [alts] add keepalive params to the alts handshaker client dial option (# 8293)
  > ee8a53a internal/delegatingresolver: avoid proxy if networktype of target address is not tcp (# 8215)
  > 7fb5738 xds_test: Wait for server to enter serving mode in RBAC test (# 8287)
  > d2f02e5 stats/opentelemetry: separate out interceptors for tracing and metrics (# 8063)
  > 00be1e1 [alts] Add plumbing for the bound access token field in the ALTS StartClient request. (# 8284)
  > 763d093 otel: Test streaming rpc sequence numbers (# 8272)
  > 75d25ee xds: generic lrs client for load reporting (# 8250)
  > 080f956 credentials, transport, grpc : add a call option to override the :authority header on a per-RPC basis (# 8068)
  > 6821606 grpc: regenerate protos (# 8277)
  > 399e2d0 credentials/alts: Optimize Reads (Roll forward # 8236) (# 8271)
  > 4cedec4 grpc_test: add tests for client streaming (# 8120)
  > 030938e xds: Remove redundant proto checks (# 8273)
  > 515f377 github: replace actions/upload-release-asset@v1 with gh cli (# 8264)
  > ec2d624 xds: generic xds client resource watching e2e (# 8183)
  > 82e25c7 xds: fix TestServer_Security_WithValidAndInvalidSecurityConfiguration data race (# 8269)
  > 2640dd7 atls: Clarify usage of dst in ALTSRecordCrypto interface docs (# 8266)
  > 58d1a72 [Security] Add verification logic using SPIFFE Bundle Maps in XDS (# 8229)
  > f7d488d credentials: expose NewContextWithRequestInfo publicly (# 8198)
  > 54e7e26 balancer/ringhash: move LB policy from xds/internal to exported path (# 8249)
  > 223149b github: add printing of new packages to dependency checker (# 8263)
  > aec1381 cleanup: status formatting bug and comment grammar fix (# 8260)
  > 7d68bf6 ringhash: fix flaky e2e tests (# 8257)
  > 718c4d8 xds: Make locality ID string representation consistent with A78 (# 8256)
  > eb4b687 examples/features/opentelemetry: demonstrate tracing using OpenTelemetry plugin (# 8056)
  > 8b2dbbb New A72 changes for OpenTelemetry # 8216 (# 8226)
  > cb1613c xds: make least request available by default (# 8253)
  > d36887b balancer/pickfirstleaf: Avoid reading Address.Metadata (# 8227)
  > 560ca64 xds: fix data file name in test (# 8254)
  > f0676ea Update lrs_stream.go fix use of wrong err (# 8224)
  > 6319a2c ringhash: normalize uppercase in requestHashHeader from service config (# 8243)
  > 68205d5 xdsclient: update watcher API as per gRFC A88 (# 7977)
  > 732f3f3 stats/opentelemetry: fix trace attributes message sequence numbers to start from 0 (# 8237)
  > 6bfa0ca Rollback # 8232 and # 8204 (# 8236)
  > 25c7509 ringhash: implement gRFC A76 (# 8159)
  > 09dd4ba testdata: Wrap lines to 80 columns in markdown file (# 8235)
  > be25d96 credentials/alts: Add comments to clarify buffer sizing (# 8232)
  > db81a2c benchmark: Specify passthrough resolver to avoid resolution failures (# 8231)
  > b368379 credentials/alts: Optimize reads (# 8204)
  > 4b5505d [Security] Add support for SPIFFE Bundle Maps in XDS bundles (# 8180)
  > ce35fd4 stats/opentelemetry: add trace event for name resolution delay (# 8074)
  > 52c643e deps: update dependencies for all modules (# 8221)
  > 51d6a43 Change version to 1.73.0-dev (# 8220)

Signed-off-by: Knative Automation <automation@knative.team>
2025-06-10 05:58:45 +00:00
Christoph Stäbler da948cba50
Return assigned port for HTTPEventReceiver (#8596)
This allows to pass 0 as the port and thus let the OS chose a free port for the server. This helps to fix flaky tests which can occur, when we use the same port number in different tests which might run in parallel
2025-06-03 12:31:25 +00:00
Knative Automation 3edf52653b
[main] Upgrade to latest dependencies (#8595)
upgrade to latest dependencies

bumping knative.dev/pkg 44579e9...3c3a920:
  > 3c3a920 Bump google.golang.org/grpc from 1.72.1 to 1.72.2 (# 3181)
bumping google.golang.org/grpc 4cf3cf7...6135a73:
  > 6135a73 Change version to v1.72.2 (# 8357)
  > eef8c9c delegatingresolver: avoid proxy for resolved addresses in NO_PROXY env (# 8329) (# 8353)
  > 3b5fa74 balancer/least_request : Fix panic while handling resolver errors (# 8333) (# 8339)
  > edf643f Change version to v1.72.2-dev (# 8326)
bumping knative.dev/reconciler-test f46fa65...9a20896:
  > 9a20896 upgrade to latest dependencies (# 797)

Signed-off-by: Knative Automation <automation@knative.team>
2025-06-03 07:01:25 +00:00
Pierangelo Di Pilato 40bac3cce0
Eventing TLS: add tests for dynamically added CA trust bundles (#7726)
* Add CA rotation tests

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

* Fix test

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

* Add propagation improvements for webhook (running before reconciler)

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

* Inject Kubeclient

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

* Fix unit tests

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

* Use managed T for ApiServerSource TLS tests

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

* Reduce number of retries

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

* 💄 updates after rebase...

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

---------

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
Co-authored-by: Matthias Wessendorf <mwessend@redhat.com>
2025-05-26 16:01:17 +00:00
Knative Automation a2cf308c29
[Automated] Update eventing-eventing-integrations nightly (#8591)
Update eventing-integrations nightly

Signed-off-by: Knative Automation <automation@knative.team>
2025-05-22 12:07:30 +00:00
Knative Automation 7a5486b8a6
[main] Upgrade to latest dependencies (#8590)
upgrade to latest dependencies

bumping knative.dev/reconciler-test 10479dd...f46fa65:
  > f46fa65 upgrade to latest dependencies (# 796)
bumping google.golang.org/grpc a43eba6...4cf3cf7:
  > 4cf3cf7 Change version to 1.72.1 (# 8319)
  > 537fe8d transport: Propagate status code on receiving RST_STREAM during message read (# 8289) (# 8317)
  > f32eab3 cherry-pick # 8302 and # 8304 to v1.72.x branch (# 8303)
  > 7fcfc87 internal/delegatingresolver: avoid proxy if networktype of target address is not tcp (# 8215) (# 8296)
  > ad1e120 Change version to 1.72.1-dev (# 8219)
bumping knative.dev/pkg 19a1383...44579e9:
  > 44579e9 Bump google.golang.org/grpc from 1.72.0 to 1.72.1 (# 3180)
  > 873230f upgrade to latest dependencies (# 3179)

Signed-off-by: Knative Automation <automation@knative.team>
2025-05-21 12:31:31 +00:00
Matthias Wessendorf 5eb1a5fa62
Try to ensure ordering of referenced source CMs, by name (#8589)
Try to ensure ordering of referenced source CMs, by name...

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2025-05-16 14:38:49 +00:00
Knative Automation 3788fccf04
[main] Upgrade to latest dependencies (#8587)
upgrade to latest dependencies

bumping golang.org/x/sys 01aaa83...3d9a6b8:
  > 3d9a6b8 windows: add WSADuplicateSocket
  > c0a9559 cpu: add crypto extensions detection for riscv64
  > 8e9e046 windows: add virtual key codes and console input consts
  > 7138967 windows: fix slicing of NTUnicodeString values
  > 6a85559 windows: fix dangling pointers in (*SECURITY_DESCRIPTOR).ToAbsolute
bumping knative.dev/pkg d5e74d2...19a1383:
  > 19a1383 group golang.org/x dependencies (# 3178)
  > 1c0e799 Bump golang.org/x/net from 0.39.0 to 0.40.0 (# 3177)
  > d09148e Bump golang.org/x/tools from 0.32.0 to 0.33.0 (# 3176)
  > cb6cfa2 Bump golang.org/x/sync from 0.13.0 to 0.14.0 (# 3175)
bumping golang.org/x/text 4890c57...700cc20:
  > 700cc20 go.mod: update golang.org/x dependencies
bumping golang.org/x/net b8d8877...7d6e62a:
  > 7d6e62a go.mod: update golang.org/x dependencies
  > ea0c1d9 internal/timeseries: use built-in max/min to simplify the code
  > 3e7a445 quic: skip packet numbers for optimistic ack defense
  > 3f563d3 quic: use an enum for sentPacket state
  > a3b6e77 quic: don't re-lose packets when discarding keys
  > 22500a6 quic: decode packet numbers >255 in tests
  > dd0b200 quic: remove go1.21 build constraint
bumping knative.dev/hack c4037b0...f525e18:
  > f525e18 Bump min kube version to 1.32 (# 424)
bumping golang.org/x/term 5d2308b...2ec7864:
  > 2ec7864 go.mod: update golang.org/x dependencies
  > a809085 term: support pluggable history
bumping knative.dev/reconciler-test 44221c8...10479dd:
  > 10479dd upgrade to latest dependencies (# 795)
bumping knative.dev/hack/schema c4037b0...f525e18:
  > f525e18 Bump min kube version to 1.32 (# 424)
bumping golang.org/x/crypto 959f8f3...aae6e61:
  > aae6e61 go.mod: update golang.org/x dependencies
  > 9c1aa6a ssh/test: reset the random source before capturing a recording
  > 8819902 ssh/test: enable Diffie-Hellman key exchange algorithms
  > 3f311e4 acme: return error from pre-authorization when unsupported
  > 1f7c62c ssh/test: skip unsupported tests on js/wasm
  > a5f8048 acme/autocert: use standard functions to pick the cache directory
  > 958cde8 Revert "chacha20: add loong64 SIMD implementation"
  > 51f005c Revert "salsa20: add loong64 SIMD implementation"
  > 7c35866 Revert "argon2: add loong64 SIMD implementation"
  > 0091fc8 Revert "blake2s: add loong64 SIMD implementation"
  > 388684e argon2: add loong64 SIMD implementation
  > 953e809 chacha20: add loong64 SIMD implementation
  > 18f7707 salsa20: add loong64 SIMD implementation
  > 2ebaafc blake2s: add loong64 SIMD implementation
  > 4bc0711 acme: use built-in max/min to simplify the code
  > c96bba2 ssh: add mlkem768x25519-sha256 Key Exchange algorithm
  > 6b13eef ssh: add integration tests against a reference implementation
bumping golang.org/x/tools 456962e...64b63a6:
  > 64b63a6 go.mod: update golang.org/x dependencies
  > 7701413 internal/mcp: move jsonschema out of mcp/internal
  > 125cd11 jsonschema: pre-compile regexps
  > 2f18550 jsonschema: better errors unmarshaling ints
  > 635622b jsonschema: using hashing for uniqueItems
  > 0f6a53f mcp: remove ServerConnection
  > ca54d59 jsonschema: represent integer keywords as ints
  > c75f7e8 jsonschema: validate object keywords
  > efd15d8 internal/mcp: clean up handling of content
  > 80e0fd8 internal/mcp: support prompts
  > ab01700 internal/mcp: add tool and schema options
  > 37278be internal/mcp: add more package documentation, examples
  > 7906227 internal/mcp: add a command transport for connecting to a sidecar
  > 1587f35 gopls/internal/server/completion: get correct surrounding for second lhs
  > f11e7de internal/stdlib: add arg types for functions
  > 0d2acf1 jsonschema: validate array keywords
  > fd1a208 jsonschema: validate logic keywords
  > 984d58c go/analysis/unitchecker: update TestVetStdlib's skip for "devel" move
  > 953b452 go/packages: skip TestRmdirAfterGoList_Runner
  > 9e366f5 jsonschema: validate numbers and strings
  > 68cf9be gopls/internal/golang/completion: tostring, tobytes postfix snippets
  > 6a96d1d cmd/auth: carve out module for deprecated command `auth`
  > 7261efd internal/mcp: export the Transport interface; add a Server example
  > e4c83cc internal/mcp: dynamically determine the mcp server based on URL
  > 26f40ac internal/mcp: clean up SSE server shutdown.
  > ffe579a go/packages: remove unexported fields from packages.Config
  > 37f9bd1 jsonschema: validate some keywords
  > bf81a8d internal/mcp/internal/jsonschema: schema definition
  > 4ec26d6 gopls/internal/server: add modify tags code action docs
  > d3f8716 gopls/internal/golang/completion: offer return with whitespace
  > de18b0b gopls: run modernize -fix in gopls
  > 2f3d4ad go/packages: add variant of TestRmdirAfterGoList without gocommand
  > cd9151d gopls/internal/cache: fix bug in toGobDiagnostic(Related)
  > d3a3775 internal/mcp: implement cancellation
  > 2863098 internal/mcp: implement ping, and test request interleaving
  > caf7cdc internal/mcp: implement HTTP SSE transport
  > 68e94bd x/tools: use 2-arg form of //go:linkname
  > f11abcb internal/analysisinternal: permit Fix.End slightly beyond EOF
  > 46e932f internal/analysisinternal: add std import at the start of the import group
  > d346382 gopls/internal/server: add modify_tags command handler
  > 0c2f68a gopls/internal/golang/completion: show typeparam for preceding funcs in chain
  > f01b9f6 gopls/internal/server: support links and hovers for replace directive
  > cd18362 go/packages: add test that go list closes file handles
  > 04af9bf go/analysis/passes/hostport: publish
  > 357c3da internal/mcp: add batching support
  > cc6bc88 internal/mcp: an MCP SDK prototype
  > e9d2a36 gopls/internal/golang: pkgdoc: don't discard NewT for unexported t
  > d905d0b gopls/internal/golang: add test for (unfixed) issue 65098
  > e27768f internal/refactor/inline: freeishNames initial scope
  > 264b0a5 gopls/internal/golang/completion: modernize
  > 7c6d4c6 internal/refactor/inline: handle generic functions
  > 6da8d2e gopls/internal/golang: Rename imports: be defensive
  > 015c0fc gopls/internal/test/integration/web: move misc/webserver_test.go
  > d97a910 gopls/internal/golang: CodeAction: don't fail because of 1 producer
  > d0ead43 gopls/internal/settings: enable most staticcheck analyzers
  > bacd4ba go/analysis/passes/gofix: add an example to doc
  > 48422ad gopls/internal/golang: add embedded struct info to hover
  > a318c19 internal/refactor/inline: test type params shadowing pkg symbols
  > 035d8c6 gopls/internal/golang: Rename all receivers only at declaration
  > 6f344f9 internal/refactor/inline: add test for type param shadowing
  > 2337e7c internal/refactor/inline: factor out free obj renaming
  > 93bb7f0 gopls: update x/telemetry
  > 33c6419 gopls/internal/golang: fix build
  > e78fd89 internal/astutil/cursor: four API refinements
  > cf5cb00 internal/astutil: PreorderStack: a safer ast.Inspect for stacks
  > f76b112 gopls/internal/golang: Rename all receiver variables
  > ee8f138 go/analysis/passes/gofix: go:fix directive checker
  > 1494dfe gopls: improve warning against using go get -tool with gopls
  > 20a69d6 gopls: warn against using go get -tool with gopls
  > 26ef4d1 gopls/internal/golang: fix broken build due to semantic merge conflict
  > 808c870 gopls/internal/cache: more test cases for syntax repairing
  > b68d703 gopls/internal/cache: handle VS Code Insiders in watchSubdirs
  > ce1c5d5 gopls/internal/golang: CallHierarchy: show only *types.Func callees
  > 7e7983f gopls/internal/golang: fix extract with free control statements
  > fd68572 internal/stdlib: find api directory more robustly
  > 7ceff13 go/analysis/passes/structtag: ignore findings for "encoding/..."
  > d363f10 gopls/doc: fix config for vim-lsp
  > 7829e07 go/analysis/passes/testinggoroutine: used UsedIdent
  > 9df6bbd gopls: hide todo inside readme.md
  > fd3eb08 gopls/internal/cache/parsego: new test case for fixed syntax
  > c24b06c gopls/internal/golang: implementation: report iface/iface relations
  > edff653 gopls/internal/server: TypeHierarchy support
  > a99a1c3 gopls/internal/analysis/modernize: prevent conversion of variadic functions to slices.ContainsFunc
  > 4e973d9 gopls/internal/golang: yet more refinement of golang/go# 70553
  > f64b14a gopls/internal/golang: completion: better default keyword completion in switch stmt
  > af71e42 gopls/internal/golang: Rename: fix crash in ill-typed redeclaration
  > 9fbec96 gopls/internal/server: workspace: skip adding already added file
bumping golang.org/x/sync 396f3a0...506c70f:
  > 506c70f errgroup: propagate panic and Goexit through Wait

Signed-off-by: Knative Automation <automation@knative.team>
2025-05-14 15:45:46 +00:00
Matthias Wessendorf 06f8dc9242
Check for Auth.ServiceAccountName when the OIDC feature flag is switched on to avoid potential nil (#8579)
* 🧹 when the OIDC feature flag is switched on, quickly before. It might be the case that the OIDC Service Account is not reconciled at that time

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* Update pkg/reconciler/inmemorychannel/dispatcher/inmemorychannel.go

Co-authored-by: Christoph Stäbler <cstabler@redhat.com>

---------

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
Co-authored-by: Christoph Stäbler <cstabler@redhat.com>
2025-04-30 15:19:06 +00:00
Matthias Wessendorf 912068554d
Fix hardcoded knative-eventing namespace (#8575)
* 💫 Remove hard-coded knative-eventing namespace and replace with system.Namespace() and touch test to get that properly injected

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* 🧹 Remove yet another hard-coded instance of knative-eventing

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

---------

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2025-04-29 15:50:06 +00:00
Knative Automation 2344600ffe
[main] Upgrade to latest dependencies (#8576)
upgrade to latest dependencies

bumping google.golang.org/grpc cdbdb75...a43eba6:
  > a43eba6 Change version to 1.72.0 (# 8218)
  > 48f48c1 balancer/pickfirstleaf: Avoid reading Address.Metadata (# 8227) (# 8259)
  > fd6f585 Cherry-pick # 8159 and # 8243 to v1.72.x (# 8255)
  > 79ca174 stats/opentelemetry: fix trace attributes message sequence numbers to start from 0 (# 8237) (# 8252)
  > 57a2605 xdsclient: fix TestServerFailureMetrics_BeforeResponseRecv test to wait for watch to start before stopping the listener (# 8217)
  > 5edab9e xdsclient: add grpc.xds_client.server_failure counter mertric (# 8203)
  > 78ba661 regenerate protos (# 8208)
  > 6819ed7 delegatingresolver: Stop calls into delegates once the parent resolver is closed (# 8195)
  > a51009d resolver: convert EndpointMap to use generics (# 8189)
  > b0d1203 resolver: create AddressMapV2 with generics to replace AddressMap (# 8187)
  > 43a4a84 internal/balancer/clusterimpl: replace testpb with testgrpc (# 8188)
  > d8924ac xds: fix support for load reporting in LOGICAL_DNS clusters (# 8170)
  > ce2fded xds: fix support for circuit breakers in LOGICAL_DNS clusters (# 8169)
  > eb744de resolver: Make EndpointMap's Get, Set and Delete operations O(1) (# 8179)
  > 8d8571e stats: Improved sequencing documentation for server-side stats events and added tests. (# 7885)
  > 0af5a16 grpc: fix bug causing an extra Read if a compressed message is the same size as the limit (# 8178)
  > 1703656 xds: generic xDS client transport channel and ads stream implementation (# 8144)
  > c27e6dc xdsclient: read bootstrap config before creating the first xDS client in DefaultPool (# 8164)
  > 1f6b0cf [Security] Add support for SPIFFE Bundle Maps in certificate providers (# 8167)
  > 775150f stats/opentelemetry: use TextMapProvider and TracerProvider from TraceOptions instead of otel global (# 8166)
  > d860daa example/features/retry: fix grpc.NewClient call in documentation (# 8163)
  > 75d4a60 [Security] Add support for parsing SPIFFE Bundle Maps (# 8124)
  > 5ac9042 balancer/rls: allow maxAge to exceed 5m if staleAge is set (# 8137)
  > bdba42f xds: emit resource-not-found logs at Warning level (# 8158)
  > a0a739f xds: ensure node ID is populated in errors from the server (# 8140)
  > 5668c66 resolver/manual: allow calling UpdateState with an un-Built resolver (# 8150)
  > 5199327 grpc: Add endpoints in resolverWrapper.NewAddresses (# 8149)
  > f49c747 balancer/pickfirst/pickfirstleaf: fix race condition in tests (# 8148)
  > af07815 xds: introduce generic xds clients xDS and LRS Client API signatures (# 8042)
  > 8c080da priority: Send and validate connection error in test (# 8143)
  > e8c412d *: Regenerate protos (# 8142)
  > 0914bba interop: Wait for server to become ready in alts interop tests (# 8141)
  > bffa4be xds: ensure xDS node ID is populated in errors from xds resolver and cds lb policy (# 8131)
  > 8ae4b7d clusterresolver: Lower log level when ExitIdle is called with no child (# 8133)
  > 0d6e39f transport: Send RST stream from the server when deadline expires (# 8071)
  > 7505bf2 xds: introduce simple grpc transport for generic xds clients (# 8066)
  > 01080d5 stats/openetelemetry: refactor and make e2e test stats verification deterministic (# 8077)
  > b0f5027 cleanup: replace dial with newclient (# 7970)
  > 52a257e cleanup: replace dial with newclient (# 7967)
  > d48317f github: change test action to cover the legacy pickfirst balancer (# 8129)
  > a510cf5 xds, pickfirst: Enable additional addresses in xDS, set new pick_first as default (# 8126)
  > e9c0617 xds: simplify code handling certain error conditions in the resolver (# 8123)
  > feaf942 cds: stop child policies on resource-not-found errors (# 8122)
  > dbf92b4 deps: update dependencies for all modules (# 8108)
  > aa629e0 balancergroup: Make closing terminal (# 8095)
  > e0ac3ac xdsclient: Add error type for NACKed resources (# 8117)
  > 65c6718 examples/features/dualstack: Demonstrate Dual Stack functionality (# 8098)
  > c75fc8e chore: enable early-return and unnecessary-stmt and useless-break from revive (# 8100)
  > c7db760 xdsclient: ensure xDS node ID in included in NACK and connectivity errors (# 8103)
  > 42fc25a weightedroundrobin: Move functions to manage Endpoint weights into a new internal package (# 8087)
  > 607565d Change version to 1.72.0-dev (# 8107)
bumping knative.dev/reconciler-test 23f8616...44221c8:
  > 44221c8 Update community files (# 794)
  > 7010ab9 Update community files (# 793)
bumping google.golang.org/genproto/googleapis/api e9438ea...56aae31:
  > 56aae31 chore(all): update all (# 1190)
  > 5a70512 chore(all): remove toolchain from go.mod (# 1189)
bumping knative.dev/hack/schema c577ed9...c4037b0:
  > c4037b0 Update community files (# 423)
  > cfde8c9 Update community files (# 422)
bumping knative.dev/hack c577ed9...c4037b0:
  > c4037b0 Update community files (# 423)
  > cfde8c9 Update community files (# 422)
bumping google.golang.org/genproto/googleapis/rpc e9438ea...56aae31:
  > 56aae31 chore(all): update all (# 1190)
  > 5a70512 chore(all): remove toolchain from go.mod (# 1189)
bumping knative.dev/pkg ed3e215...d5e74d2:
  > d5e74d2 Update community files (# 3174)
  > 757c99c Bump google.golang.org/grpc from 1.71.1 to 1.72.0 (# 3173)
  > a877090 Update community files (# 3171)

Signed-off-by: Knative Automation <automation@knative.team>
2025-04-29 14:27:06 +00:00
Paco Xu 7146629994
fix a typo in broker readme: kantive (#8573) 2025-04-25 14:02:25 +00:00
Knative Automation 31cc92d63b
[Automated] Update eventing-eventing-integrations nightly (#8571)
Update eventing-integrations nightly

Signed-off-by: Knative Automation <automation@knative.team>
2025-04-24 12:09:26 +00:00
Knative Automation 61731d3749
[main] Update community files (#8570)
Update community files

Signed-off-by: Knative Automation <automation@knative.team>
2025-04-24 01:37:25 +00:00
Knative Automation b99e57b01f
[main] Upgrade to latest dependencies (#8567)
upgrade to latest dependencies

bumping knative.dev/reconciler-test 84a13ac...23f8616:
  > 23f8616 upgrade to latest dependencies (# 792)
bumping knative.dev/pkg 4e8ebbe...ed3e215:
  > ed3e215 upgrade to latest dependencies (# 3170)

Signed-off-by: Knative Automation <automation@knative.team>
2025-04-22 12:14:38 +00:00
Knative Automation a7b2f1c9f6
[Automated] Update eventing-eventing-integrations nightly (#8566)
Update eventing-integrations nightly

Signed-off-by: Knative Automation <automation@knative.team>
2025-04-17 16:08:03 +00:00
Knative Automation 7c466cb12f
[main] Update community files (#8565)
Update community files

Signed-off-by: Knative Automation <automation@knative.team>
2025-04-17 01:36:19 +00:00
Knative Automation c0cf4f40b4
[main] Upgrade to latest dependencies (#8564)
upgrade to latest dependencies

bumping knative.dev/reconciler-test 1decb8d...84a13ac:
  > 84a13ac upgrade to latest dependencies (# 791)

Signed-off-by: Knative Automation <automation@knative.team>
2025-04-16 06:25:13 +00:00
Matthias Wessendorf 5f466ad371
Compare the entire PodTemplateSpec, instead of just its PodSpec (#8558)
Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2025-04-14 18:08:12 +00:00
Knative Automation d7a0359360
[main] Upgrade to latest dependencies (#8559)
upgrade to latest dependencies

bumping knative.dev/pkg a8e20d9...4e8ebbe:
  > 4e8ebbe Bump golang.org/x/tools from 0.31.0 to 0.32.0 (# 3169)
  > 1ae6a39 Bump golang.org/x/net from 0.38.0 to 0.39.0 (# 3168)
bumping knative.dev/reconciler-test 98ae503...1decb8d:
  > 1decb8d [main] Upgrade to latest dependencies (# 790)
bumping golang.org/x/tools 6a5b66b...456962e:
  > 456962e go.mod: update golang.org/x dependencies
  > 5916e3c internal/tokeninternal: AddExistingFiles: tweaks for proposal
  > 9a1fbbd internal/typesinternal: change Used to UsedIdent
  > e73cd5a gopls/internal/golang: implement dynamicFuncCallType with typeutil.ClassifyCall
  > 11a9b3f gopls/internal/server: fix event labels after the big rename
  > 3e7f74d go/types/typeutil: used doesn't need Info.Selections
  > b97074b internal/gofix: fix URLs
  > e850fe1 gopls/internal/golang: CodeAction: place gopls doc as the last action
  > b948add internal/gofix: move from gopls/internal/analysis/gofix
  > b437eff go/types/typeutil: implement Callee and StaticCallee with Used
  > e29f9ae refactor/satisfy: check for presence of types.Info maps
  > 17ce4c7 refactor/eg: return error if some info maps are missing
  > 33f80b5 typesinternal: remove RequiresFullInfo
  > 83a8057 x/tools: regenerate code after go upgrading
  > 7799973 gopls/internal/analysis/modernize: add docs for missing modernize passes
  > c788d17 gopls/internal/analysis/modernize: waitgroup: use index.Calls
  > 3348ae8 go/analysis/passes/nilfunc: use typesinternal.Used
  > e74d252 gopls/internal/analysis/modernize: check nil before calling maybeNaN
  > 66c560d x/tools: apply modernize fixes
  > 300a853 gopls: require go1.24.2
  > aee7ae5 internal/typesinternal: support checking for full types.Info
  > 97789e8 gopls/internal/lsprpc: fix call function with wrong err
  > 255cfd7 gopls: automatically insert package clause for new go files
  > ead1fea internal/analysis/modernize: add nil check before comparing with index object
  > f3a6b96 gopls/internal/analysis/modernize: add modernizer for WaitGroup.Go
  > 5fba861 internal/typesinternal: add Object and ClassifyCall
  > 5c9a69f internal/refactor/inline: get rid of imports.Process
  > 659a8cd go/analysis/analysistest: report input rather result when error happens
  > aac3cf0 internal/refactor/inline: improve freeishNames
  > a857356 internal/refactor/inline: improve freeishNames doc
  > eb75b19 internal/refactor/inline: modernize
  > 1b0b688 gopls: fix indent issue and track a TODO
  > 07cbcde gopls/internal/cmd: suppress TestImplementation on go1.23
  > 48421ae gopls/internal/analysis/modernize: preserves comments in mapsloop
  > 8c42f8a gopls/internal/analysis/modernize: use types.RelativeTo to respect current package
  > fbb7047 internal/refactor/inline: extract import handling from inlineCall
  > 2d8ef13 internal/refactor/inline: document test file format
  > 6a91355 internal/refactor/inline: factor out import map construction
  > b3ce3e1 gopls/completion: use high score for package name main when current package is main
  > c1b6839 internal/astutil/cursor: Ancestors -> Enclosing (+ reflexive)
  > d70c04e internal/refactor/inline: replace extractTxtar
  > 8be0d5f gopls/internal/analysis/maprange: use typeindex
  > b75dab2 internal/typesinternal/typeindex: suppress test on js
  > 7efe9a8 gopls/internal/analysis/modernize: rangeint: fix yet another bug
  > 30641f5 gopls/internal/analysis/modernize: use typeindex throughout
  > 11a3153 gopls/internal/analysis/modernize: rangeint: respect side effects
  > 19f73a6 internal/typesinternal/typeindex: index of types.Info
  > 45b8eac gopls/internal/golang: test initial bindings to unify
  > 9570155 gopls/internal/golang: test unify result bindings
  > baedf71 gopls/internal/golang: unify tracks type params
  > 961631a internal/testfiles: replace outdated function with os.CopyFS
  > bf12eb7 gopls/internal/analysis/modernize: fix slicedelete triggers on slice identifiers with side effects
  > ec542a7 gopls/internal/fuzzy: apply modernizers to the fuzzy matcher
  > 20f8890 internal/astutil/cursor: add Cursor.Contains(Cursor) bool
  > 084551f  go/analysis/passes/maprange: check for redundant Keys/Values calls
  > 9abefc5 gopls/internal/analysis/modernize: permit int/uint type variants in rangeint
  > cb292c6 internal/astutil/cursor: unsplit Parent{Edge,Index} -> ParentEdge
  > c2768b7 gopls/modernize: remove unused functions
  > 9b2264a gopls/internal/golang/completion: ensure expectedCompositeLiteralType arg is not nil
  > cfd8cf5 internal/astutil/cursor: split Edge into Parent{Edge,Index}
  > 3a64d74 all: make function comment match function name
  > 58e40ae gopls/internal/golang/completion: avoid crash in addFieldItems
  > be0d52b gopls/internal/cache: improve build constraint trimming
  > a70d348 gopls/internal/util/persistent: add concurrency test
  > 7042bab gopls/internal/analysis/modernize: modernizer to suggest using strings.CutPrefix
  > 3d22fef gopls/internal/analysis/modernize: disable minmax on floating point
  > e7b4c64 gopls/internal/golang: fix crash in source.test code action
  > 95eb16e gopls/internal/test/integration: skip x_tools-gotip-openbsd-amd64 (7.6)
  > 066484e gopls/internal/test/integration/misc: test "annotations" setting
  > e06efb4 internal/gcimporter: bug.Report in export's panic handler
  > 6c3e542 gopls/internal/analysis/modernize: preserves comments in minmax
  > dcc4b8a gopls/internal/golang: use slices.Reverse in pathEnclosingObjNode
  > 40f8cca internal/imports: fix extra logf argument
  > e59d6c5 gopls/internal/cache/testfuncs: handle recursive subtests
  > 4ee50fe gopls/internal/analysis/modernize: rangeint: avoid offering wrong fix
  > bf70295 cmd/go-contrib-init: drop unneeded GOPATH checks in module mode
  > 381d68d gopls/internal/util/fingerprint/fingerprint: unify type params
  > cc7d698 gopls/internal/test/integration/misc: fix TestAssembly for CL 639515
  > 03f197e gopls/internal/modernize: remove assignment in ranges
  > 5a45ac2 x/tools: use range over function for some API
  > 8fa586e internal/analysis: add function to delete a statement
  > 29f81e9 gopls/internal/cache: filter **/foo match any depth
  > 7435a81 gopls/internal/analysis/modernize: document workflow
  > b08c7a2 gopls/internal/util/fingerprint: split from cache/methodsets
bumping golang.org/x/sys 74cfc93...01aaa83:
  > 01aaa83 all: simplify code by using modern Go constructs
  > 1b2bd6b windows: replace all StringToUTF16 calls with UTF16FromString
  > 1c3b72f unix: update Linux kernel to 6.14
  > c175b6b windows: add cmsghdr and pktinfo structures
  > 3330b5e unix: support Readv, Preadv, Writev and Pwritev for darwin
  > 7401cce cpu: replace specific instructions with WORD in the function get_cpucfg on loong64
  > b8f7da6 cpu: add support for detecting cpu features on loong64
  > f2ce62c windows: add constants for PMTUD socket options
bumping golang.org/x/term 04218fd...5d2308b:
  > 5d2308b go.mod: update golang.org/x dependencies
  > e770ddd x/term: disabling auto-completion around GetPassword()
bumping golang.org/x/text 566b44f...4890c57:
  > 4890c57 go.mod: update golang.org/x dependencies
bumping golang.org/x/crypto 49bf5b8...959f8f3:
  > 959f8f3 go.mod: update golang.org/x dependencies
  > 769bcd6 ssh: use the configured rand in kex init
  > d0a798f cryptobyte: fix typo 'octects' into 'octets' for asn1.go
  > acbcbef acme: remove unnecessary []byte conversion
  > 376eb14 x509roots: support constrained roots
  > b369b72 crypto/internal/poly1305: implement function update in assembly on loong64
  > 6b853fb ssh/knownhosts: check more than one key
bumping golang.org/x/net e1fcd82...b8d8877:
  > b8d8877 go.mod: update golang.org/x dependencies

Signed-off-by: Knative Automation <automation@knative.team>
2025-04-14 14:22:18 +00:00
Knative Automation f14c335ef2
[main] Upgrade to latest dependencies (#8556)
upgrade to latest dependencies

bumping google.golang.org/grpc d01db5c...cdbdb75:
  > cdbdb75 Change version to v1.71.1 (# 8206)
  > 3a93562 Cherry-pick # 8195 into v1.71.x (# 8202)
  > 208e03b Cherry-pick # 8164 # 8166 to v1.71.x (# 8182)
  > 8b7d2fe grpc: fix bug causing an extra Read if a compressed message is the same size as the limit (# 8181)
  > 9c81a91 resolver: Make EndpointMap's Get, Set and Delete operations O(1) (# 8179) (# 8184)
  > 8d46b21 grpc: Add endpoints in resolverWrapper.NewAddress (# 8149) (# 8151)
  > 4775bba Change version to 1.71.1-dev (# 8106)
bumping knative.dev/reconciler-test 5ca0bd4...98ae503:
  > 98ae503 Update community files (# 789)
  > 4721d51 Update community files (# 788)
bumping golang.org/x/net 99b3ae0...e1fcd82:
  > e1fcd82 html: properly handle trailing solidus in unquoted attribute value in foreign content
  > ebed060 internal/http3: fix build of tests with GOEXPERIMENT=nosynctest
  > 1f1fa29 publicsuffix: regenerate table
  > 1215081 http2: improve error when server sends HTTP/1
  > 312450e html: ensure <search> tag closes <p> and update tests
  > 09731f9 http2: improve handling of lost PING in Server
  > 55989e2 http2/h2c: use ResponseController for hijacking connections
  > 2914f46 websocket: re-recommend gorilla/websocket
bumping knative.dev/pkg b7bbf4b...a8e20d9:
  > a8e20d9 Bump gomodules.xyz/jsonpatch/v2 from 2.4.0 to 2.5.0 (# 3154)
  > 7b91ff1 update .golangci.yaml to v2 (# 3167)
  > b9bfb45 Bump golang.org/x/sync from 0.12.0 to 0.13.0 (# 3166)
  > 74af921 Bump google.golang.org/protobuf from 1.36.5 to 1.36.6 (# 3163)
  > cc5f202 Bump golang.org/x/net from 0.37.0 to 0.38.0 (# 3162)
  > a900930 Bump google.golang.org/grpc from 1.71.0 to 1.71.1 (# 3165)
  > c5a13b1 Update community files (# 3161)
  > 9f3e60a upgrade to latest dependencies (# 3160)
bumping gomodules.xyz/jsonpatch/v2 17d7994...ffbac60:
  > ffbac60 Merge pull request # 40 from lacroixthomas/bugfixes/fix-lossy-in64
  > 4c723fc fix: handle lossy int64
bumping knative.dev/hack 8f599b7...c577ed9:
  > c577ed9 Update community files (# 421)
bumping golang.org/x/sync b637f27...396f3a0:
  > 396f3a0 errgroup: document calling Go before Wait
bumping google.golang.org/protobuf f09e239...3f79c52:
  > 3f79c52 all: release v1.36.6
  > a5da9b2 gha-ci: instruct bazelisk to use Bazel 7.x
  > 9f3ed37 internal_gengo: generate a const string literal for the raw descriptor
  > 4247b1b proto: Add CloneOf[M Message](m M) M
  > f7fcf5b types/descriptorpb: regenerate using latest protobuf v30 release
  > 9c8c2dd all: set Go language version to Go 1.22
  > 1719d63 all: start v1.36.5-devel
bumping knative.dev/hack/schema 8f599b7...c577ed9:
  > c577ed9 Update community files (# 421)

Signed-off-by: Knative Automation <automation@knative.team>
2025-04-14 05:30:16 +00:00
Christoph Stäbler 6365d8957f
Migrate golanglint-ci config to v2 (#8557) 2025-04-11 20:09:14 +00:00
Matthias Wessendorf bbc96962c0
If no subscriber uri is present we return 404, instead of 400 (#8551)
If no subscriber uri is present we return 404, instead of 400 which means the request from the client itself would have had isssues

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2025-04-10 14:44:13 +00:00
Knative Automation facf1df407
[Automated] Update eventing-eventing-integrations nightly (#8550)
Update eventing-integrations nightly

Signed-off-by: Knative Automation <automation@knative.team>
2025-04-10 12:11:13 +00:00
Knative Automation 9449b64ef3
[Automated] Update eventing-eventing-integrations nightly (#8546)
Update eventing-integrations nightly

Signed-off-by: Knative Automation <automation@knative.team>
2025-03-31 21:55:03 +00:00
Knative Automation dd04655af9
[main] Update community files (#8545)
Update community files

Signed-off-by: Knative Automation <automation@knative.team>
2025-03-31 01:38:10 +00:00
Matthias Wessendorf e531d7d3af
Adding little func that generated the invalid PEM data (#8543)
💄 Adding little func that generated the invalid PEM data, instead of a hard-coded string, that may look like a real one...

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2025-03-26 17:36:45 +00:00
Pierangelo Di Pilato 8027fd3e8b
Remove unnecessary cert-manager generated code (#8539)
Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2025-03-21 12:22:16 +00:00
Pierangelo Di Pilato a5858a54a3
Fix EventTransform with TLS Sink test (#8537)
Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2025-03-21 06:41:17 +00:00
Knative Automation 897d1d17c2
[main] Upgrade to latest dependencies (#8533)
upgrade to latest dependencies

bumping knative.dev/hack 306ce74...8f599b7:
  > 8f599b7 Skip whitespace changes in codegen (# 420)
  > 742e1e5 Deprecate knative.dev/hack/schema (# 418)
bumping knative.dev/hack/schema 306ce74...8f599b7:
  > 8f599b7 Skip whitespace changes in codegen (# 420)
  > 742e1e5 Deprecate knative.dev/hack/schema (# 418)

Signed-off-by: Knative Automation <automation@knative.team>
2025-03-19 17:57:22 +00:00
Pierangelo Di Pilato 609a0642b4
Prevent knative-nightly integrations image references from being released (#8521)
Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2025-03-19 17:57:15 +00:00
Matthias Wessendorf 8ac630de33
Use more readable ENV_VAR names for Camel (#8531)
💄 Camel provided updates to have more readable ENV_VAR names

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2025-03-19 16:43:14 +00:00
Pierangelo Di Pilato 5daaa6c75e
Allow setting finalizers for EventTransform reconciler (#8534)
Allow setting finalizers for EventTransform reconciler resources

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2025-03-19 14:05:15 +00:00
Knative Automation 433aa64f09
[Automated] Update eventing-eventing-integrations nightly (#8530)
Update eventing-integrations nightly

Signed-off-by: Knative Automation <automation@knative.team>
2025-03-19 09:28:17 +00:00
Matthias Wessendorf 4080fcf142
Try to bump to latest of CE Conformance (#8532)
Try to bump to latest of this

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2025-03-19 07:33:14 +00:00
Matthias Wessendorf c022af72cd
Fixing the way we render custom camel tags on go structs (#8528)
🔨 Fixing the way we render custom camel tags on go structs. Remove the incorrect alue of the tag and update the function that assembles the actual ENV_VARs

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2025-03-18 09:17:13 +00:00
Matthias Wessendorf da4377a6da
Propagate Cert-Manager Certificate status to the one from the IntegrationSink (#8527)
* Propagate Cert-Manager Certificate status to the one from the IntegrationSink

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* Remove cert from top level condition set

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

---------

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2025-03-14 13:51:39 +00:00
Knative Automation 1fd0d89ea7
[main] Upgrade to latest dependencies (#8523)
upgrade to latest dependencies

bumping golang.org/x/text 3b64043...566b44f:
  > 566b44f go.mod: update golang.org/x dependencies
  > d5156da collate/build: do not use println in tests
  > 221d88c x/text: fix scientific notation by removing extraneous spaces
  > b18c107 internal/export/unicode: change C comment to mention unassigned code points
  > 835f8ac language: use a more straightforward return value
  > ae68efb internal/export/unicode: add CategoryAliases, Cn, and LC
  > 518d9c0 all: upgrade go directive to at least 1.23.0 [generated]
bumping golang.org/x/crypto 9290511...49bf5b8:
  > 49bf5b8 go.mod: update golang.org/x dependencies
  > 24852b6 ssh: add decode support for banners
  > bbc689c ssh: use a more straightforward return value
  > 7292932 ssh: limit the size of the internal packet queue while waiting for KEX
  > f66f74b acme/autocert: check host policy before probing the cache
  > b0784b7 x509roots/fallback: drop obsolete build constraint
  > 911360c all: bump golang.org/x/crypto dependencies of asm generators
  > 89ff08d all: upgrade go directive to at least 1.23.0 [generated]
  > e47973b all: update certs for go1.24
bumping google.golang.org/grpc 98a0092...d01db5c:
  > d01db5c Change version to 1.71.0 (# 8105)
  > 012f8bf xds: Enable dualstack flag (# 8134)
  > bf0c885 examples/features/dualstack: Demonstrate Dual Stack functionality (# 8098) (# 8115)
  > 05bdd66 ringhash: Remove TODO comment (# 8096)
  > ddb2484 xds: remove obsolete xDS transport custom dialer option (# 8079)
  > 8528f43 cleanup: replace Dial with NewClient (# 7975)
  > ae2a04f ringhash: Replace DNS resolver before sending xDS Update in test  (# 8091)
  > e55819e lazy: Use channel to wait for resolver error being received in test (# 8088)
  > b524c08 xdsclient: include xds node ID in errors from the WatchResource API (# 8093)
  > 91eb6aa client: improve documentation of target strings (# 8078)
  > 59c84a9 rls: change lossy GetState() and WaitForStateChange() to use grpcsync.PubSub (# 8055)
  > a26ff2a ringhash: Sort endpoints to prevent unnecessary connection attempts (# 8086)
  > fabe274 ringhash:  Delegate subchannel creation to pickfirst (# 8047)
  > 75c51bf interop: Introduce env var for xDS dualstack support and add xDS interop config (# 8081)
  > cf60e5a test: Remove fake petiole in health tests (# 8082)
  > 0003b4f weightedtarget: return erroring picker when no targets are configured (# 8070)
  > 4b5608f xdsclient: invoke connectivity failure callback only after all listed servers have failed (# 8075)
  > ad5cd32 cleanup: Remove test contexts without timeouts (# 8072)
  > e95a4b7 roundrobin: Delegate subchannel creation to pickfirst (# 7966)
  > cbb5c2f advancedtls: update CRL provider certificates (# 8073)
  > c80ea18 interop: Fix logging and totalIterations issues in soak_tests.go (# 8060)
  > e0d191d test/gracefulstop: use stubserver instead of testservice implementation (# 7907)
  > 9afb49d endpointsharding: cast EndpointMap values to *balancerWrapper instead of Balancer (# 8069)
  > 267a09b xds/internal/xdsclient: Add counter metrics for valid and invalid resource updates (# 8038)
  > f227ba9 balancer: Move metrics recorder from BuildOptions to ClientConn (# 8027)
  > 3e27c17 balancer: Enforce embedding requirement for balancer.ClientConn (# 8026)
  > b963f4b deps: bump envoyproxy/go-control-plane/envoy and synchronize go.mods (# 8067)
  > 79b6830 xds: resubmit xds client pool changes from # 7898 along with fix to set fallback bootstrap config from googledirectpath to xdsclient pool (# 8050)
  > 947e2a4 internal/dns: update TestDNSResolver_ExponentialBackoff to not return error before last resolution attempt (# 8061)
  > ee3e8d9 test: modify tests to use stubserver instead of Testservice implementation (# 8022)
  > 990f5e0 endpointsharding, lazy: Remove intermediary gracefulswitch balancers (# 8052)
  > 7dbf12e xds: introduce generic xds clients common configs (# 8024)
  > c524b8b outlierdetection: Support ejection of endpoints  (# 8045)
  > 1318104 Revert "xdsclient: introduce pool to manage multiple xDS clients with same bootstrap content (# 7898)" (# 8058)
  > 39f0e5a vet: make revive check submodules for lint errors (# 8029)
  > e4a0dfd grpcsync : Remove OnceFunc (# 8049)
  > 78eebff stats/opentelemetry: Introduce Tracing API (# 7852)
  > 7e1c9b2 test: modify tests to use stubserver (# 7951)
  > 59411f2 xds: add xDS transport custom dial options support (# 7997)
  > 73e4470 cleanup: fix new vet errors (# 8044)
  > cc637f7 xds: log bootstrap config missing warning from env var only when debugging (# 8039)
  > 3409a56 cleanup: rename fields for clarity (# 8043)
  > b0e2ae9 endpointsharding: Allow children to remain idle if configured (# 8031)
  > 81e4aaf balancer/lazy: Add a lazy balancer (# 8032)
  > e03960d xds: Implement system root certs support (# 8013)
  > cf9e380 picker_wrapper: simplify picker error when timing out waiting for con… (# 8035)
  > 9d4fa67 transport_test: change testgrpc.Emtpy to testpb.Empty (# 8040)
  > 2fd426d transport,grpc: Integrate delegating resolver and introduce dial options for target host resolution (# 7881)
  > 66f6471 *: regenrate pbs (# 8034)
  > 35cec50 grpc: Fix encoded message size reported in error message (# 8033)
  > 2517a46 xdsclient: introduce pool to manage multiple xDS clients with same bootstrap content (# 7898)
  > 897818a interop: improve rpc_soak and channel_soak test to cover concurrency in Go (# 8025)
  > 8cf8fd1 grpc: fix message length checks when compression is enabled and maxReceiveMessageSize is MaxInt (# 7918)
  > 67bee55 server: fix buffer release timing in processUnaryRPC (# 7998)
  > fe04c06 xds: remove unused code in testutils (# 8003)
  > be12ee9 deps: Update go.opentelemetry.io dependencies (# 8020)
  > eb7c484 Revert "interop: improve rpc_soak and channel_soak test to cover concurrency in Go (# 7926)" (# 8019)
  > c26dd46 deps: bump github.com/golang/glog (# 8018)
  > c879198 cleanup: fix comments spacing (# 8015)
  > 89093a3 github: Run deps workflow against PR target branch and improve dir names (# 8010)
  > 9dc22c0 xdsclient: release lock before attempting to close underlying transport (# 8011)
  > eb1adde credentials: Add experimental credentials that don't enforce ALPN (# 7980)
  > 130c1d7 leastrequest: Delegate subchannel creation to pickfirst (# 7969)
  > 74ac821 endpointsharding: Export parsed pickfirst config instead of json string (# 8007)
  > f35fb34 authz: modify the tests to use stubserver instead of testservice implementations (# 7888)
  > aad8a12 clustetresolver: Copy endpoints.Addresses slice from DNS updates to avoid data races (# 7991)
  > f9bc335 deps: update dependencies for all modules (# 7987)
  > 2d4daf3 protoc-gen-go-grpc: Update grpc-go and unskip test (# 7995)
  > 62b4867 clusterresolver: Avoid blocking for subsequent resolver updates in test (# 7937)
  > 9223fd6 deps: bump github.com/envoyproxy/go-control-plane to v0.13.4 (# 7974)
  > d118866 interop: improve rpc_soak and channel_soak test to cover concurrency in Go (# 7926)
  > 6f41085 Change version to 1.71.0-dev (# 7986)
bumping golang.org/x/net df97a48...99b3ae0:
  > 99b3ae0 go.mod: update golang.org/x dependencies
  > 85d1d54 go.mod: update golang.org/x dependencies
  > cde1dda proxy, http/httpproxy: do not mismatch IPv6 zone ids against hosts
  > fe7f039 publicsuffix: spruce up code gen and speed up PublicSuffix
  > 459513d internal/http3: move more common stream processing to genericConn
  > aad0180 http2: fix flakiness from t.Log when GOOS=js
  > b73e574 http2: don't log expected errors from writing invalid trailers
  > 5f45c77 internal/http3: make read-data tests usable for server handlers
  > 43c2540 http2, internal/httpcommon: reject userinfo in :authority
  > 1d78a08 http2, internal/httpcommon: factor out server header logic for h2/h3
  > 0d7dc54 quic: add Conn.ConnectionState
  > b4c8655 http2: avoid extended CONNECT hang when connection breaks during startup
  > 163d836 internal/http3: add Server
  > 447f458 context: delete lone example
  > 918d64e context: delete dead code, sync docs with upstream context package
  > 5095d0c all: upgrade go directive to at least 1.23.0 [generated]
  > 8844327 internal/httpcommon: don't depend on net/http
  > cd9d661 route: fix RTM_GET netmask parsing on Darwin
bumping golang.org/x/sync fe3591b...b637f27:
  > b637f27 errgroup: drop support for Go versions before 1.20
  > 960bf1f all: upgrade go directive to at least 1.23.0 [generated]
bumping golang.org/x/term 743b270...04218fd:
  > 04218fd go.mod: update golang.org/x dependencies
  > 208db03 all: upgrade go directive to at least 1.23.0 [generated]
bumping knative.dev/pkg 0372c08...b7bbf4b:
  > b7bbf4b Bump google.golang.org/grpc from 1.70.0 to 1.71.0 (# 3157)
  > 097c752 Bump golang.org/x/tools from 0.30.0 to 0.31.0 (# 3155)
bumping golang.org/x/mod 52289f1...dc121ce:
  > dc121ce all: upgrade go directive to at least 1.23.0 [generated]
bumping golang.org/x/tools 09747cd...6a5b66b:
  > 6a5b66b go.mod: update golang.org/x dependencies
  > 25a90be gopls/internal/golang: Implementations for func types
  > db6008c go/types/internal/play: show Cursor.Stack of selected node
  > ece9e9b gopls/doc/generate: add status in codelenses and inlayhints
  > 340f21a gopls: move gopls/doc/generate package
  > 0721940 gopls/internal/analysis/modernize: strings.Fields -> FieldsSeq
  > 8d38122 gopls/internal/cache: reproduce and fix crash on if cond overflow
  > d81d6fc gopls/internal/util/asm: better assembly parsing
  > 455db21 gopls/internal/cache/parsego: fix OOB crash in fixInitStmt
  > 2b1f550 gopls/internal/analysis/gofix: allow literal array lengths
  > 0ffdb82 gopls/internal/analysis/gofix: add vet analyzer
  > 2839096 gopls/internal/analysis/gofix: generic aliases
  > 0efa5e5 gopls/internal/analysis/modernize: rangeint: non-integer untyped constants
  > d141499 cmd/toolstash: fix windows executable name handling
  > 5f02a3e gopls/internal/analysis/modernize: don't import slices within slices
  > b2aa62b internal/stdlib: provide API for import graph of std library
  > 608d370 internal/imports: use a more straightforward return value
  > 408d2e2 x/tools: remove workarounds for Go <1.23
  > 66eb306 Revert "internal/settings: drop "annotations" setting"
  > ff03c59 gopls/internal/analysis/modernize: append -> bytes.Clone
  > 1cc80ad internal/event/export/ocagent: delete
  > 8f4b8cd gopls/internal/golang: add package symbols comment
  > 57b529a doc/release/v0.18.0.md: add -fix flag
  > 63229bc gopls/internal/analysis/gofix: register "alias" fact type
  > d740adf gopls/internal/settings: correct SemanticTokenTypes source
  > 779331a gopls/internal/test/integration/misc: only test asm on {arm,amd}64
  > 5dc980c gopls/internal/test/integration/misc: fix "want" assembly
  > 6399d21 go/analysis/passes/reflectvaluecompare/cmd/reflectvaluecompare: add main.go
  > 7fed2a4 gopls/internal/analysis/modernize: fix bug in rangeint
  > 6f7906b x/tools: use ast.IsGenerated throughout
  > e890c1f gopls/internal/golang: Assembly: support package level var and init
  > 6d4af1e gopls/internal/golang: Assembly: update "Compiling" message
  > bf9e2a8 gopls/internal: test fixes for some imports bugs
  > 851c747 gopls/internal/golang: fix crash when hovering over implicit
  > 3e76cae internal/analysisinternal: ValidateFix: more specific errors
  > d2fcd36 go/analysis/passes/unreachable/testdata: relax test for CL 638395
  > 2b2a44e gopls/internal/test: avoid panic in TestDoubleParamReturnCompletion
  > 739a5af gopls/internal/test/marker: skip on the freebsd race builder
  > 274b237 gopls: add a -severity flag for gopls check
  > 5299dcb gopls/internal/settings: fix misleading error messages
  > 3d7c2e2 gopls/internal/golang: add missing json tags for hoverResult
  > 6e3d8bc gopls/internal/analysis/gofix: use 1.24 iterators
  > 1c52ccd gopls/internal/analysis/gofix: inline most aliases
  > 4e0c888 gopls/internal/hover: show alias rhs type declaration on hover
  > 7347766 gopls/internal/test: fix failures when running tests with GOTOOLCHAIN
  > f2beb33 gopls: temporarily reinstate the "Structured" hover kind
  > 23211ff gopls/internal/test/integration: better expectation failures
  > 8b85edc gopls/internal: use go1.24-isms
  > f95771e gopls/go.mod: update to go1.24
  > 96bfb60 gopls/internal/analysis/modernize: fix minmax bug
  > 1f6c6d6 gopls/doc: adjust nvim-lspconfig link target
  > 33f1ed9 gopls/go.mod: update dependencies following the v0.18.0 release
  > 9f7a2b6 gopls/doc/features: tweak markdown
  > f0af81c gopls/internal/goasm: support Definition in Go *.s assembly
  > 300465c gopls/internal/analysis/modernize: fix rangeint bug
  > 8a39d47 gopls/internal/golang: Add "Eliminate dot import" code action.
  > 99337eb x/tools: modernize interface{} -> any
  > 107c5b2 gopls/internal/analysis/modernize: disable unsound maps.Clone fix
  > 0b693ed internal/astutil/cursor: FindPos: don't assume Files are in Pos order
  > cd01e86 gopls/internal/golang: make singleFileFixer like fixer
  > 4991e7d gopls/internal/golang: use pgf.Cursor in CodeAction fix
  > 877c1d1 gopls: address various staticcheck findings
  > 44abb0a go/types/internal/play: display type structure
  > 3c245da gopls: fix diagnostics integration test
  > e6754ce gopls/internal/cache/parsego: add File.Cursor, and use it
  > 776604a gopls/internal/analysis/modernize: sortslice: fix crash
  > df7baa0 gopls/internal/analysis/simplifyrange: more precise fix
  > ad5dd98 gopls: fix a few bugs related to the new modcache imports source
  > 4b3fdfd go/analysis/passes/printf: suppress diagnostic for Println("...%XX...")
  > fe883a8 gopls/internal/analysis/unusedvariable: refine bug.Report golang/go# 71812
  > d115b34 gopls/internal/analysis: simplify type-error analyzers with Cursor
  > c18bffa all: delete redundant //go:debug gotypesalias=1 directives [generated]
  > 94db710 all: upgrade go directive to at least 1.23.0 [generated]
  > ead62e9 gopls/internal/analysis/modernize: handle parens
  > 32ffaa3 gopls/internal/analysis/gofix: one function per kind
  > 2880aae gopls/internal/protocol: Avoid omitempty for integer fields
  > 8807101 gopls/internal/analysis/gofix: one function per pass
  > c0dbb60 gopls: tweak release notes
  > 85a3833 internal/analysis/gofix: simple type aliases
  > 809cde4 gopls/internal/analysis/modernize: fix bug in minmax
  > ab04c19 gopls/internal/analysis/modernize: improve rangeint transformation
  > ddd4bde gopls/internal/golang: avoid PackageSymbols errors with missing packages
  > 44b61a1 x/tools: eliminate various unparen (et al) helpers
  > d0d86e4 x/tools: run gopls/internal/analysis/gofix/main.go -fix
  > 2f1b076 x/tools: add //go:fix inline
  > 86f13a9 gopls/internal/analysis/gofix: rename local
  > 5762944 gopls/internal/analysis/gofix: check package visibility
  > f9aad70 go/types/typeutil: avoid shifting uintptr by 32 on 32-bit archs
  > b5a64bb go/analysis/internal/checker: be silent with -fix
  > b752317 internal/analysisinternal: disable AddImport test without go command
  > d98774e cmd/signature-fuzzer/internal/fuzz-generator: update to math/rand/v2
  > 2593262 gopls/internal/telemetry/cmd/stacks: remove leading \b match
  > b3c5d10 gopls: record telemetry counters for settings that are used
  > d2585c4 gopls/internal/golang: folding range: remove FoldingRangeInfo
  > 0d16805 internal/stdlib: update stdlib index for Go 1.24.0
  > 027eab5 go/analysis/analysistest: RunWithSuggestedFix: 3-way merge
  > f61b225 internal/analysisinternal: AddImport puts new import in a group
  > 91bac86 internal/analysisinternal: add CanImport
  > 94c41d3 gopls/internal/golang: add comment about SymbolKind
bumping golang.org/x/sys 863b3c4...74cfc93:
  > 74cfc93 all: upgrade go directive to at least 1.23.0 [generated]

Signed-off-by: Knative Automation <automation@knative.team>
2025-03-13 15:32:38 +00:00
Pierangelo Di Pilato d6cc879d35
Skip EventTransform TLS tests when Istio is enabled (#8525)
Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2025-03-13 06:46:37 +00:00
Matthias Wessendorf 4fd274af68
Bump cert manager and use their clientset (#8520)
* Bump cert-manager and use their clientset

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* Running './hack/update-deps.sh'

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* Running './hack/update-codegen.sh'

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* Update to use their client set

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* Align cert mgr version for (test) setup

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

---------

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2025-03-12 06:25:36 +00:00
Matthias Wessendorf 6ffe7c197f
Improve CM Cert reconcile and deletion if feature is turned off (#8519)
refactor CM Cert reconciler and take care of delete if feature is disabled

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2025-03-11 16:18:37 +00:00
Matthias Wessendorf ebd149ef23
Add dynamic cert-manager certificates informer (#8517)
* Add dynamic informer, part I

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* Add Dynamic certificates informer for EventTransform

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

* Add Dynamic certificates Informer to IntegrationSink

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

* Fix error message

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

---------

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
Co-authored-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2025-03-10 19:02:35 +00:00
Pierangelo Di Pilato 7be5c1964b
Event Transform JSONata TLS (#8515)
* Event Transform JSONata TLS

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

* HA and security context

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

* Reconcile Certificate

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

* Additional unit tests cases

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

* Fix tests

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

* EventTransform trust bundle propagation and tests

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

* Fix tests and address comments

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

---------

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2025-03-10 11:39:04 +00:00
Knative Automation ec8a208c1c
[Automated] Update eventing-eventing-integrations nightly (#8516)
Update eventing-integrations nightly

Signed-off-by: Knative Automation <automation@knative.team>
2025-03-07 12:06:01 +00:00
Matthias Wessendorf eb3dd80ac9
Enable Cert Manager (#8509)
* Re-enable Cert Mgr

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* Manual informer

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* Update main

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* update controller

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* Adding label on cert

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* add enqueue

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* Create Cert Informer, on demand, and cancle when flag is disabled

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* Update unit tests that broke during rrefactors

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

---------

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2025-03-06 11:20:59 +00:00
Rishav Ray Chaudhury 615a071a6e
Allow storage-version-migration job to successfully run when optional CRDs are not installed (inmemorychannels, etc) (#8510)
* add environment variable

* add environment variable
2025-03-06 07:42:59 +00:00
Pierangelo Di Pilato fe83e25214
EventTransform: add reconciler unit tests (#8513)
* EventTransform: add reconciler unit tests

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

* Update pkg/reconciler/testing/v1alpha1/eventtransform.go

Co-authored-by: Marek Schmidt <maschmid@redhat.com>

---------

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
Co-authored-by: Marek Schmidt <maschmid@redhat.com>
2025-02-27 15:30:31 +00:00
Pierangelo Di Pilato 1e889be219
SinkBinding: Set specific conditions for reconciler steps (#8508)
Instead of setting the ready condition during reconciliation
steps, set specific conditions since the ready condition
is managed and set according to the state of other conditions.

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2025-02-27 11:31:30 +00:00
Knative Automation 60730395a4
[main] Upgrade to latest dependencies (#8512)
upgrade to latest dependencies

bumping knative.dev/hack/schema ce4c934...306ce74:
  > 306ce74 Update community files (# 414)
bumping knative.dev/reconciler-test 62eb465...5ca0bd4:
  > 5ca0bd4 Update community files (# 786)
bumping knative.dev/pkg c925de2...0372c08:
  > 0372c08 Bump github.com/google/go-cmp from 0.6.0 to 0.7.0 (# 3152)
  > 9e26561 Update community files (# 3151)
bumping github.com/google/go-cmp c3ad843...9b12f36:
  > 9b12f36 Detect proto.Message types when failing to export a field (# 370)
  > 4dd3d63 fix: type 'aribica' => 'arabica' (# 368)
  > 391980c Support compare functions with SortSlices and SortMaps (# 367)
bumping knative.dev/hack ce4c934...306ce74:
  > 306ce74 Update community files (# 414)

Signed-off-by: Knative Automation <automation@knative.team>
2025-02-27 06:20:29 +00:00
Pierangelo Di Pilato 3153b4735d
EventTransform: Inject tracing configurations (#8479)
Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2025-02-26 08:06:29 +00:00
Matthias Wessendorf db0cf43388
Update to the correct file (#8507)
Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2025-02-26 06:48:28 +00:00
Knative Automation adaafa28ac
[Automated] Update eventing-eventing-integrations nightly (#8506)
Update eventing-integrations nightly

Signed-off-by: Knative Automation <automation@knative.team>
2025-02-25 13:52:21 +00:00
David Simansky 714deeb537
Update k8s version in e2e tests (#8503)
* Update k8s version in e2e tests

* Fix version string
2025-02-25 12:15:21 +00:00
Pierangelo Di Pilato 54a24021aa
Fix golangci exclude config (#8502)
Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2025-02-25 11:05:20 +00:00
Pierangelo Di Pilato 80dd84e0e9
Guard reserved access with lock and create vpods in tests (#8457)
* Guard reserved access with lock in tests

* Create vpods in test

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

---------

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2025-02-25 09:13:21 +00:00
Pierangelo Di Pilato 5bcee30b4d
Inject integration images from ConfigMap (#8500)
Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2025-02-25 05:34:20 +00:00
Pierangelo Di Pilato ae049c8b0a
Jsonata Event transform e2e tests (#8499)
* E2E tests

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

* EventTransform Jsonata e2e tests

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

* Use eventing-integrations images and fix tests

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

* Verify response status code received by source

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

* Update JSONata transformations

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

---------

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2025-02-24 16:44:20 +00:00
Matthias Wessendorf c828898de8
Generic code for Certificates (#8489)
Make Certifacte factory more generic

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2025-02-24 12:23:20 +00:00
Ahmed Mohamed 351898d997
fix: verify trigger is not ready before pingsource dependency exists (#8494)
* fix: verify trigger is not ready before pingsource dependency exists

* fix: create separate step function to verify trigger dependency does not exist
2025-02-24 11:21:20 +00:00
David Simansky c6516168d1
Add initial iteration of eventing-integration resources (#8493) 2025-02-24 09:45:19 +00:00
Matthias Wessendorf 51637df0bb
IntegrationSink prefactors (#8486)
Little refactors on IntegrationSink

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2025-02-20 10:24:49 +00:00
Matthias Wessendorf c429fc5752
Remove unused code (#8485)
Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2025-02-20 06:24:49 +00:00
Matthias Wessendorf 732ec6280a
Partial implementation of certmanager for integration sink (#8481)
* Adding cert-mananger bits
Basics for Cert-manager

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* Adding create cert manifest function

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* Use the make cert

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* Reconcile Certificate manifest and add RBAC

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* Add secret filter to controller

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* Look up secrets/certs for sink

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* Remove old/wrong Certificate manifest and reference

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* Fix controller compile

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* Formatting

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* change the reconcile of cert manifest, and run it only w/ some form of TLS

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* using filtered informer

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* Adding Rekt test for IntegrationSink TLS support

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* adding a bit of https port for deployment/service of the IntegrationSink

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* Mounting secrets and setting quarkus env vars for TLS support

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* Adding flags for different TLS levels resulting in diffeerent quarkus env vars

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* Remove bad comment

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* Adding label

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* Update codegen

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* Disable tmp. the cert manager feature

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* Fixing header/year

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* More test tweaking

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

* Remove unused and comment out the hooks for now

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>

---------

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2025-02-19 14:15:48 +00:00
Knative Automation 5998cfe2d2
[main] Update community files (#8480)
Update community files

Signed-off-by: Knative Automation <automation@knative.team>
2025-02-19 01:37:18 +00:00
Knative Automation 9a7c6d5633
[main] Upgrade to latest dependencies (#8468)
upgrade to latest dependencies

bumping google.golang.org/genproto/googleapis/rpc 19429a9...e9438ea:
  > e9438ea chore(all): auto-regenerate .pb.go files (# 1187)
  > 7023788 chore(all): auto-regenerate .pb.go files (# 1186)
  > 29210b9 chore(all): update all (# 1185)
  > 65684f5 chore(all): auto-regenerate .pb.go files (# 1184)
  > 138b5a5 chore(all): update all (# 1183)
  > 1a7da9e chore(all): update all (# 1182)
  > 5f5ef82 chore(all): update all (# 1181)
  > 6982302 chore: bump to min Go to 1.22 (# 1180)
  > 26aa7a2 chore(all): update all (# 1178)
  > 3abc09e chore(all): update all (# 1177)
  > 6b3ec00 fix: update golang.org/x/net to v0.33.0 (# 1176)
  > bd15449 chore(all): auto-regenerate .pb.go files (# 1175)
  > 9240e9c chore(all): update all (# 1174)
  > e6fa225 chore(all): update all (# 1173)
  > a4fef06 chore(all): auto-regenerate .pb.go files (# 1172)
bumping k8s.io/apiextensions-apiserver 5714b0b...ab6ba90:
  > ab6ba90 Update dependencies to v0.32.1 tag
  > 887679f Merge remote-tracking branch 'origin/master' into release-1.32
  > bd027a4 Drop use of winreadlinkvolume godebug option
  > 919f42b Merge remote-tracking branch 'origin/master' into release-1.32
  > a4e1034 Revert to go1.22 windows filesystem stdlib behavior
  > 89d6021 Run codegen
  > 2a91f8a Merge pull request # 127513 from tkashem/delete-undecryptable
  > 06dc95a api: run codegen
  > 19f7123 Merge pull request # 128639 from jpbetz/fix-cost-test
  > 66631b6 Fix flake in CEL cost stability tests
  > afcbee2 Merge pull request # 128593 from jpbetz/bump-cel-123
  > 85dee2f Merge pull request # 128503 from benluddy/cbor-codecs-featuregate
  > 05da8f8 Add cost testing for two variable comprehensions
  > fdcfd1b Wire serving codecs to CBOR feature gate.
  > 43ca5ec hack/pin-dependency.sh github.com/google/cel-go v0.22.0
  > 4091a87 Merge pull request # 128553 from thockin/master
  > 206224f Merge pull request # 128539 from benluddy/cbor-feature-gates
  > 38d0f6f Call-site comments: the "" arg to TooLong is unused
  > 7afd9dd Merge pull request # 128580 from jpbetz/bump-kube-openapi
  > 8e6d805 Add CBOR feature gates.
  > d333ca3 Clarify that value arg to field.TooLong is unused
  > 96ea25f Merge pull request # 126862 from carlory/HPAContainerMetrics
  > 019a7ae hack/pin-dependency.sh k8s.io/kube-openapi 32ad38e42d3faf1ce94eb29f4ea6d763339b258e
  > 95a7a46 Kill TooLongMaxLength() in favor of TooLong()
  > cb213f0 Merge pull request # 128507 from dims/use-k8s.io/utils/lru-instead-of-github.com/golang/groupcache/lru
  > 70dab86 Remove generally available feature gate HPAContainerMetrics
  > 0468fc3 Use k8s.io/utils/lru instead of github.com/golang/groupcache/lru
  > 6716b47 Merge pull request # 128481 from carlory/dependencies-ginkgo-gomega
  > 11ae631 dependencies: ginkgo v2.21.0, gomega v1.35.1
  > 96f97a3 Merge pull request # 128416 from jpbetz/reset-filter
  > 4a38239 Add ResetFieldsFilterStrategy
  > b991c85 hack/pin-dependency.sh sigs.k8s.io/structured-merge-diff/v4 v4.4.2
  > e696686 Merge pull request # 128273 from benluddy/cbor-apply
  > 63e7d19 Support application/apply-patch+cbor in patch requests.
  > ba82146 Merge pull request # 128323 from benluddy/cbor-client-gen
  > d3fda6e Update generated clients.
  > 4060365 Merge pull request # 128196 from richabanker/move-version
  > 726b6d5 Merge pull request # 128322 from benluddy/cbor-storage-wiring
  > 56cc90c Wire CBOR CR storage behind test-only feature gate.
  > e0a4254 Merge pull request # 128243 from benluddy/cbor-dynamic-integration
  > eafd3ea Merge pull request # 125314 from enj/enj/i/proto_for_core
  > d53dcd5 Wire test-only feature gate for CBOR serving.
  > 22481dc Generated
  > d9fccdc Use protobuf for core clients
  > 4e18b1d Merge pull request # 127341 from mjudeikis/mjudeikis/deprecate.ch.fully
  > a1e0ff9 Merge pull request # 128165 from liggitt/prune-self-require
  > c315d55 fully remove StopCh
  > 72478b1 Merge pull request # 128144 from cheftako/updateANP
  > 31c7cd2 Drop self-referencing replace directives
  > f2a0633 Bump konnectivity-client to v0.30.0
  > 819892b Merge pull request # 128076 from AmarNathChary/Removed_Alpha_Beta_Ga
  > 953f7fe Merge pull request # 128064 from dims/update-to-last-versions-of-some-very-infrequently-updated-repos
  > 880b246 removed_comments_from_kube_feature_of_alpha_beta_ga
  > f3d49ac Update to last versions of some very infrequently updated repos
  > 2439863 Merge pull request # 125570 from sanchezl/test-additional-types
  > 62960d5 Merge pull request # 127998 from skitt/golang-x-oct-2024
  > f846e06 cover additional types in unstructured roundtrip test
  > d7179b5 Merge pull request # 127985 from dims/update-moby-runc-dependencies-oct-10
  > 5a07aa8 October 2024 golang.org/x bump
  > 18f50bf Update moby/runc dependencies
  > e9295cf Merge pull request # 127942 from liggitt/json123
  > 285dc9c Update sigs.k8s.io/json to go1.23
  > 1e2a86f Merge pull request # 127901 from skitt/k8s-sigs-yaml
  > b26a15d Use sigs.k8s.io/yaml instead of gopkg.in/yaml
  > cd7fbc1 Merge pull request # 127816 from cici37/updateCEL
  > 453f474 Update cel-go to v0.21.0
  > a1f61fb Merge pull request # 127673 from jpbetz/crd-field-selector-ga
  > ecdc027 Merge pull request # 127671 from mmorel-35/testify/error-contains
  > af6e42b Fix testing.StartTestServer to respect emulation version
  > 2c65ed6 Merge pull request # 126764 from liggitt/mergo
  > c961174 fix: use `ErrorContains(t, err` instead of `Contains(t, err.Error()`
  > 32b6669 Promote CustomResourceFieldSelectors to GA
  > c374273 Merge pull request # 127472 from skitt/fix-client-go-extensions-broken
  > 0bc988c Update vendor
  > 5f1b418 Merge pull request # 127672 from jpbetz/apiextensions-versioned-feature-gates
  > ac79f36 Fix the path to code-generator in example update-codegen.sh
  > 3cb4e4b Migrate apiextensions-apiserver to versioned feature gates
  > aea69da Merge pull request # 127570 from soltysh/do_not_return_err
  > 73b4857 Do not return error where it's not needed
  > c865fef Merge pull request # 126799 from kiashok/update-cadvisor-hcsshim
  > da2671f Update cadvisor and hcsshim versions
  > d08e558 Merge pull request # 127422 from srivastav-abhishek/go-vet-fix
  > 09216e8 Merge pull request # 126977 from aaron-prindle/compat-version-132
  > ee43524 Fix Go vet errors for master golang
  > eee550e Merge pull request # 127279 from serathius/etcd-v3.5.16
  > e900ec6 chore: bump DefaultKubeBinaryVersion to 1.32, make 1.32 CEL changes, fix int tests to handle 1 version off API deprecation, and fix prerelease-lifecycle-gen for # of APIs
  > 03cd909 Merge pull request # 125186 from liyuerich/newserializer
  > 7b9daad Upgrade etcd client to v3.5.16
  > 1d5bfe9 Merge pull request # 127303 from omerap12/issue_127287
  > b24d250 drop deprecated json/yaml newSerializers, use json.NewSerializerWithOptions instead
  > 4d236f4 Merge pull request # 127271 from liggitt/go1.23
  > 08ef780 Improve message prefer a domain-qualified finalizer
  > 6b8cdc3 Update k8s.io/gengo/v2
  > 06746be Pin godebug default to go1.23
  > 91ce470 Update go.mod to go 1.23
  > 31f06c9 Merge pull request # 125825 from p0lyn0mial/upstream-apiextensions-deflake-integration-defaulting-test
  > 20c674a Merge pull request # 125960 from pohly/dep-logging
  > a3cda24 apiextensions-apiserver/test/integration: deflake TestCustomResourceDefaultingWithoutWatchCache
  > 944814d Merge pull request # 126500 from liangyuanpeng/bump_etcd_3515
  > 73dd9d2 dependencies: logr v1.4.2, zap v1.27.0
  > f9a5e91 Merge pull request # 127011 from jpbetz/format-only-imports
  > 983eb73 Bump dependency: etcd to 3.5.15.
  > a92e062 generate
  > 9032673 Bump gengo/v2 to pick up FormatOnly setting for imports
  > 6fe6ff8 Merge pull request # 127001 from skitt/applyconfiguration-gen-ambiguous
  > b348460 Run codegen
  > 7869c86 Merge pull request # 126787 from Jefftree/update-kube-openapi
  > 452cc79 Merge pull request # 126359 from jpbetz/quantity-estimated-cost
  > db4bb04 Update codegen for OpenAPI escape fix
  > 0b1328b Merge pull request # 126405 from sttts/sttts-sync-informerfactory-start
  > 973bb94 Update cost stability tests to match fixed costs
  > 956a4af re-vendor k8s.io/kube-openapi
  > 283fb4e informers: add comment that Start does not block
  > c1320e9 re-vendor k8s.io/gengo/v2
bumping golang.org/x/tools 1743d1a...09747cd:
  > 09747cd go.mod: update golang.org/x dependencies
  > dc9353b gopls/internal/analysis/modernize: appendclipped: unclip
  > a886a1c internal/analysisinternal: AddImport handles dot imports
  > 94c3c49 go/analysis/analysistest: RunWithSuggestedFix: assume valid fixes
  > 5f9967d gopls/internal/analysis/modernize: strings.Split -> SplitSeq
  > a1eb5fd go/analysis/passes/framepointer: support arm64
  > 9c087d9 internal/analysis/gofix: change "forward" back to "inline"
  > 82317ce gopls/internal/analysis/modernize: slices.Delete: import slices
  > e65ea15 go/analysis/internal/checker: implement three-way merge
  > a9bf6fd gopls/internal/analysis/modernize: remove SortStable
  > 4d1de70 internal/apidiff: remove
  > 584f556 gopls/internal/cache: downgrade bug reports for inconsistent metadata
  > fa7774c gopls/internal/test/integration: reduce flakes in TestTelemetryPrompt
  > 8baecea gopls/internal/analysis/modernize: mapsloop: fix two bugs
  > 1320197 gopls/internal/analysis/modernize/cmd/modernize: create
  > 0dc10dc gopls/internal/analysis/gofix: use cursor API
  > 2088703 gopls/internal/util/moreiters: iterator functions
  > 0fd02ca gopls/internal/telemetry/cmd/stacks: tweak IgnoreSymbolContains
  > 5a1ba4d gopls/doc/release/v0.18.0: describe inline analyzer
  > 03a72db gopls/internal/analysis/gofix: move and rename
  > bf4db91 gopls/internal/analysis/modernize: for i := 0; i < n; i++ -> range n
  > 73edff8 gopls/internal/cache/testfuncs: fix matching of test names
  > 0a1a6c7 gopls/doc/release: document the new workspaceFiles option
  > bcb63f9 internal/refactor/inline/analyzer: redo directive parsing
  > 6557d18 internal/refactor/inline/analyzer: handle cross-package constants
  > 74b5526 gopls/internal/golang: support package symbols
  > e8d5340 gopls/imports: use a module cache index
  > 3626367 gopls/internal/golang: hide signature help
  > 8e4c841 gopls/internal/server: embed style metadata in vulncheck progress
  > 33e624f internal/refactor/inline/analyzer: document
  > 70a7d86 internal/refactor/inline/analyzer: use forward for consts
  > 0556adb gopls: skip unusedparams for generated files
  > e9f7be9 internal/astutil/cursor: add Cursor.Child(Node) Cursor
  > f912a4f internal/refactor/inline/analyzer: inline consts into local scopes
  > 0abda08 internal/refactor/inline/analyzer: export only cross-package facts
  > 88d91cb internal/refactor/inline/analyzer: same-package consts
  > 269282d go/analysis/passes/stdversion: use Go 1.22 functionality
  > da3a6b2 internal/settings: add inliner to analyses
  > b3bde13 x/tools: use types.VarKind consistently
  > 51f179c gopls/internal/golang: downgrade bug report in ExtractToNewFile
  > 5ffcf75 internal/refactor/inline: avoid crash when inlining empty function
  > dace8c8 gopls/internal/analysis/modernize: fix bug in slicescontains
  > b781375 gopls/internal/protocol: delete MappedRange
  > bbe00fb gopls/internal/server: gopls.vulncheck return both vuln report and token
  > 058d583 gopls/internal/golang: don't apply edits in codeAction/resolve
  > a721d4c internal/typesinternal: factor out IsPackageLevel
  > f0ddc4b gopls/internal/analysis: use Cursor.Edge in two analyzers
  > 80ffd3c internal/astutil/cursor: add Cursor.Edge method
  > db7fffc go/ast/inspector: separate stack + event types
  > d648f91 go/ast/inspector: fork ast.Inspect
  > d68fc51 internal/diff: Merge
  > 9f450b0 go/analysis/passes/printf: suppress errors for non-const format strings
  > e426616 godoc,present,refactor: modernize
  > 8171d94 gopls/internal/analysis/fillstruct: preserve existing formatting
  > ac81e9f internal/testenv: RedirectStderr: fix race
  > bce67c4 go/analysis/internal/checker: validate SuggestedFixes
  > bb0a9cd gopls: remove go.sum files from integration tests
  > edafbe5 tools: fix typos in docs and comments
  > 891e3b6 internal/telemetry/cmd/stacks: cmd/compile reopen
  > 4f1e910 internal/telemetry/cmd/stacks: reopen issues
  > 114ac82 go/analysis: preparatory cleanups
  > 1c9f002 internal/gocommand: add openbsd to the set of GOOS to debug
  > f055343 internal/telemetry/cmd/stacks: divert GitHub changes during testing
  > 3e68f53 internal/telemetry/cmd/stacks: add GitHub client
  > 45227b6 internal/modindex: add LookupAll(pkg, names)
  > 71c7ff3 gopls: report SemanticHighlight for format string directives
  > 7a015ab internal/gocommand: send SIGQUIT to hanging go commands on posix
  > fcc9d81 internal/telemetry/cmd/stacks: anchored literals
  > 684910f internal/telemetry/cmd/stacks: fix distinctStacks
  > d5cd1f8 gopls: add WorkspaceFiles option
  > 30bd6fd internal/telemetry/cmd/stacks: move dry run checks down
  > e4adc38 internal/telemetry/cmd/stacks: remove Issue.predicateText
  > 8bf2b65 gopls/internal/cache: add more debugging for golang/go# 64235
  > 7479e1b internal/telemetry/cmd/stacks: test predicates
  > 726ba32 internal/telemetry/cmd/stacks: minor tweaks
  > 9f4a509 gopls/internal/telemetry/cmd/stacks: add dry run flag
  > 38d0631 gopls/internal/test: update hover test to be tolerant proxy changes
  > b0164fc gopls/doc/release: add semantic token config change
  > 96a07bb gopls/internal/settings: include deprecation message in api-json
  > df4e4ef ssa: fix typo in doc comment for Program.FuncValue
  > 1261a24 gopls/internal/analysis/modernize: slicesdelete
  > cab6608 gopls/internal/golang/completion: fix crash adding receiver type params
  > 32c4665 gopls/internal/golang/completion: avoid crash in comment completion
  > 85e8b42 gopls/internal/analysis/modernize: omitzero
  > 344e482 golang/internal/highlight: check idx < len before indexing
  > 4828981 gopls/internal/telemetry/cmd/stacks: build compiler from root
  > 3f87563 go/cfg: remove empty goto (without label) from test case
  > 9d9b0b6 go/packages: use go.dev/issue links in comment
  > 66ef73e gopls/internal/golang: improve "toggle compiler opt details"
  > 79cde82 gopls/internal/protocol/command: remove the redundant gopls.test command
  > 7d99ad7 gopls/internal/highlight: DocumentHighlight for format strings
  > 4403100 gopls/internal/golang: customize semantic token types and modifiers
  > c9ef861 gopls/internal/telemetry/cmd/stacks: don't forward GOEXPERIMENT from env
  > 0933021 go/ssa: remove coretype_test.go
  > 73a7070 gopls/internal/telemetry/cmd/stacks: paginate issue search
  > fec8580 gopls/internal/analysis/modernize: replace loop with slices.Contains
  > ee36e77 gopls/internal/telemetry/cmd/stacks: support cmd/compile
  > 8a5a6d7 gopls/internal/telemetry/cmd/stacks: refactor report processing to support different programs
  > 5fef1f2 gopls/internal/telemetry/cmd/stacks: add cmd/compile support to readPCLineTable
  > 1335f05 gopls/internal/util/frob: Decode: improve panic on empty
  > 0b95e04 gopls: filter out hints for closed files and make modernizers hints
  > 8f9869c go/ssa: use NormalTerms
  > 8912752 gopls/internal/protocol: optimized DocumentURI.Path for MODCACHE
  > cecec2c go/ssa: add typeset iteration helper
  > 1501321 gopls/internal/analysis/modernize: fix bug in minmax
  > b31dda4 gopls/internal/analysis/modernize: fix bug in mapsloop
  > c1a7fcf go/analysis/passes/printf: extract operation parsing logic into tools/internal/fmtstr
  > 1b796a9 go/ssa: removing termList type
  > 6efe0f4 internal/astutil/cursor: Cursor.Ancestors iterator
  > df3de6a gopls: prepare for mod cache index
  > ae303ab gopls/internal/analysis/modernize: replace WithCancel with t.Cancel
  > 60643c0 go/types/typeutil: clarify what inGenericSig applies to
  > 248b94e go/ast/inspector: treat empty type filter like nil
  > 6016188 cmd: apply modernizers
  > f7fb515 internal/analysisinternal: check for interface recievers
  > b4e093e go/packages: run TestIssue70394 with Go 1.23
  > 16f2979 gopls/internal/analysis: unusedvariable
  > fc2161a internal/analysis/modernize: minmax: don't reduce to y:=min(x, y)
  > 155dc6e gopls/internal/settings: document why unusedvariable is off
  > ac8980c gopls/internal/protocol: modernize to use any
  > 2ad5c90 gopls/internal/settings: set severity=Info for modernizers
  > 7c7f353 gopls/internal/analysis/hostport: report net.Dial("%s:%d") addresses
  > 8179c75 internal/analysisinternal: factor useful helper functions
  > a339e37 gopls/internal/util/persistent: {Map,Set}: use iter.Seq2
  > a2408f8 internal/astutil/cursor: Cursor.Children: document invariants
  > ee69ea2 go/analysis/analysistest: avoid nil panic from an invalid token.Pos
bumping k8s.io/utils 18e509b...24370be:
  > 24370be [Fake clock] Make Stop / Reset return false if Timer stopped (# 320)
  > 6fe5fd8 Merge pull request # 319 from dims/add-lock-unlock-in-SetEvictionFunc
  > 3ea5e8c Merge pull request # 318 from dims/add-a-helper-method-to-set-eviction-function-after-construction
  > 7a270de Add lock/unlock in SetEvictionFunc
  > 49e7df5 Merge pull request # 296 from skitt/deprecate-minmax
  > 7edc6f1 Add a helper method to set eviction function after construction
  > 702e33f Merge pull request # 317 from gibizer/revert-stdlib-slices
  > 3abbf95 Deprecate integer min/max functions
  > f90d014 Merge pull request # 315 from tklauser/deprecated-strings-slices
  > 8866f61 Revert "Deprecate strings/slices functions covered by stdlib slices"
  > 4965b0f Deprecate strings/slices functions covered by stdlib slices
bumping golang.org/x/oauth2 22134a4...b9c813b:
  > b9c813b google: add warning about externally-provided credentials
  > 49a531d all: make method and struct comments match the names
bumping k8s.io/code-generator 5a98ceb...434520c:
  > 434520c Update dependencies to v0.32.2 tag
  > 6ee1d61 Merge pull request # 129740 from bobsongplus/automated-cherry-pick-of-# 129629-upstream-release-1.32
  > 3ca838d Fix: touch /dev/null permission denied on macos
  > 1bfda81 Merge remote-tracking branch 'origin/master' into release-1.32
  > e2fbf1b Drop use of winreadlinkvolume godebug option
  > 906f6b3 Merge remote-tracking branch 'origin/master' into release-1.32
  > 0efe046 Revert to go1.22 windows filesystem stdlib behavior
  > 56b470e Merge pull request # 126503 from skitt/generic-fake-client
  > c7820d2 Merge pull request # 128692 from dinhxuanvu/extra-dir
  > 43ff2eb Run codegen
  > dd3711d Merge pull request # 127513 from tkashem/delete-undecryptable
  > b53643f Remove deprecated extra-dirs flag
  > 47ba2cc Generify fake clientsets
  > 242eeab api: run codegen
  > f098592 Merge pull request # 128584 from thockin/compartmentalize_spew
  > 88802cb Merge pull request # 128580 from jpbetz/bump-kube-openapi
  > 5f2bbac Compartmentalize spew more
  > 8d580a2 hack/pin-dependency.sh k8s.io/kube-openapi 32ad38e42d3faf1ce94eb29f4ea6d763339b258e
  > 3f8a711 Merge pull request # 128507 from dims/use-k8s.io/utils/lru-instead-of-github.com/golang/groupcache/lru
  > 0a0c494 Use k8s.io/utils/lru instead of github.com/golang/groupcache/lru
  > 067568b Merge pull request # 128481 from carlory/dependencies-ginkgo-gomega
  > 0966b69 dependencies: ginkgo v2.21.0, gomega v1.35.1
  > 614ea06 Merge pull request # 128416 from jpbetz/reset-filter
  > e612423 hack/pin-dependency.sh sigs.k8s.io/structured-merge-diff/v4 v4.4.2
  > 09adda0 Merge pull request # 128273 from benluddy/cbor-apply
  > 2c3fa91 Regenerate clients to support application/apply-patch+cbor.
  > 448d651 Support application/apply-patch+cbor in patch requests.
  > 930e4b7 Merge pull request # 128323 from benluddy/cbor-client-gen
  > 4437952 Update generated clients.
  > 9158437 Make generated client codecs support CBOR based on feature gate.
  > ad4d5f7 Merge pull request # 128259 from dinhxuanvu/conversion-build-tag
  > a971cb2 Merge pull request # 125314 from enj/enj/i/proto_for_core
  > 92f7f18 Restore build-tag for conversion and defaulter gen
  > 2d70b86 Generated
  > 2ce8296 Use protobuf for core clients
  > 83b856b Merge pull request # 128165 from liggitt/prune-self-require
  > 22f886d Drop self-referencing replace directives
  > 40ce991 Merge pull request # 127998 from skitt/golang-x-oct-2024
  > d9dfa2b Merge pull request # 127985 from dims/update-moby-runc-dependencies-oct-10
  > f19ba3e October 2024 golang.org/x bump
  > 8aaf576 Update moby/runc dependencies
  > cf1a8c0 Merge pull request # 127942 from liggitt/json123
  > 06a6eed Update sigs.k8s.io/json to go1.23
  > fa8be78 Merge pull request # 127901 from skitt/k8s-sigs-yaml
  > 20abf64 Use sigs.k8s.io/yaml instead of gopkg.in/yaml
  > f2eaa9d applyconfiguration-gen: drop yamlUnmarshal
  > b5f4167 Merge pull request # 127843 from Cookiery/chore/cleanup
  > 2457351 chore: cleanup code
  > 06ae20b Merge pull request # 127472 from skitt/fix-client-go-extensions-broken
  > 36dc419 Merge pull request # 125915 from skitt/declare-funcs-client-gen
  > e10522d codegen: ignore .gitignore when diffing examples
  > 3bbf1f6 Merge pull request # 127292 from skitt/fix-client-go-extensions-without-test
  > 0a2ca61 client-gen: use template function declarations for gentype
  > 8e74271 Run codegen
  > d9f001d client-go: add missing template functions and types
  > 091fbb2 Run codegen
  > c4cb6e2 Add a missing PatchOptions declaration for extensions
  > df6c677 Add an example with all possible extensions
  > 61df8a8 Merge pull request # 127467 from skitt/remove-adjust-remplate
  > fcd2ca0 Merge pull request # 127271 from liggitt/go1.23
  > 1556187 codegen: get rid of adjustTemplate
  > 0943f82 Update k8s.io/gengo/v2
  > ba6b9d1 Pin godebug default to go1.23
  > e7ca1c3 Update go.mod to go 1.23
  > 63a6d9f Merge pull request # 127011 from jpbetz/format-only-imports
  > e483ed4 generate
  > dec108f Remove hard coded references in generated code
  > aef0cbc Use generator.NewImportTrackerForPackage for all generators to prevent generation of import to package being generated
  > 386025c Bump gengo/v2 to pick up FormatOnly setting for imports
  > a21099b Merge pull request # 127001 from skitt/applyconfiguration-gen-ambiguous
  > cf72a26 Run codegen
  > da58096 applyconfiguration-gen: handle conflicting members
  > a76e585 Add an example of conflicting members in apply configurations
  > 4b01f89 Merge pull request # 126787 from Jefftree/update-kube-openapi
  > f35c7b4 Tweak generators and tests for latest gengo
  > ccbff70 re-vendor k8s.io/kube-openapi
  > a2409ff re-vendor k8s.io/gengo/v2
  > b53d16e Merge pull request # 126405 from sttts/sttts-sync-informerfactory-start
  > f8a3e29 informers: add comment that Start does not block
bumping knative.dev/reconciler-test 3424ad8...62eb465:
  > 62eb465 upgrade to latest dependencies (# 783)
bumping k8s.io/apiserver 7befe9c...c09fadd:
  > c09fadd Update dependencies to v0.32.1 tag
  > f2c6d90 Merge pull request # 129495 from MadhavJivrajani/132-go124-webhook-regex-ut
  > 3fbb4c3 webhook: alter regex to account for x509sha1 GODEBUG removal
  > 34b7cc9 Merge remote-tracking branch 'origin/master' into release-1.32
  > 5945d46 Drop use of winreadlinkvolume godebug option
  > adee259 Merge remote-tracking branch 'origin/master' into release-1.32
  > fbba927 Merge pull request # 129081 from stlaz/fg_remote_uid
  > b3c0cb6 Merge remote-tracking branch 'origin/master' into release-1.32
  > f76e404 featuregate UID in RequestHeader authenticator
  > bf14697 Revert to go1.22 windows filesystem stdlib behavior
  > 1f546ee Possible fix for alpha CI jobs failing with AllowUnsafeMalformedObjectDeletion switched on
  > 3423727 Merge pull request # 127581 from richabanker/flagz-apiserver
  > b8357e7 Merge pull request # 128618 from knrc/error-check-fix
  > 10dc325 Add flagz implementation and enablement in apiserver
  > 0b01a72 Merge pull request # 127513 from tkashem/delete-undecryptable
  > a69b1ea Fix error check
  > f983148 Merge pull request # 125577 from richabanker/statusz
  > fbb5ab0 handle watch for unsafe delete
  > d520e75 add statusz implementation and enablement in apiserver
  > 8b8b5c0 add access control check for unsafe delete
  > 43b9e23 Merge pull request # 127360 from knight42/feat/split-stdout-stderr-server-side
  > 1f27993 implement unsafe deletion, and wire it
  > 67b987f Merge pull request # 128637 from jpbetz/fix-mutating-admission-defaulting
  > 641a07c feat(apiserver): set stream param in LogLocation
  > 4ce1c97 api: add a new field to meta/v1 DeleteOptions
  > a16a110 Merge pull request # 128166 from yongruilin/test-allow-label
  > 490aa47 Add defaulting to tests
  > 3a2942b Merge pull request # 128593 from jpbetz/bump-cel-123
  > 15884a5 feat: Add function to reset label allow list for apiserver endpoints metrics
  > 6b49c22 Fix defaulting for native types
  > b5e6c92 Merge pull request # 128503 from benluddy/cbor-codecs-featuregate
  > accfd98 Wrap unversioned CEL library initializer calls with guard
  > 0b5852e Wire serving codecs to CBOR feature gate.
  > ba14b9c Add cost testing for two variable comprehensions
  > 88f051a Merge pull request # 128554 from ritazh/webhookmatchcondition-doc-comment
  > 454f4fe hack/pin-dependency.sh github.com/google/cel-go v0.22.0
  > be81d72 Merge pull request # 128501 from benluddy/watch-cbor-seq
  > 882c789 Add webhookmatchcondition doc comment
  > dc2e401 Use application/cbor-seq media type in streaming CBOR responses.
  > e906dc9 Merge pull request # 128266 from AnishShah/resize-subresource
  > cb02f4a support for resize subresource in ResourceQuota admission.
  > 04fa4ad Merge pull request # 128539 from benluddy/cbor-feature-gates
  > 7338177 Merge pull request # 128580 from jpbetz/bump-kube-openapi
  > ca9c3d9 Add CBOR feature gates.
  > 4cb4306 Merge pull request # 128415 from serathius/watchcache-btree-2
  > 5fff35e hack/pin-dependency.sh k8s.io/kube-openapi 32ad38e42d3faf1ce94eb29f4ea6d763339b258e
  > 9829443 Merge pull request # 127134 from jpbetz/mutating-admission
  > e85d45c Use btree for watch cache storage to serve LIST more efficiently
  > 4605e42 Merge pull request # 128507 from dims/use-k8s.io/utils/lru-instead-of-github.com/golang/groupcache/lru
  > f7ccc75 Reorganize and expand unit test coverage
  > e3e5839 Merge pull request # 126894 from carlory/ZeroLimitedNominalConcurrencyShares
  > cae3853 Use k8s.io/utils/lru instead of github.com/golang/groupcache/lru
  > 9843fd9 Rename dispatcher Run to Start to match naming conventions
  > 6df5cd7 Merge pull request # 128481 from carlory/dependencies-ginkgo-gomega
  > 9b88185 remove general avaliable feature-gate ZeroLimitedNominalConcurrencyShares
  > b738c82 Fix comment in mutating webhook dispatcher
  > 5d1ea16 dependencies: ginkgo v2.21.0, gomega v1.35.1
  > c259217 Improve error messaging for validating admission policy authz
  > 0b45fb4 Merge pull request # 128416 from jpbetz/reset-filter
  > 9da9568 Add jsonpatch.escapeKey CEL function
  > 97c3c25 Merge pull request # 128463 from knrc/fix_vap_elapsed_time_tracking
  > 15adc43 Add ResetFieldsFilterStrategy
  > a5e93cb Add MutatingAdmissionPolicy plugin to admission chain
  > 1ae0417 Merge pull request # 128468 from wojtek-t/fix_miss_events_tests
  > b91c432 Fix elapsed time tracking for validating admission policies
  > 125611e hack/pin-dependency.sh sigs.k8s.io/structured-merge-diff/v4 v4.4.2
  > 0e6467b Add mutation support into CompositedCompiler and reorganize for clarity
  > f189442 Merge pull request # 128454 from jpbetz/fix-emulated-storage-version-encoding-config
  > 0679efd Fix TestCacherDontMissEventsOnReinitialization test
  > 9ead80d Add MutatingAdmissionPolicy API
  > 9270d97 Merge pull request # 128456 from benluddy/nondeterministic-response-encoding
  > 7d5891a Unit test for emulated storage version selection
  > bd808a0 Add feature gate
  > 2e7093f Merge pull request # 128273 from benluddy/cbor-apply
  > 30be0a3 Allow nondeterministic object encoding in HTTP response bodies.
  > f0baf72 Don't pick versions that have a replacement as storage version
  > 8794780 Clean up Object initialization support
  > 28f9eed Merge pull request # 126875 from serathius/watchcache-test-indexers
  > cf0dbba Support application/apply-patch+cbor in patch requests.
  > b09b801 Move caching authorizer to shared location to be used by mutating and validating policy
  > d93c90f Merge pull request # 128274 from eddycharly/fix-cel-type-provider
  > 518e8ed Adding tests for using indexers in tests
  > 918f350 Merge pull request # 126754 from serathius/watchcache-btree
  > 00c7d5a use require
  > 14c29cd Merge pull request # 128013 from seans3/admission-configuration-strict
  > 5913dac Implement btree based storage indexer
  > b432ca9 add test
  > 76c0640 Merge pull request # 128122 from aojea/storage_error
  > 2bfdf1d AdmissionConfiguration now uses strict validation
  > 1522096 fix: cel type provider should return a type type
  > 4bece4d Merge pull request # 128196 from richabanker/move-version
  > 81796a8 use same name for package than the folder
  > fb9f1a8 Merge pull request # 127898 from modulitos/modulitos/fix-metrics-docs
  > 7862882 Merge pull request # 128243 from benluddy/cbor-dynamic-integration
  > 334b2d8 Fix docs for apiserver admission metrics
  > 781f771 Merge pull request # 125258 from serathius/etcd-kubernetes-interface
  > f27bb54 Wire test-only feature gate for CBOR serving.
  > eb7f648 Migrate GetList to Kubernetes client
  > de27d75 Migrate Count to Kubernetes client
  > fd6565d Migrate Delete and GuaranteedUpdate to Kubernetes client
  > fc6b258 Migrate Create to Kubernetes client
  > 187d1ad Migrate Get to Kubernetes client
  > 37f4223 Update recorders to wrap kubernetes.Client
  > b43a246 Add etcd kubernetes interface package to vendor
  > 7dd4904 Merge pull request # 127341 from mjudeikis/mjudeikis/deprecate.ch.fully
  > 9d850af Merge pull request # 127915 from omerap12/apiserver-util-PollUntilContextTimeout
  > 3e52ced fully remove StopCh
  > 54b4c4f Merge pull request # 124945 from hoskeri/remove-unused-field
  > 9652430 Use PollUntilContextTimeout in flowcontrol
  > c6b840a Merge pull request # 126900 from deveshgoyal1000/fix/typo-flowcontrol-request-width
  > b4437b2 Remove unused field from APIGroupVersion
  > d0f54d5 Merge pull request # 128172 from liggitt/3221-ga
  > b2a5ee8 Updated width.go
  > ec228a4 Merge pull request # 128168 from liggitt/4601-beta
  > 08766af KEP-3221: Promote StructuredAuthorizationConfiguration to GA
  > 1ea7bef Merge pull request # 128165 from liggitt/prune-self-require
  > 1e62dc2 KEP-4601: AuthorizeNodeWithSelectors / AuthorizeWithSelectors to beta
  > 6600cfa Merge pull request # 126347 from vinayakankugoyal/kep2862impl
  > d1d8d5e Drop self-referencing replace directives
  > e784492 Merge pull request # 127504 from sttts/sttts-authz-cel-compiler-once
  > 9da53c5 KEP-2862: Fine-grained Kubelet API Authorization
  > b907cca Merge pull request # 128144 from cheftako/updateANP
  > bf20cce apiserver/validation: fix some sets.NewString deprecations
  > 08c8245 Merge pull request # 128120 from aojea/celmetrics
  > 1f585b0 Bump konnectivity-client to v0.30.0
  > 4b46916 apiserver/authconfig: wire CEL compiler through lower layers to allow sharing
  > aeae196 Promote WatchList feature to Beta  (# 128053)
  > 402e1cd use same name as the folder for the package
  > 608821c Merge pull request # 128136 from enj/enj/t/non_global_kms_kdf_via_name
  > c8517e5 Merge pull request # 128076 from AmarNathChary/Removed_Alpha_Beta_Ga
  > 4f8e2cf kmsv2: run KDF tests in parallel
  > 576854d Merge pull request # 128064 from dims/update-to-last-versions-of-some-very-infrequently-updated-repos
  > 54c7d50 removed_comments_from_kube_feature_of_alpha_beta_ga
  > d089101 Merge pull request # 128073 from seans3/tracing-config-strict-validation
  > 3ee34eb Update to last versions of some very infrequently updated repos
  > d52f63d Merge pull request # 127982 from tkashem/refactor-store-decoder
  > e6b7968 TracingConfiguration is now validated strictly
  > 44ff1c1 Merge pull request # 128038 from seans3/resource-quota-config-validation
  > 1488136 refactor: extract decode functions into an interface for etcd3 store
  > 6ad2d93 Merge pull request # 128011 from seans3/egress-selector-configuration-strict
  > 15f8ad5 Enable strict validation for ResourceQuotaConfiguration
  > 285603b EgressSelectorConfiguration now uses strict validation
  > ebe463f Merge pull request # 127998 from skitt/golang-x-oct-2024
  > b9c35c9 Merge pull request # 127985 from dims/update-moby-runc-dependencies-oct-10
  > 042b976 October 2024 golang.org/x bump
  > 33a5883 Update moby/runc dependencies
  > 23e33fe Merge pull request # 127984 from tkashem/refactor-storage-internal-error
  > 26cc277 Merge pull request # 127942 from liggitt/json123
  > 33cfd96 refactor: storage.InternalError should retain the inner error
  > f14df2d Merge pull request # 127777 from tkashem/refactor-delete-option
  > 810761b Update sigs.k8s.io/json to go1.23
  > 664cde1 Merge pull request # 127778 from tkashem/refactor-conditional-delete
  > 3a0975b refactor: add delete options for Delete method in storage interface
  > f28acc6 refactor etcd store conditional delete
  > bd937b2 Merge pull request # 122923 from tkashem/timeout-documenting-test
  > f45e42a Merge pull request # 127302 from cici37/costFG
  > 7b1424d fixup! add test to document behavior of net/http read/write deadline
  > 8602a60 Merge pull request # 127909 from richabanker/mvp-cleanup
  > 0381d1e Promote cost enforcement feature gates to GA
  > 85ab93c add test to document behavior of net/http read/write deadline
  > 50dafb8 reset err in resolveServingLocation() when the req can be served by local apiserver
  > c207000 Merge pull request # 127905 from cici37/revert-127400
  > 7202dc0 Merge pull request # 127902 from p0lyn0mial/upstream-system-authenticated-for-system-apiserver
  > f79926b Revert pr 127400
  > 3257d91 server/config: assing system:apiserver user to system:authenticated group
  > 5bdd80c Merge pull request # 127816 from cici37/updateCEL
  > d30adf3 Merge pull request # 122957 from richabanker/uvip-bugfix
  > be24016 Update cel-go to v0.21.0
  > df45eb6 refactor peerproxy_handler and add unit test
  > 08c52b9 Merge pull request # 127764 from Jefftree/responsewriter-refactor
  > 2861287 Merge pull request # 127718 from richabanker/mvp-cleanup
  > f900b71 Move inmemoryresponsewriter into own package
  > 36e5769 apiserver/handlers/watch: encode initialEventsListBlueprint with watchEncoder (# 127587)
  > 8c1054e use structured logging wherever possible
  > d7cbe7a Merge pull request # 127670 from Jefftree/port-kcm-feature
  > 40680ba Do not mark errorFetchingAddressFromLease, in case when the there's no address being fetched from the lease object
  > b16c96d Merge pull request # 127029 from tkashem/apf-fix-watch-panic-handling
  > 38adb49 Port the rest of unversioned features
  > 60d1ca6 Merge pull request # 127690 from mmorel-35/testifylint/expected-actual@k8s.io/apiserver
  > 4483cc9 apiserver: all bookkeeping must complete before apf handler returns
  > efdbeb5 Merge pull request # 127683 from mmorel-35/testifylint/nil-compare@k8s.io/apiserver
  > e32a42c fix: enable expected-actual rule from testifylint in module `k8s.io/apiserver`
  > a785076 apiserver: fix apf watch test
  > ad232ba Merge pull request # 127671 from mmorel-35/testify/error-contains
  > aaeee2a fix: enable error-nil and nil-compare rules from testifylint in module `k8s.io/apiserver`
  > 42502d2 Merge pull request # 126764 from liggitt/mergo
  > 17d29da fix: use `ErrorContains(t, err` instead of `Contains(t, err.Error()`
  > 163594e Merge pull request # 127536 from mmorel-35/testifylint/contains@k8s.io/apiserver
  > 0298bf9 Update vendor
  > 326460d Merge pull request # 127551 from carlory/fix-trace-context
  > c6ba968 fix: enable contains rule from testifylint in module `k8s.io/apiserver`
  > d9db30e Merge pull request # 127647 from mmorel-35/testifylint/formatter@k8s.io/apiserver
  > 1bb7b2e introduce a proper trace context
  > afd0aba Merge pull request # 127012 from Chaunceyctx/new-send-bookmark
  > 33d4365 fix: enable formatter rule from testifylint in module `k8s.io/apiserver`
  > 18cfc4e Merge pull request # 127200 from omerap12/version_fg_apiserver
  > f7eddd4 send bookmark right now after sending all items in watchCache store
  > 8cb411e adds watchListEndpointRestrictions for watchlist requests (# 126996)
  > 6dc6d8d chore: moving apiserver featuregates to versioned
  > 11af6bb Merge pull request # 127093 from jpbetz/retry-generate-name-ga
  > 763c822 Merge pull request # 127500 from p0lyn0mial/upstream-assign-rv-to-watchCacheInterval
  > a84f818 Preserve testing of RetryGenerateName feature disablement
  > c34f5e1 Merge pull request # 127323 from vrutkovs/tracing-cacher-get
  > cdd40a3 pkg/storage/testing/watcher_tests: RunWatchSemantics checks if the storage has been primed with init data
  > 91a4bf2 Promote RetryGenerateName to GA
  > bcc4579 Merge pull request # 127540 from mmorel-35/testifylint/error-is-as@k8s.io/apiserver
  > 7da1f04 tracing: add span for cacher.Get
  > eb3a20a storage/cacher/cache_watcher: processInterval sets RV from the snapshot
  > 1e85cd3 Merge pull request # 127524 from mjudeikis/mjudeikis/extend.group.manager
  > b489c4e fix: enable error-is-as rule from testifylint in module `k8s.io/apiserver`
  > 743b577 storage/cacher/cache_watcher: add RV to watchCacheInterval
  > de96004 Merge pull request # 126799 from kiashok/update-cadvisor-hcsshim
  > b09ab6e Add GroupLister interface to discovery GroupManager
  > 8a3f4fc Merge pull request # 127529 from mmorel-35/testifylint/compares@k8s.io/apiserver
  > d076be3 Update cadvisor and hcsshim versions
  > 9996ba3 fix: enable compares rule from testifylint in module k8s.io/apiserver
  > 4509919 Merge pull request # 126760 from ncdc/ncdc/emeritus
  > 3f8a6ad Merge pull request # 127422 from srivastav-abhishek/go-vet-fix
  > 614f663 Use emeritus_*
  > 7d77d3c Merge pull request # 127493 from p0lyn0mial/upstream-deflake-cacher-dont-accept-requests
  > 17ab6c2 Fix Go vet errors for master golang
  > 1ccea00 Move ncdc to emeritus
  > 1a9bf77 Merge pull request # 127492 from p0lyn0mial/upstream-deflake-consistent-read-fallback
  > 87a5cde storage/cacher/cacher_whitebox_test:deflake TestCacherDontAcceptRequestsStopped when ResilientWatchCacheInitialization is off
  > bafce89 pkg/storage/cacher/cacher_whitebox_test: deflake TestConsistentReadFallback when ResilientWatchCacheInitialization is off
  > f5a73ba Merge pull request # 127244 from Adarsh-verma-14/fix-comment
  > e70087b Merge pull request # 127161 from Jefftree/duplicate-feature-inplacepod
  > 5db4826 fixing inconsistency between the comment and the actual feature gate definition
  > 7e60e39 Merge pull request # 124792 from mjudeikis/mjudeikis/ctx.wiring
  > b93ecaa remove duplicate unused feature InPlacePodVerticalScaling
  > 87a949c Merge pull request # 126977 from aaron-prindle/compat-version-132
  > 07be298 wire in ctx to rbac plugins
  > 71b1c7e Merge pull request # 127400 from sttts/sttts-webhook-cel-compiler
  > fc23f87 chore: bump DefaultKubeBinaryVersion to 1.32, make 1.32 CEL changes, fix int tests to handle 1 version off API deprecation, and fix prerelease-lifecycle-gen for # of APIs
  > b0e4675 Merge pull request # 127279 from serathius/etcd-v3.5.16
  > 9a5bc0a apiserver/admission/webhook: construct static CEL compiler only once
  > ac5c364 Merge pull request # 125186 from liyuerich/newserializer
  > 0b2ba57 Upgrade etcd client to v3.5.16
  > d6db44d Merge pull request # 127314 from xuzhenglun/cohabitating-ut
  > 535f094 drop deprecated json/yaml newSerializers, use json.NewSerializerWithOptions instead
  > 3abc312 add test coverage for cohabitating resources in StroageFactory
  > 6ab385d Merge pull request # 127271 from liggitt/go1.23
  > b95faaa Merge pull request # 127239 from xuzhenglun/cohabitating-resources
  > d3f16fa Pin godebug default to go1.23
  > 438d2ea Merge pull request # 126368 from jpbetz/organize-cel-libraries
  > a096b0d API emulation versioning honors cohabitating resources
  > 9f2124a Update go.mod to go 1.23
  > 14b3ab9 Merge pull request # 127186 from Adarsh-verma-14/remove-duplication
  > 206e39c Test library and type names
  > d3a58dd Merge pull request # 127254 from liggitt/test-filter
  > 8a5b910 add missing comment
  > c90ac47 Move CEL semver library into common libs, fix cost tests to use registered types
  > fbad808 Merge pull request # 127265 from p0lyn0mial/upstream-watchlist-matchsingle-recursive
  > f014f4a Fix unit tests for filtering
  > 6999423 Add equality cost checking
  > 8a764cf cacher: apply key for initial events only if the call is not recursive
  > 7896cd7 add a type for each CEL library, register all types
  > 197cd43 Merge pull request # 125960 from pohly/dep-logging
  > 1d107b2 Merge pull request # 115834 from stlaz/remote-uid
  > d7c9221 dependencies: logr v1.4.2, zap v1.27.0
  > cf15325 delegate authn: don't default the ReqHeaders UID header
  > 60f20c3 client-go: add the UID to the auth-proxy roundtripper
  > b9e6a66 requestheaders: add a "requestheader-uid-headers" flag and wire it up
  > 3da25cf Merge pull request # 127119 from Jefftree/compat-version/cleanup-apiserver-example
  > 90f5efd Merge pull request # 126500 from liangyuanpeng/bump_etcd_3515
  > e778ced Remove example feature gate from pkg/apiserver/kube_features.go
  > 1b4b1fb Merge pull request # 127009 from vinayakankugoyal/kep4633
  > 158efa9 Bump dependency: etcd to 3.5.15.
  > ec5e79c Merge pull request # 127058 from carlory/rm-fgs
  > 491f624 KEP-4633: Graduate to BETA.
  > 6b43222 Merge pull request # 127089 from sanposhiho/revert-126574
  > af2142b Remove GAed feature gates ServerSideApply/ServerSideFieldValidation
  > cfa4430 Revert "apiserver: fix data race in apf tests in server/filters package"
  > 6bd08c5 Revert "apiserver: improve logging for apf tests in server/filters package"
  > bbf2820 Merge pull request # 127010 from aramase/aramase/f/kep_3331_jti
  > 13c06f3 Set credential-id in userinfo.extra for jwt authenticators if jti claim present
  > bb8caf4 Merge pull request # 126574 from tkashem/apf-data-race
  > bd063e0 Merge pull request # 126968 from serathius/watchache-refactor-store
  > 9d542fe apiserver: improve logging for apf tests in server/filters package
  > a8c26a1 Extract watch cache store to separate file and cover with tests
  > 644a251 apiserver: fix data race in apf tests in server/filters package
  > 94a5e3c Refactor WaitUntilFreshAndList to split out filtering to separate function
  > 784a83e Merge pull request # 126957 from dashpole/fix_tracing_leak
  > d9009c5 Merge pull request # 126627 from fusida/fix-reduce-etcd-conn
  > f1fcc94 update-vendor
  > 8beb816 Merge pull request # 125634 from ahmedtd/x509credentialID
  > e312f49 fix short circuit if the compaction request from apiserver is disabled
  > daa75f8 fix memory leak from global MeterProvider
  > 6c201a9 Merge pull request # 126930 from Ruddickmg/patch-1
  > 72a449f Define credential IDs for X.509 certificates
  > 7198d4f Merge pull request # 126787 from Jefftree/update-kube-openapi
  > 9c8c6cc kmsv2: fixed issue with an invalid authority header being sent by the KMSv2 service
  > a78241f Merge pull request # 126359 from jpbetz/quantity-estimated-cost
  > a03dae5 re-vendor k8s.io/kube-openapi
  > 12c4904 Merge pull request # 126295 from sohankunkerkar/denoise-watcher-events
  > 28d9c91 Add basic panicOnUnknown support for kubernetes types
  > 932b258 Merge pull request # 125884 from serathius/benchmark-storage
  > fed8dfe dynamiccertificates: denoise Kubelet logs by skipping removal of non-existent file watchers
  > 65a6ca8 support opaque kinds
  > 586ab58 Merge pull request # 126645 from cici37/cleanupFG
  > de0559e Benchmark storage
  > cbc4886 Fix estimated cost for Kubernetes defined CEL types
  > da8e291 Merge pull request # 126867 from piny940/master
  > e9e2468 Remove FG inspection from VAP plugin
  > 27f5f25 Merge pull request # 126854 from serathius/pagination-tests
  > 2ed104b fix ValidatingAdmissionPolicy's Validate func to return decision with valid Evaluation
  > fac4f5d Remove feature gate ValiatingAdmissionPolicy after stable.
  > a5bbfcd Merge pull request # 126512 from kmala/metrics
  > 132d3e4 Add paging tests
  > 6830df5 Merge pull request # 126305 from richabanker/optimize-tests
  > fcf807e add resource to the transformation metrics
  > 66b4299 Merge pull request # 126774 from aramase/aramase/c/sa_rm_unused_function
  > f434fbf init a common apiserver for TestAuthorizationDecisionCaching testcases
  > 43a5620 cleanup unused fn GetOrCreateServiceAccount in serviceaccount/util
  > 1d26753 split Test_ValidateNamespace_NoParams into successes and failures tests, init a common apiserver for all testcases
  > 5d131b7 Merge pull request # 126523 from enj/enj/i/ssa_authz_create_err
  > 25d7e88 Merge pull request # 126553 from aramase/aramase/c/kep_3331_disallow_k8s_io_prefix
  > cc8ff8f ForbiddenStatusError: make linter happy on error construction
  > 38586e5 Merge pull request # 126685 from enj/enj/i/kms_resouce_logs
  > fed75d5 Disallow k8s.io and kubernetes.io namespaced extra key in structured authn config
  > 757565c SSA: improve create authz error message
  > 11b0e07 Merge pull request # 126698 from enj/enj/i/del_kms_v2_gates
  > cd5bba1 Ensure transformers have access to the resource via request info
  > 272e9eb Remove KMSv2 and KMSv2KDF feature gates
  > b157511 Merge pull request # 126649 from 0x5457/fix-panic
  > 13f78e0 Merge pull request # 126665 from liggitt/version-build-id
  > 27c3ca7 apiserver: declare kubeClient and dynamicClient as interface types to avoid panic
  > be94967 Merge pull request # 126565 from Adarsh-verma-14/remove-duplicate-call
  > 7733123 Restore honoring --version build ID overrides
  > cb239f8 Merge pull request # 126354 from liangyuanpeng/celtest_update
  > 41e1af4 remove duplicate call for ServeMux
  > c84ae4a Merge pull request # 126316 from aramase/aramase/f/kep_3331_tighter_validation
  > 552e7d7 Using NewExpressions for cel lazy test.
  > fb0703a Merge pull request # 126329 from serathius/concurrent-transformation-chan-of-chan
  > febd487 Validate structured authn feature is enabled for discovery url/multiple
  > 3adae5f Make object transformation concurrent to remove watch cache scalability issue for conversion webhook
  > 9aa7a6a Introduce ConcurrentWatchObjectDecode feature gate disabled by default
  > bd44a99 Merge pull request # 126469 from serathius/beta2
  > 1b569bf Merge pull request # 126470 from benluddy/apiservingwithroutine-alpha-disabled
  > c470f38 Move ConsistentListFromCache to Beta default again
  > bebf7ae Merge pull request # 126467 from serathius/fallback
  > 788e7ee Move APIServingWithRoutine to alpha and disabled by default.
  > 6c5ee08 Implement fallback for consistent reads from cache
  > c8097e3 Merge pull request # 124012 from Jefftree/le-controller
bumping knative.dev/pkg c8bea7c...c925de2:
  > c925de2 upgrade to latest dependencies (# 3150)
  > ae2c6bc Bump K8s min version to v1.31 (# 3149)
bumping k8s.io/client-go 4b5b7fa...86ff7a1:
  > 86ff7a1 Update dependencies to v0.32.2 tag
  > 4765ade Merge remote-tracking branch 'origin/master' into release-1.32
  > 692a511 Drop use of winreadlinkvolume godebug option
  > 9df5099 Merge remote-tracking branch 'origin/master' into release-1.32
  > 120beb2 Revert to go1.22 windows filesystem stdlib behavior
  > 55d23e2 Align fake client-go clients with the main interface
  > 646e79b Run codegen
  > c475fe0 Generify fake clientsets
  > 955401c Merge pull request # 128407 from ndixita/pod-level-resources
  > eddb107 Merge pull request # 127857 from Jefftree/cle-v1alpha2
  > 77d9809 Generated files and compatability data from API changes
  > ef8b7aa generated
  > bf1a6ee v1alpha2 LeaseCandidate API
  > ec12655 Merge pull request # 128240 from LionelJouin/KEP-4817
  > fcfb2ba Merge pull request # 127513 from tkashem/delete-undecryptable
  > fba42f0 [KEP-4817] make update
  > fe3db7f Merge pull request # 128681 from soltysh/client-go_port_forward_reset
  > e132ac2 handle watch for unsafe delete
  > bfbe175 [KEP-4817] make update
  > 2d3b1e2 Merge pull request # 128356 from lauralorenz/crashloopbackoff-maintain10minuterecoverythreshold
  > bf41455 Clean error handling in port-forward
  > 95fc3d7 api: run codegen
  > c57e0a8 Merge pull request # 128641 from benluddy/e2e-cbor-client-compat
  > ab2cdce Maintain 10 minute recovery threshold for container backoff
  > d6404c8 fix: draining remote stream after port-forward connection broken
  > 4953761 Fix content type fallback when a client defaults to CBOR.
  > c57dbd8 Merge pull request # 128503 from benluddy/cbor-codecs-featuregate
  > 334e307 Wire serving codecs to CBOR feature gate.
  > 2d5ed6f Merge pull request # 128501 from benluddy/watch-cbor-seq
  > 10c2fdb Use application/cbor-seq media type in streaming CBOR responses.
  > ae04abd Merge pull request # 127511 from pohly/dra-1.32-api
  > 4e05c62 DRA API: rename DeviceCapacity.Quantity to DeviceCapacity.Value
  > f65974c DRA API: use DeviceCapacity struct instead of plain Quantity
  > 98e4506 DRA API: generated files
  > e6df85f Merge pull request # 128266 from AnishShah/resize-subresource
  > db23975 client-go: rename Resize to UpdateResize
  > 951bba3 update codegen
  > fc589c2 api: generate client code for resize subresource
  > 9d76eb1 Merge pull request # 128539 from benluddy/cbor-feature-gates
  > c1010ff Merge pull request # 128580 from jpbetz/bump-kube-openapi
  > 8cb2167 Add CBOR feature gates.
  > 6d45801 Merge pull request # 127134 from jpbetz/mutating-admission
  > 48c6947 hack/pin-dependency.sh k8s.io/kube-openapi 32ad38e42d3faf1ce94eb29f4ea6d763339b258e
  > 3fc0d17 Merge pull request # 128396 from ritazh/deprecate-EnforceMountableSecretsAnnotation
  > b5002f1 Update OpenAPI and fix openAPI tests to handle unexported jsonreferences
  > f6b6807 Merge pull request # 128552 from aojea/package_kubernete_test
  > f77b399 deprecate EnforceMountableSecretsAnnotation in 1.32
  > 5295d25 generate code
  > 1f96e45 fix package name
  > 3a26884 Merge pull request # 128547 from aojea/rest_watch
  > be38ea1 Merge pull request # 127981 from jsafrane/selinux-changepolicy
  > d69191c rest client watch: use same name for package as folder
  > 2ff8874 Merge pull request # 128507 from dims/use-k8s.io/utils/lru-instead-of-github.com/golang/groupcache/lru
  > f0b2234 Regenerated API
  > 6c84382 Use k8s.io/utils/lru instead of github.com/golang/groupcache/lru
  > 6755414 Merge pull request # 128497 from benluddy/cbor-request-contenttype-circuit-breaker
  > b3f6ede Merge pull request # 127743 from googs1025/cleanup/leaderelection
  > 15af21a Fall back to JSON request encoding after CBOR 415.
  > d680385 Merge pull request # 128481 from carlory/dependencies-ginkgo-gomega
  > 1b8aded chore(leader-election): modify leader-election comment to OnStoppedLeading callback is always called when the LeaderElector exits, even if it did not start leading.
  > d99919f dependencies: ginkgo v2.21.0, gomega v1.35.1
  > c5d71b2 Merge pull request # 128416 from jpbetz/reset-filter
  > 10f4596 hack/pin-dependency.sh sigs.k8s.io/structured-merge-diff/v4 v4.4.2
  > 6ba2fc7 Merge pull request # 128273 from benluddy/cbor-apply
  > d7104c6 Merge pull request # 127266 from pohly/dra-admin-access-in-status
  > b0bd1f5 Regenerate clients to support application/apply-patch+cbor.
  > d86bbae DRA: treat AdminAccess as a new feature gated field
  > cff5621 Support application/apply-patch+cbor in patch requests.
  > d321931 DRA API: AdminAccess in DeviceRequestAllocationResult
  > a887e57 Merge pull request # 128323 from benluddy/cbor-client-gen
  > 886262a Update vendor (client now calls ParseAccept from goautoneg).
  > c957b59 Wire client feature gates affecting RESTClient content config.
  > 9d19c65 Update generated clients.
  > d8fc5bb Make generated client codecs support CBOR based on feature gate.
  > 3dc7fd5 Merge pull request # 128243 from benluddy/cbor-dynamic-integration
  > abe0e99 Merge pull request # 125314 from enj/enj/i/proto_for_core
  > 1cca19d Add test-only client feature gates for CBOR.
  > 86e81b0 Generated
  > 6f44458 Use protobuf for core clients
  > 1647efd client-go/rest: move content type wiring from client to request
  > c5146a9 Merge pull request # 126697 from fedebongio/patch-1
  > f05f3ca Merge pull request # 125516 from ComingCL/master
  > 65ed08a Update OWNERS
  > 23900f4 Merge pull request # 128165 from liggitt/prune-self-require
  > de60f3c fix typo errors in client-go rest package
  > 29ce700 Update staging/src/k8s.io/client-go/tools/leaderelection/OWNERS
  > 6a276b2 Merge pull request # 128003 from pohly/dra-classic-dra-removal
  > 607869c Drop self-referencing replace directives
  > 3c2f081 Update OWNERS
  > d366fa7 DRA: remove "classic DRA"
  > 2359365 Merge pull request # 128064 from dims/update-to-last-versions-of-some-very-infrequently-updated-repos
  > 43e9ea4 Merge pull request # 124059 from benluddy/dynamic-client-negotiation
  > e4db112 Update to last versions of some very infrequently updated repos
  > ee51eaf Use content negotiation in the dynamic client.
  > c38ce11 Merge pull request # 127812 from p0lyn0mial/upstream-decode-list-blueprint
  > 9cff3e4 Merge pull request # 128035 from alexanderstephan/export-reflector
  > d274c7b client-go/rest/request: decodes initialEventsListBlueprint for watchlist requests
  > ce42c29 Make getter names for reflector fields idiomatic
  > 64f5574 Merge pull request # 127998 from skitt/golang-x-oct-2024
  > 2717ef6 Merge pull request # 127985 from dims/update-moby-runc-dependencies-oct-10
  > 9f84a0d October 2024 golang.org/x bump
  > 6b8f524 Update moby/runc dependencies
  > d13452a Merge pull request # 127485 from seans3/websocket-upgrade-error-info
  > 3cd3050 Upgrade websocket failure add extra error info
  > cd6681f Merge pull request # 127942 from liggitt/json123
  > bbcb9ac Update sigs.k8s.io/json to go1.23
  > cae7305 Merge pull request # 127944 from antoninbas/use-generics-for-delaying-queue-waitFor
  > ba20fca Merge pull request # 127663 from alexanderstephan/export-reflector
  > 3c28f81 Use generics for waitFor (delaying workqueue) in client-go
  > 0dfea60 Merge pull request # 127710 from alvaroaleman/document
  > 146d03f Export name and typeDescription members of reflector struct
  > 5fceb99 Merge pull request # 127635 from antoninbas/use-generics-for-queue-metrics
  > 7416b2e RestCfg: Add godocs on how to disable ratelimiting
  > 5b31113 Use generics for workqueue metrics
  > ca4a13f Merge pull request # 127827 from skitt/client-go-obsolete-plugins
  > 105983d client-go: remove obsolete auth plugins from examples
  > 3ecd72c Merge pull request # 127099 from jpbetz/object-selectors-ga
  > 415a0d6 Merge pull request # 127765 from alvaroaleman/fix
  > 1d3f0e5 Add dynamic informers tests for field and label selectors
  > 71640ef Fix accidental breaking change in TypedNewDelayingQueue
  > 4609339 Merge pull request # 127689 from mmorel-35/testifylint/expected-actual@k8s.io/client-go
  > ea4f3d0 Merge pull request # 127682 from mmorel-35/testifylint/nil-compare@k8s.io/client-go
  > 9d7f486 fix: enable expected-actual rule from testifylint in module `k8s.io/client-go`
  > 2d7a47c Merge pull request # 126764 from liggitt/mergo
  > 84137c2 fix: enable error-nil and nil-compare rules from testifylint in module `k8s.io/client-go`
  > e2b5fa7 Merge pull request # 127535 from mmorel-35/testifylint/contains@k8s.io/client-go
  > 1b9b709 Update vendor
  > 374753a Merge pull request # 127539 from mmorel-35/testifylint/error-is-as@k8s.io/client-go
  > c2ecdf4 fix: enable contains rule from testifylint in module `k8s.io/client-go`
  > a398951 Implement limited merge function
  > dfbc1c7 Merge pull request # 125917 from skitt/drop-auth-path-kubernetes-auth
  > baf58c3 fix: enable error-is-as rule from testifylint in module `k8s.io/client-go`
  > 56b7eaf Narrow merge interface to merging the same types
  > d79bc28 Merge pull request # 127466 from guozheng-shen/fix-return
  > e996fa7 Drop references to auth-path and kubernetes_auth
  > b3dca7e Isolate mergo use, add test coverage and error checking
  > 5395fd1 adds watchListEndpointRestrictions for watchlist requests (# 126996)
  > 4d28b83 endpointsLeasesResourceLock and configMapsLeasesResourceLock are removed too
  > def003b Merge pull request # 127573 from benluddy/dynamic-golden-response-test
  > 08c6c31 Add test for unintended changes to dynamic client response handling.
  > fcb1b60 Merge pull request # 127527 from mmorel-35/testifylint/compares@k8s.io/client-go
  > 290f054 fix: enable compares rule from testifylint in module
  > 8887e59 Merge pull request # 126760 from ncdc/ncdc/emeritus
  > 40a93af Merge pull request # 127422 from srivastav-abhishek/go-vet-fix
  > da3ab4e Move ncdc to emeritus
  > 4f57ad3 Merge pull request # 127388 from p0lyn0mial/upstream-watchlist-meta-client
  > 7141d01 Fix Go vet errors for master golang
  > b42d55b client-go/metadata: use watchlist
  > 892e9b8 client-go/metadata: add watchlist method
  > 68a23b8 client-go/metadata: refactor List method
  > fb6ca04 Merge pull request # 125186 from liyuerich/newserializer
  > 53c7e93 Merge pull request # 126999 from pohly/log-client-go-rest-body
  > 68d318f drop deprecated json/yaml newSerializers, use json.NewSerializerWithOptions instead
  > c5e16f8 Merge pull request # 127271 from liggitt/go1.23
  > 3d02d42 client-go/rest: contextual logging of request/response
  > 1431fe0 Pin godebug default to go1.23
  > 9daa93c Update go.mod to go 1.23
  > 8d0bbdf Merge pull request # 126809 from ryantxu/fix-client-get-list
  > 51f5488 Merge pull request # 115834 from stlaz/remote-uid
  > fae3dcd avoid panic when subresource is a list
  > 9dd4d6e client-go: add the UID to the auth-proxy roundtripper
  > 4fca708 Merge pull request # 127011 from jpbetz/format-only-imports
  > 2b73540 generate
  > bc8a8ba Merge pull request # 127035 from alvaroaleman/rename-TypedNewDelayingQueue
  > c311da2 Rename TypedNewDelayingQueue to NewTypedDelayingQueue
  > 388eba6 Merge pull request # 127023 from aimuz/fix-lead
  > 6c241d5 Merge pull request # 127001 from skitt/applyconfiguration-gen-ambiguous
  > 4379fad leaderelection: replace deprecated wait.PollImmediateUntil with wait.PollUntilContextTimeout
  > d50e2a9 Merge pull request # 126265 from tnqn/fix-watch-error
  > d7a6826 Run codegen
  > 9db830e Merge pull request # 126727 from jpbetz/fix-fake-apply-name
  > 009514e Enrich the error returned from Request.Watch method
  > c795125 Merge pull request # 126954 from deads2k/retry-http2
  > 86c9611 Use Fatalf for non-recoverable errors in test
  > 0b9a7d2 Merge pull request # 124747 from l-technicore/update_event_spam_key
  > d69e298 automatically retry GET requests when http2 connection lost
  > 908d899 Stamp fake client apply reuqests with name from action
  > dec9eaa Merge pull request # 126787 from Jefftree/update-kube-openapi
  > aa6ed1b Updating event spam key to allow recording of more unique events
  > 4696521 Merge pull request # 126716 from stlaz/tlscachekey_comparable
  > aa547ee re-vendor k8s.io/kube-openapi
  > 79827ce Merge pull request # 126038 from mprahl/retry-watcher-forbidden
  > d63a65f ensure tlsCacheKey is strictly comparable to avoid runtime panics
  > 78c1586 Merge pull request # 126655 from tklauser/log-spelling-fix
  > 2176e80 Stop the RetryWatcher when failing due to permissions issue
  > 690fd52 Merge pull request # 126545 from yangjunmyfm192085/updatepersistentVolumeClaimRetentionPolicy
  > ae43527 client-go: fix typo in leaderelection error log message
  > 1a951c2 Updated incorrect description of persistentVolumeClaimRetentionPolicy
  > 71959c5 Merge pull request # 126405 from sttts/sttts-sync-informerfactory-start
  > b6f7bdf informers: add comment that Start does not block
bumping golang.org/x/text d42948e...3b64043:
  > 3b64043 go.mod: update golang.org/x dependencies
  > 1e59086 message/pipeline: add two Unalias calls
bumping k8s.io/kube-openapi 8e68654...2c72e55:
  > 2c72e55 Merge pull request # 518 from dims/copy-minimum-we-need-from-asaskevich/govalidator-and-drop-the-dependency
  > 5ad02ce Merge pull request # 519 from jpbetz/ignore-unrecognized
  > f1ff53c Move to internal/third_party directory
  > 9959940 Merge pull request # 517 from huww98/update-protobuf
  > 04b9783 Ignore unknown k8s:validation comments tags
  > b9bcd9e Strip/Freeze code from asaskevich/govalidator and drop dependency
  > 32ad38e Merge pull request # 516 from jpbetz/bump-to-smd-441
  > 36bdabb remove old github.com/golang/protobuf
  > 67ed584 Merge pull request # 511 from aojea/yaml
  > cfcbca7 Bump sigs.k8s.io/structured-merge-diff/v4 to v4.4.2
  > 9e1beec Merge pull request # 504 from pohly/naming-convention
  > 6a51d42 use our own fork of go-yaml
  > f7e401e Merge pull request # 510 from Jefftree/downgrade-ginkgo
  > 5b13d40 names match: tighten validation of inlining and metadata
  > 65a50c7 Merge pull request # 509 from Jefftree/bump-gengo
  > 04edf7c Downgrade ginkgo to avoid introducing dependency of x/exp
  > 4fca853 names match: add unit tests demonstrating false positives
  > 76de80e Merge pull request # 508 from Jefftree/downgrade-dep
  > 21ea66f Upgrade gengo
  > 5732855 Merge pull request # 503 from Jefftree/patch-experiment-json-test
  > 909c8d5 Merge pull request # 507 from kubernetes/Jefftree-patch-2
  > 0db3e15 downgrade govalidator, go-restful, jsonreference
  > 91dab69 Merge pull request # 500 from thockin/master
  > 24eb939 Update github actions to test for later go versions
  > d7e11f2 disable dependabot
  > cb93749 Bump gengo version
  > bd91a10 Patch go-json-experiment/json negative float test
bumping sigs.k8s.io/json bc3834c...cfa47c3:
  > cfa47c3 Merge pull request # 23 from liggitt/go123
  > 9aa6b5e Merge pull request # 21 from liggitt/go123
  > 08d7098 Update required go version to 1.23
  > e386a8a Merge pull request # 20 from liggitt/go123-revert
  > 6045d5c Reapply carry patches
  > 7061b8c Matrix test go versions
  > c46165d Merge pull request # 19 from liggitt/go123
  > 44d7c46 Revert "Merge pull request 19 from liggitt/go123"
  > 18d087e sync go1.23 changes from encoding/json
  > e32a7b5 Update owners
  > 2d7345b Adjust benchmark to contain better distributed slice sizes
  > c7d763b Update external dependency check
  > a98f4c6 Reapply carry patches
  > 43c92d4 sync go1.23 changes from encoding/json

Signed-off-by: Knative Automation <automation@knative.team>
2025-02-18 06:35:50 +00:00
Pierangelo Di Pilato cee6e8cca4
EventTransform: Support transforming response from Sink (#8469)
This allows:
- propagating the response from Sink
- discarding the response from Sink
- transforming the response from Sink

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2025-02-17 17:47:49 +00:00
Pierangelo Di Pilato 75195a5873
EventTransform: Reconcile address and service (#8458)
- Set address only once endpoints are available
- Add debug logging
- Fix semantic comparisons to avoid loops

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2025-02-13 15:08:52 +00:00
Pierangelo Di Pilato d9498eba14
Scheduler: log expected vreplicas by vpod (#8449)
Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2025-02-13 12:13:52 +00:00
Matthias Wessendorf 36d681eab8
chore: Adding missing sinks and sources to schema file (#8460)
💄 Adding missing sinks and sources to schema file

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2025-02-13 08:40:51 +00:00
Pierangelo Di Pilato 779992fb70
Add EventTransform Jsonata reconciler and CRD (#8456)
* Add EventTransform Jsonata reconciler

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

* Add CRD

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

* Add reconciler to controller binary

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

* Add permissions

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

* Add selector to eventing filtered factory

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

* Add License header

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

* Add symlink

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

---------

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2025-02-12 15:24:51 +00:00
Knative Automation 8f990b90bb
[main] Upgrade to latest dependencies (#8455)
upgrade to latest dependencies

bumping google.golang.org/protobuf 259e665...f09e239:
  > f09e239 all: release v1.36.5
  > ab9efaa protogen: fix name mangling for fields with identical GoCamelCase
  > e677ef9 all: remove weak field support
  > 89b5638 all: start v1.36.4-devel
bumping knative.dev/pkg f62a97f...c8bea7c:
  > c8bea7c Bump golang.org/x/sync from 0.10.0 to 0.11.0 (# 3147)
  > 99d475b Bump google.golang.org/protobuf from 1.36.4 to 1.36.5 (# 3148)
  > 36226ee Update Knative injection-gen to use gengov2 (# 3146)
bumping golang.org/x/sync 913fb63...fe3591b:
  > fe3591b sync/errgroup: improve documentation for semaphore limit behavior

Signed-off-by: Knative Automation <automation@knative.team>
2025-02-12 07:45:50 +00:00
Pierangelo Di Pilato a228d2b9cf
Scheduler: Resync reserved periodically to keep state consistent (#8451)
Add resyncReserved removes deleted vPods from reserved to keep the
state consistent when leadership changes (Promote / Demote).

`initReserved` is not enough since the vPod lister can be stale.

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2025-02-11 14:21:49 +00:00
Pierangelo Di Pilato 2c1c7b85fb
Add EventTransform API types (#8447)
* Add EventTransform API

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

* Codegen

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

* Rename TransformList -> EventTransformList

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

* Fix lint errors

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

---------

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2025-02-11 09:30:49 +00:00
Matthias Wessendorf 162575c106
Not just render oidc env-vars when cfg is on, we need also a present audience to ensure the camel containers work correct (#8448)
Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2025-02-10 16:09:49 +00:00
Knative Automation 4a6e7d25c2
[main] Upgrade to latest dependencies (#8444)
upgrade to latest dependencies

bumping github.com/spf13/pflag 2e9d26c...5ca8134:
  > 5ca8134 Merge pull request # 419 from spf13/ci
  > d5e0c06 allow for blank ip addresses (# 316)
  > 100ab0e disable unsupported dependency graph for now
  > 85dd5c8 Add IPNetSlice and unit tests (# 170)
  > a0f4ddd fix govet
  > 6971c29 remove dead code for checking error nil (# 282)
  > f48cbd1 add github actions
  > 81378bb Add exported functions to preserve `pkg/flag` compatibility (# 220)

Signed-off-by: Knative Automation <automation@knative.team>
2025-02-04 16:09:23 +00:00
Knative Automation 5fb693f5f6
[main] Upgrade to latest dependencies (#8431)
upgrade to latest dependencies

bumping golang.org/x/oauth2 3e64809...22134a4:
  > 22134a4 README: don't recommend go get
bumping go.opentelemetry.io/otel/trace bc2fe88...7cfbd86:
  > 7cfbd86 Release v1.32.0/v0.54.0/v0.8.0/v0.0.11 (# 5960)
  > 2be617e fix(deps): update github.com/opentracing-contrib/go-grpc/test digest to 51a56c3 (# 5959)
  > 6db18df fix(deps): update module github.com/opentracing-contrib/go-grpc to v0.1.0 (# 5958)
  > ef12bf8 chore(deps): update golang.org/x (# 5957)
  > 85eb76f Allow GC to collect unneeded slice elements (# 5804)
  > 1492efa Fix incorrect metrics getting generated from multiple readers (# 5900)
  > d2b0663 fix(deps): update module go.opentelemetry.io/build-tools/multimod to v0.15.0 (# 5951)
  > 394cbd2 chore(deps): update lycheeverse/lychee-action action to v2.1.0 (# 5950)
  > 37b2537 fix(deps): update github.com/opentracing-contrib/go-grpc digest to e3cbcab (# 5952)
  > 7f68356 fix(deps): update module go.opentelemetry.io/build-tools/semconvgen to v0.15.0 (# 5953)
  > 030ffdf fix(deps): update module go.opentelemetry.io/build-tools/crosslink to v0.15.0 (# 5948)
  > b89de2d fix(deps): update module go.opentelemetry.io/build-tools/gotmpl to v0.15.0 (# 5949)
  > b62a3fd Override insecure when endpoint URL is set (# 5944)
  > 937813d fix(deps): update github.com/opentracing-contrib/go-grpc digest to d08aa2b (# 5945)
  > ff07838 prometheus: Add instrumentation scope attributes to otel_scope_info (# 5932)
  > 1230566 log: Update package documentation (# 5942)
  > a62c45a chore(deps): update googleapis to dd2ea8e (# 5943)
  > 6e4c922 prometheus: Refactor getAttrs (# 5937)
  > 7fd5942 chore(deps): update module github.com/grpc-ecosystem/grpc-gateway/v2 to v2.23.0 (# 5939)
  > fb2b32b docs: updating outdated comments (# 5940)
  > 06ee6f2 Remove examples (# 5930)
  > 2a50fab otlplog: Add instrumentation scope attributes (# 5933)
  > afd1311 otlpmetric: Add instrumentation scope attributes (# 5935)
  > 692cb35 otlptrace: Add instrumentation scope attributes (# 5934)
  > 3cc4857 opentracing: Make schemaURL and scope attributes as identifying for Tracer (# 5931)
  > 4f94b1e log/logtest: Add Attributes to ScopeRecords (# 5927)
  > 6a2f7de Make scope attributes as identifying for Logger (# 5925)
  > ee56fb9 Make scope attributes as identifying for Meter (# 5926)
  > 3742c54 Make scope attributes as identifying for Tracer (# 5924)
  > 30c0f3f sdk/instrumentation: Add Attributes to Scope (# 5903)
  > 078b2dd Add Cheng-Zhen as a triager (# 5922)
  > 5cf73e7 fix(deps): update module github.com/prometheus/common to v0.60.1 (# 5919)
  > c0f7c95 Switch arm builds out of actuated and into the CNCF runners (# 5923)
  > 664a075 Fix exemplars being added to gauge metrics in the prometheus exporter (# 5912)
  > 30c4a9a Allow additional context to be added when WithHeaders is used in OTLP gRPC traces exporter (# 5915)
  > 3429e15 Revert Cleanup interaction of exemplar and aggregation (# 5913)
  > 7a153a0 chore(deps): update benchmark-action/github-action-benchmark action to v1.20.4 (# 5916)
  > 97f8401 Keep metadata for gRPC in context for log signal (# 5911)
  > 86a51dc [chore] Remove unnecessary type declaration in templated transforms (# 5906)
  > 92ccad7 [chore] Use errors.Join to unify errors (# 5907)
  > 1a964cc chore(deps): update googleapis to 324edc3 (# 5908)
  > 8041156 Cleanup interaction of exemplar and aggregation (# 5899)
  > bf6a7e1 otlpmetricgrpc: Keep metadata for gRPC in context (# 5892)
  > bd88af9 Generate `semconv/v1.27.0` (# 5894)
  > 2578acc otel: conceal unwrapping for global async instrument registration (# 5881)
  > 81b2a33 Add selector of exemplar reservoir providers to metric.Stream configuration (# 5861)
  > cd754a6 Remove company from emeritus (# 5887)
  > a234754 chore(deps): update googleapis to 796eee8 (# 5888)
  > d70f3da fix(deps): update module github.com/prometheus/client_golang to v1.20.5 (# 5886)
  > ba4a2ab chore(deps): update lycheeverse/lychee-action action to v2.0.2 (# 5885)
  > fe5c3f8 Run the test compatibility check even if tests failed (# 5879)
  > b3c313f chore(deps): update lycheeverse/lychee-action action to v2.0.1 (# 5884)
  > 6b251b8 Allow configuring the exemplar filter on the metrics SDK (# 5850)
bumping knative.dev/hack/schema c142b48...5f7f0f5:
  > 5f7f0f5 Update community files (# 412)
  > b38a2ca Update community files (# 411)
bumping google.golang.org/protobuf 12c6ebd...259e665:
  > 259e665 all: release v1.36.4
  > 5f93d99 internal_gengo: avoid allocations in rawDescGZIP() accessors
  > 2005adb reflect/protodesc: fix panic when working with dynamicpb
  > aee8a9c internal_gengo: switch back from string literal to hex byte slice
  > 0c3cc2f internal_gengo: use unsafe.StringData() to avoid a descriptor copy
  > cc8d1c2 internal_gengo: store raw descriptor in .rodata section
  > 132f042 all: start v1.36.3-devel
  > 54ef969 all: release v1.36.3
  > 7cbd915 reflect/protodesc: fix panic when working with dynamicpb
  > 2f60868 proto: add example for GetExtension, SetExtension
  > de043b9 runtime/protolazy: replace internal doc link with external link
  > 42e0fa9 all: split flags.ProtoLegacyWeak out of flags.ProtoLegacy
  > 5fee2a7 internal/impl: remove unused exporter parameter
  > 84924f7 internal/impl: switch to reflect.Value.IsZero
  > fe8430d cmd/protoc-gen-go: remove json struct tags from unexported fields
  > 84f7738 internal/impl: clean up unneeded Go<1.12 MapRange() alternative
  > 9acc8f2 types/dynamicpb: switch atomicExtFiles to atomic.Uint64 type
  > ad89419 all: start v1.36.2-devel
bumping google.golang.org/genproto/googleapis/api 796eee8...19429a9:
  > 19429a9 chore(all): update all (# 1171)
  > e639e21 chore(all): update all (# 1170)
  > 65e8d21 Fix: GitHub workflow script injection (# 1169)
  > e0fbfb7 chore(all): update all (# 1168)
  > dd2ea8e chore(all): update all (# 1166)
  > 324edc3 chore(all): update all (# 1165)
bumping google.golang.org/grpc b615b35...98a0092:
  > 98a0092 Change version to 1.70.0 (# 7984)
  > bf380de Cherrypick # 7998,  # 8011, # 8010 into 1.70.x (# 8028)
  > 54b3eb9 experimental/credentials: Add credentials that don't enforce ALPN (# 7980) (# 8012)
  > 62b9185 clustetresolver: Copy endpoints.Addresses slice from DNS updates to avoid data races (# 7991) (# 8004)
  > 724f450 examples/features/csm_observability: use helloworld client and server instead of echo client and server (# 7945)
  > e8d5feb rbac: add method name to :path in headers (# 7965)
  > e912015 cleanup: Fix usages of non-constant format strings (# 7959)
  > 681334a cleanup: replace dial with newclient (# 7943)
  > 063d352 internal/resolver: introduce a new resolver to handle target URI and proxy address resolution (# 7857)
  > 10c7e13 outlierdetection: Support health listener for ejection updates (# 7908)
  > bce0535 test: Add a test for decompression exceeding max receive message size (# 7938)
  > f32168c envconfig: enable xDS client fallback by default (# 7949)
  > e957825 test: Workaround slow SRV lookups in flaking test (# 7957)
  > e5a4eb0 deps: update crypto dependency to resolve CVE-2024-45337 (# 7956)
  > 56a14ba cleanup: replace dial with newclient (# 7920)
  > b3bdacb test: switching to stubserver in tests instead of testservice (# 7925)
  > e8055ea grpcs: update `WithContextDialer` documentation to include using passthrough resolver (# 7916)
  > d0716f9 examples/features/csm_observability: Make CSM Observability example server listen on an IPV4 address (# 7933)
  > cc161de xds: Add support for multiple addresses per endpoint (# 7858)
  > 3f76275 xdsclient: stop caching xdsChannels for potential reuse, after all references are released (# 7924)
  > 7ee073d experimental/stats: re-add type aliases for migration (# 7929)
  > 38a8b9a health, grpc: Deliver health service updates through the health listener (# 7900)
  > c1b6b37 Update README.md (# 7921)
  > e4d084a examples: replace printf with print for log message in gracefulstop (# 7917)
  > b1f70ce test: replace grpc.Dial with grpc.NewClient
  > 0027558 internal/transport: replace integer status codes with http constants (# 7910)
  > 66ba4b2 examples/features/gracefulstop: add example to demonstrate server graceful stop (# 7865)
  > adad26d test/kokoro: Add psm-fallback build config (# 7899)
  > f53724d serviceconfig: Return errors instead of skipping invalid retry policy config (# 7905)
  > 645aadf deps: update dependencies for all modules (# 7904)
  > d7286fb Change version to 1.70.0-dev (# 7903)
bumping knative.dev/pkg c43477f...efddeac:
  > efddeac Update community files (# 3143)
  > e5aa25f Bump google.golang.org/grpc from 1.69.4 to 1.70.0 (# 3142)
  > 7fca699 Bump google.golang.org/protobuf from 1.36.3 to 1.36.4 (# 3141)
  > dcf1593 Update community files (# 3140)
  > 3386f37 Bump google.golang.org/protobuf from 1.36.2 to 1.36.3 (# 3139)
  > 1ca59d1 Bump google.golang.org/grpc from 1.69.2 to 1.69.4 (# 3138)
  > a37a847 drop use of code-generator/generate-groups.sh (# 3136)
bumping google.golang.org/genproto/googleapis/rpc 796eee8...19429a9:
  > 19429a9 chore(all): update all (# 1171)
  > e639e21 chore(all): update all (# 1170)
  > 65e8d21 Fix: GitHub workflow script injection (# 1169)
  > e0fbfb7 chore(all): update all (# 1168)
  > dd2ea8e chore(all): update all (# 1166)
  > 324edc3 chore(all): update all (# 1165)
bumping go.opentelemetry.io/otel bc2fe88...7cfbd86:
  > 7cfbd86 Release v1.32.0/v0.54.0/v0.8.0/v0.0.11 (# 5960)
  > 2be617e fix(deps): update github.com/opentracing-contrib/go-grpc/test digest to 51a56c3 (# 5959)
  > 6db18df fix(deps): update module github.com/opentracing-contrib/go-grpc to v0.1.0 (# 5958)
  > ef12bf8 chore(deps): update golang.org/x (# 5957)
  > 85eb76f Allow GC to collect unneeded slice elements (# 5804)
  > 1492efa Fix incorrect metrics getting generated from multiple readers (# 5900)
  > d2b0663 fix(deps): update module go.opentelemetry.io/build-tools/multimod to v0.15.0 (# 5951)
  > 394cbd2 chore(deps): update lycheeverse/lychee-action action to v2.1.0 (# 5950)
  > 37b2537 fix(deps): update github.com/opentracing-contrib/go-grpc digest to e3cbcab (# 5952)
  > 7f68356 fix(deps): update module go.opentelemetry.io/build-tools/semconvgen to v0.15.0 (# 5953)
  > 030ffdf fix(deps): update module go.opentelemetry.io/build-tools/crosslink to v0.15.0 (# 5948)
  > b89de2d fix(deps): update module go.opentelemetry.io/build-tools/gotmpl to v0.15.0 (# 5949)
  > b62a3fd Override insecure when endpoint URL is set (# 5944)
  > 937813d fix(deps): update github.com/opentracing-contrib/go-grpc digest to d08aa2b (# 5945)
  > ff07838 prometheus: Add instrumentation scope attributes to otel_scope_info (# 5932)
  > 1230566 log: Update package documentation (# 5942)
  > a62c45a chore(deps): update googleapis to dd2ea8e (# 5943)
  > 6e4c922 prometheus: Refactor getAttrs (# 5937)
  > 7fd5942 chore(deps): update module github.com/grpc-ecosystem/grpc-gateway/v2 to v2.23.0 (# 5939)
  > fb2b32b docs: updating outdated comments (# 5940)
  > 06ee6f2 Remove examples (# 5930)
  > 2a50fab otlplog: Add instrumentation scope attributes (# 5933)
  > afd1311 otlpmetric: Add instrumentation scope attributes (# 5935)
  > 692cb35 otlptrace: Add instrumentation scope attributes (# 5934)
  > 3cc4857 opentracing: Make schemaURL and scope attributes as identifying for Tracer (# 5931)
  > 4f94b1e log/logtest: Add Attributes to ScopeRecords (# 5927)
  > 6a2f7de Make scope attributes as identifying for Logger (# 5925)
  > ee56fb9 Make scope attributes as identifying for Meter (# 5926)
  > 3742c54 Make scope attributes as identifying for Tracer (# 5924)
  > 30c0f3f sdk/instrumentation: Add Attributes to Scope (# 5903)
  > 078b2dd Add Cheng-Zhen as a triager (# 5922)
  > 5cf73e7 fix(deps): update module github.com/prometheus/common to v0.60.1 (# 5919)
  > c0f7c95 Switch arm builds out of actuated and into the CNCF runners (# 5923)
  > 664a075 Fix exemplars being added to gauge metrics in the prometheus exporter (# 5912)
  > 30c4a9a Allow additional context to be added when WithHeaders is used in OTLP gRPC traces exporter (# 5915)
  > 3429e15 Revert Cleanup interaction of exemplar and aggregation (# 5913)
  > 7a153a0 chore(deps): update benchmark-action/github-action-benchmark action to v1.20.4 (# 5916)
  > 97f8401 Keep metadata for gRPC in context for log signal (# 5911)
  > 86a51dc [chore] Remove unnecessary type declaration in templated transforms (# 5906)
  > 92ccad7 [chore] Use errors.Join to unify errors (# 5907)
  > 1a964cc chore(deps): update googleapis to 324edc3 (# 5908)
  > 8041156 Cleanup interaction of exemplar and aggregation (# 5899)
  > bf6a7e1 otlpmetricgrpc: Keep metadata for gRPC in context (# 5892)
  > bd88af9 Generate `semconv/v1.27.0` (# 5894)
  > 2578acc otel: conceal unwrapping for global async instrument registration (# 5881)
  > 81b2a33 Add selector of exemplar reservoir providers to metric.Stream configuration (# 5861)
  > cd754a6 Remove company from emeritus (# 5887)
  > a234754 chore(deps): update googleapis to 796eee8 (# 5888)
  > d70f3da fix(deps): update module github.com/prometheus/client_golang to v1.20.5 (# 5886)
  > ba4a2ab chore(deps): update lycheeverse/lychee-action action to v2.0.2 (# 5885)
  > fe5c3f8 Run the test compatibility check even if tests failed (# 5879)
  > b3c313f chore(deps): update lycheeverse/lychee-action action to v2.0.1 (# 5884)
  > 6b251b8 Allow configuring the exemplar filter on the metrics SDK (# 5850)
bumping knative.dev/hack c142b48...5f7f0f5:
  > 5f7f0f5 Update community files (# 412)
  > b38a2ca Update community files (# 411)
bumping knative.dev/reconciler-test 4965c77...3424ad8:
  > 3424ad8 Update community files (# 784)
  > 02a296f Update community files (# 782)
  > 9896f38 Update community files (# 781)

Signed-off-by: Knative Automation <automation@knative.team>
2025-01-31 07:40:56 +00:00
Pierangelo Di Pilato 73357a60ae
Add `sinks.knative.dev` to namespaced ClusterRole (#8432)
These are roles that users can use to give their developers access
to Knative Eventing resources and we're missing the sinks group.

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2025-01-30 16:37:56 +00:00
Martin Gencur d243b910b2
JobSink with Istio config for Job spec (#8430) 2025-01-28 08:46:54 +00:00
Knative Automation c6363466c2
[main] Update community files (#8429)
Update community files

Signed-off-by: Knative Automation <automation@knative.team>
2025-01-28 01:34:58 +00:00
Ali Ok cdc6144d55
Rename `apiextentions` to `apiextensions` (#8428)
Signed-off-by: Ali Ok <aliok@redhat.com>
2025-01-27 16:08:55 +00:00
Knative Automation 1b3287eccd
[main] Update community files (#8424)
Update community files

Signed-off-by: Knative Automation <automation@knative.team>
2025-01-23 01:35:14 +00:00
Pierangelo Di Pilato 28c489edcd
Reduce mt-broker-controller memory usage with namespaced endpoint informer (#8418)
* Reduce mt-broker-controller memory usage with namespaced endpoint informer

Currently, the mt-broker-controller is using a cluster-wide endpoints
informer but it actually only uses endpoints in the "SYSTEM_NAMESPACE".

Using the namespaced informer factory ensures that the watcher
is only watching endpoints in the `knative-eventing` (also known as
`SYSTEM_NAMESPACE`) namespace.

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

* Start informer

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>

---------

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2025-01-22 16:17:10 +00:00
2961 changed files with 255197 additions and 79200 deletions

View File

@ -17,25 +17,15 @@ jobs:
fail-fast: false # Keep running if one leg fails.
matrix:
k8s-version:
- v1.30.8
- v1.31.4
- v1.32.x
- v1.33.x
test-suite:
- ./test/e2e
- ./test/conformance
- ./test/experimental
# Map between K8s and KinD versions.
# This is attempting to make it a bit clearer what's being tested.
# See: https://github.com/kubernetes-sigs/kind/releases/tag/v0.20.0
include:
- k8s-version: v1.30.8
kind-version: v0.26.0
kind-image-sha: sha256:17cd608b3971338d9180b00776cb766c50d0a0b6b904ab4ff52fd3fc5c6369bf
- k8s-version: v1.31.4
kind-version: v0.26.0
kind-image-sha: sha256:2cb39f7295fe7eafee0842b1052a599a4fb0f8bcf3f83d96c7f4864c357c6c30
# Add the flags we use for each of these test suites.
- test-suite: ./test/e2e
extra-test-flags: >
@ -55,7 +45,6 @@ jobs:
ARTIFACTS: ${{ github.workspace }}/artifacts
NODE_VERSION: ${{ matrix.k8s-version }}
NODE_SHA: ${{ matrix.kind-image-sha }}
steps:
- name: Set up Go
@ -63,26 +52,18 @@ jobs:
# Install the latest release of ko
- name: Install ko
uses: ko-build/setup-ko@v0.6
uses: ko-build/setup-ko@v0.9
- name: Check out code onto GOPATH
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Install KinD
run: |
set -x
# Disable swap otherwise memory enforcement doesn't work
# See: https://kubernetes.slack.com/archives/CEKK1KTN2/p1600009955324200
sudo swapoff -a
sudo rm -f /swapfile
curl -Lo ./kind https://github.com/kubernetes-sigs/kind/releases/download/${{ matrix.kind-version }}/kind-$(uname)-amd64
chmod +x ./kind
sudo mv kind /usr/local/bin
- name: Create KinD Cluster
run: ./hack/create-kind-cluster.sh
# TODO: replace with chainguard-dev/actions/setup-kind
uses: chainguard-dev/actions/setup-kind@16e2fd6603a1c6a1fbc880fdbb922b2e8e2be3e7 # main
with:
k8s-version: ${{ matrix.k8s-version }}
kind-worker-count: 1
cluster-suffix: c${{ github.run_id }}.local
- name: Install Knative Eventing
run: |

View File

@ -1,16 +1,11 @@
version: "2"
run:
timeout: 10m
build-tags:
- e2e
- probe
- preupgrade
- postupgrade
- postdowngrade
skip-dirs:
- pkg/client
linters:
enable:
- asciicheck
@ -20,10 +15,53 @@ linters:
- unparam
disable:
- errcheck
issues:
exclude-rules:
- path: test # Excludes /test, *_test.go etc.
linters:
- gosec
- unparam
settings:
staticcheck:
checks:
- all
- '-SA1019' # Temporary ignore SA1019: use of deprecated types or methods
- '-ST1003' # Temporary ignore ST1003: We have a lot of "Api" where it should be "API"
- '-ST1005' # Temporary ignore ST1005: error strings should not be capitalized
- '-ST1016' # Temporary ignore ST1016: methods on the same type should have the same receiver name
- '-ST1019' # Temporary ignore ST1019: multiple imports of a module with different names
- '-QF1002' # Temporary ignore QF1002: could use tagged switch
- '-QF1003' # Temporary ignore QF1003: Convert if/else-if chain to tagged switch
- '-QF1007' # Temporary ignore QF1007: merge conditional assignment into variable declaration
- '-QF1008' # Temporary ignore QF1008: Omit embedded fields from selector expression
- '-QF1009' # Temporary ignore QF1009: Merge conditional assignment into variable declaration
exclusions:
generated: lax
presets:
- comments
- common-false-positives
- legacy
- std-error-handling
rules:
- linters:
- gosec
- unparam
path: test
- linters:
- staticcheck
text: "ST1003" # A lot of "Api" instead of "API" names
path: pkg/reconciler/testing/v1/apiserversource.go
- linters:
- staticcheck
text: "ST1001" # Prohibit dot imports
path: test/e2e/helpers/.*_helper.go
- linters:
- staticcheck
text: "ST1001" # Prohibit dot imports
path: test/rekt/features/.*.go
paths:
- pkg/client
- third_party/
- builtin$
- examples$
formatters:
exclusions:
generated: lax
paths:
- third_party$
- builtin$
- examples$

View File

@ -6,10 +6,8 @@ aliases:
- itsmurugappan
client-wg-leads:
- dsimansk
- rhuss
client-writers:
- dsimansk
- rhuss
- vyasgun
docs-reviewers:
- nainaz
@ -23,6 +21,7 @@ aliases:
- cali0707
- creydr
eventing-wg-leads:
- creydr
- pierDipi
eventing-writers:
- Leo6Leo
@ -49,23 +48,23 @@ aliases:
knative-admin:
- aliok
- cardil
- davidhadas
- dprotaso
- dsimansk
- evankanderson
- gauron99
- knative-automation
- knative-prow-releaser-robot
- knative-prow-robot
- knative-prow-updater-robot
- knative-test-reporter-robot
- nainaz
- psschwei
- salaboy
- matzew
- nrrso
- skonto
- upodroid
knative-release-leads:
- dprotaso
- dsimansk
- gauron99
- skonto
knative-robots:
- knative-automation
@ -102,43 +101,31 @@ aliases:
- davidhadas
- evankanderson
serving-approvers:
- dsimansk
- skonto
serving-reviewers:
- izabelacg
- skonto
serving-triage:
- izabelacg
- skonto
serving-wg-leads:
- dprotaso
serving-writers:
- dprotaso
- dsimansk
- skonto
steering-committee:
- aliok
- davidhadas
- dprotaso
- dsimansk
- evankanderson
- nainaz
- psschwei
- salaboy
technical-oversight-committee:
- aliok
- davidhadas
- dprotaso
- dsimansk
- evankanderson
- nainaz
- psschwei
- salaboy
- matzew
- nrrso
ux-wg-leads:
- Leo6Leo
- cali0707
- leo6leo
- mmejia02
- zainabhusain227
ux-writers:
- Leo6Leo
- cali0707
- leo6leo
- mmejia02
- zainabhusain227

View File

@ -75,7 +75,7 @@ type envConfig struct {
PodName string `envconfig:"POD_NAME" required:"true"`
ContainerName string `envconfig:"CONTAINER_NAME" required:"true"`
Port int `envconfig:"INGRESS_PORT" default:"8080"`
MaxTTL int `envconfig:"MAX_TTL" default:"255"`
MaxTTL int32 `envconfig:"MAX_TTL" default:"255"`
HTTPPort int `envconfig:"INGRESS_PORT" default:"8080"`
HTTPSPort int `envconfig:"INGRESS_PORT_HTTPS" default:"8443"`
}
@ -171,7 +171,7 @@ func main() {
oidcTokenProvider := auth.NewOIDCTokenProvider(ctx)
authVerifier := auth.NewVerifier(ctx, eventpolicyinformer.Get(ctx).Lister(), trustBundleConfigMapLister, configMapWatcher)
handler, err = ingress.NewHandler(logger, reporter, broker.TTLDefaulter(logger, int32(env.MaxTTL)), brokerInformer, authVerifier, oidcTokenProvider, trustBundleConfigMapLister, ctxFunc)
handler, err = ingress.NewHandler(logger, reporter, broker.TTLDefaulter(logger, env.MaxTTL), brokerInformer, authVerifier, oidcTokenProvider, trustBundleConfigMapLister, ctxFunc)
if err != nil {
logger.Fatal("Error creating Handler", zap.Error(err))
}

View File

@ -20,15 +20,19 @@ import (
// Uncomment the following line to load the gcp plugin (only required to authenticate against GKE clusters).
// _ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
"knative.dev/eventing/pkg/certificates"
"knative.dev/pkg/injection/sharedmain"
filteredFactory "knative.dev/pkg/client/injection/kube/informers/factory/filtered"
kubefilteredfactory "knative.dev/pkg/client/injection/kube/informers/factory/filtered"
"knative.dev/pkg/signals"
eventingfilteredfactory "knative.dev/eventing/pkg/client/injection/informers/factory/filtered"
"knative.dev/eventing/pkg/apis/sinks"
"knative.dev/eventing/pkg/auth"
"knative.dev/eventing/pkg/eventingtls"
"knative.dev/eventing/pkg/reconciler/eventpolicy"
"knative.dev/eventing/pkg/reconciler/eventtransform"
"knative.dev/eventing/pkg/reconciler/jobsink"
"knative.dev/eventing/pkg/reconciler/apiserversource"
@ -49,10 +53,16 @@ import (
func main() {
ctx := signals.NewContext()
ctx = filteredFactory.WithSelectors(ctx,
ctx = kubefilteredfactory.WithSelectors(ctx,
auth.OIDCLabelSelector,
eventingtls.TrustBundleLabelSelector,
sinks.JobSinkJobsLabelSelector,
eventtransform.JsonataResourcesSelector,
certificates.SecretLabelSelectorPair,
)
ctx = eventingfilteredfactory.WithSelectors(ctx,
eventtransform.JsonataResourcesSelector,
)
sharedmain.MainWithContext(ctx, "controller",
@ -84,5 +94,8 @@ func main() {
// Sugar
sugarnamespace.NewController,
sugartrigger.NewController,
// Transform
eventtransform.NewController,
)
}

View File

@ -26,7 +26,9 @@ import (
eventingv1alpha1 "knative.dev/eventing/pkg/apis/eventing/v1alpha1"
flowsv1 "knative.dev/eventing/pkg/apis/flows/v1"
messagingv1 "knative.dev/eventing/pkg/apis/messaging/v1"
sinksv1alpha1 "knative.dev/eventing/pkg/apis/sinks/v1alpha1"
sourcesv1 "knative.dev/eventing/pkg/apis/sources/v1"
sourcesv1alpha1 "knative.dev/eventing/pkg/apis/sources/v1alpha1"
)
// schema is a tool to dump the schema for Eventing resources.
@ -40,15 +42,21 @@ func main() {
registry.Register(&messagingv1.Channel{})
registry.Register(&messagingv1.InMemoryChannel{})
// Sinks
registry.Register(&sinksv1alpha1.JobSink{})
registry.Register(&sinksv1alpha1.IntegrationSink{})
// Sources
registry.Register(&sourcesv1.ApiServerSource{})
registry.Register(&sourcesv1.SinkBinding{})
registry.Register(&sourcesv1.ContainerSource{}) // WARNING: THIS DOES NOT WORK OUT OF THE BOX: See https://github.com/knative/eventing/issues/5353.
registry.Register(&sourcesv1alpha1.IntegrationSource{})
// Flows
registry.Register(&flowsv1.Sequence{})
registry.Register(&flowsv1.Parallel{})
registry.Register(&eventingv1alpha1.EventPolicy{})
registry.Register(&eventingv1alpha1.EventTransform{})
if err := commands.New("knative.dev/eventing").Execute(); err != nil {
log.Fatal("Error during command execution: ", err)

View File

@ -79,7 +79,8 @@ func init() {
var ourTypes = map[schema.GroupVersionKind]resourcesemantics.GenericCRD{
// For group eventing.knative.dev.
// v1alpha1
eventingv1alpha1.SchemeGroupVersion.WithKind("EventPolicy"): &eventingv1alpha1.EventPolicy{},
eventingv1alpha1.SchemeGroupVersion.WithKind("EventPolicy"): &eventingv1alpha1.EventPolicy{},
eventingv1alpha1.SchemeGroupVersion.WithKind("EventTransform"): &eventingv1alpha1.EventTransform{},
// v1beta1
eventingv1beta1.SchemeGroupVersion.WithKind("EventType"): &eventingv1beta1.EventType{},
// v1beta2

View File

@ -45,6 +45,7 @@ func init() {
func main() {
flag.Parse()
//nolint:staticcheck
k_sink := os.Getenv("K_SINK")
if k_sink != "" {
sink = k_sink

View File

@ -0,0 +1 @@
./core/resources/eventtransform.yaml

View File

@ -0,0 +1 @@
../third_party/eventing-integrations-latest/eventing-integrations-images.yaml

View File

@ -0,0 +1 @@
../third_party/eventing-integrations-latest/eventing-transformations-images.yaml

View File

@ -1,48 +0,0 @@
# Copyright 2023 The Knative 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.
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: integration-sink-server-tls
namespace: knative-eventing
spec:
# Secret names are always required.
secretName: integration-sink-server-tls
secretTemplate:
labels:
app.kubernetes.io/component: integration-sink
app.kubernetes.io/name: knative-eventing
# Use 0m0s so that we don't run into https://github.com/cert-manager/cert-manager/issues/6408 on the operator
duration: 2160h0m0s # 90d
renewBefore: 360h0m0s # 15d
subject:
organizations:
- local
privateKey:
algorithm: RSA
encoding: PKCS1
size: 2048
rotationPolicy: Always
dnsNames:
- integration-sink.knative-eventing.svc.cluster.local
- integration-sink.knative-eventing.svc
issuerRef:
name: knative-eventing-ca-issuer
kind: ClusterIssuer
group: cert-manager.io

View File

@ -0,0 +1 @@
../../../third_party/eventing-integrations-latest/eventing-integrations-images.yaml

View File

@ -0,0 +1 @@
../../../third_party/eventing-integrations-latest/eventing-transformations-images.yaml

View File

@ -23,7 +23,7 @@ metadata:
app.kubernetes.io/version: devel
app.kubernetes.io/name: knative-eventing
annotations:
knative.dev/example-checksum: "f46cf09d"
knative.dev/example-checksum: "b7377954"
data:
_example: |
################################
@ -41,34 +41,45 @@ data:
# this example block and unindented to be in the data block
# to actually change the configuration.
# metrics.backend-destination field specifies the system metrics destination.
# It supports either prometheus (the default) or stackdriver.
# Note: Using stackdriver will incur additional charges
metrics.backend-destination: prometheus
# metrics-protocol field specifies the protocol used when exporting metrics
# It supports either 'none' (the default), 'prometheus', 'http/protobuf' (OTLP HTTP), 'grpc' (OTLP gRPC)
metrics-protocol: http/protobuf
# metrics.request-metrics-backend-destination specifies the request metrics
# destination. If non-empty, it enables queue proxy to send request metrics.
# Currently supported values: prometheus, stackdriver.
metrics.request-metrics-backend-destination: prometheus
# metrics-endpoint field specifies the destination metrics should be exported to.
#
# The endpoint MUST be set when the protocol is http/protobuf or grpc.
# The endpoint MUST NOT be set when the protocol is none.
#
# When the protocol is prometheus the endpoint can accept a 'host:port' string to customize the
# listening host interface and port.
metrics-endpoint: http://collector.otel.svc.cluster.local/
# metrics.stackdriver-project-id field specifies the stackdriver project ID. This
# field is optional. When running on GCE, application default credentials will be
# used if this field is not provided.
metrics.stackdriver-project-id: "<your stackdriver project id>"
# metrics.allow-stackdriver-custom-metrics indicates whether it is allowed to send metrics to
# Stackdriver using "global" resource type and custom metric type if the
# metrics are not supported by "knative_broker", "knative_trigger", and "knative_source" resource types.
# Setting this flag to "true" could cause extra Stackdriver charge.
# If metrics.backend-destination is not Stackdriver, this is ignored.
metrics.allow-stackdriver-custom-metrics: "false"
# profiling.enable indicates whether it is allowed to retrieve runtime profiling data from
# the pods via an HTTP server in the format expected by the pprof visualization tool. When
# enabled, the Knative Eventing pods expose the profiling data on an alternate HTTP port 8008.
# The HTTP context root for profiling is then /debug/pprof/.
profiling.enable: "false"
# metrics-export-interval specifies the global metrics reporting period for control and data plane components.
# If a zero or negative value is passed the default reporting OTel period is used (60 secs).
metrics-export-interval: 60s
# sink-event-error-reporting.enable whether the adapter reports a kube event to the CRD indicating
# a failure to send a cloud event to the sink.
sink-event-error-reporting.enable: "false"
# runtime-profiling indicates whether it is allowed to retrieve runtime profiling data from
# the pods via an HTTP server in the format expected by the pprof visualization tool. When
# enabled, the Knative Eventing pods expose the profiling data on an alternate HTTP port 8008.
# The HTTP context root for profiling is then /debug/pprof/.
runtime-profiling: enabled
# tracing-protocol field specifies the protocol used when exporting traces
# It supports either 'none' (the default), 'prometheus', 'http/protobuf' (OTLP HTTP), 'grpc' (OTLP gRPC)
# or `stdout` for debugging purposes
tracing-protocol: http/protobuf
# tracing-endpoint field specifies the destination traces should be exporter to.
#
# The endpoint MUST be set when the protocol is http/protobuf or grpc.
# The endpoint MUST NOT be set when the protocol is none.
tracing-endpoint: http://jaeger-collector.observability:4318/v1/traces
# tracing-sampling-rate allows the user to specify what percentage of all traces should be exported
# The value should be between 0 (never sample) to 1 (always sample)
tracing-sampling-rate: "1"

View File

@ -23,33 +23,11 @@ metadata:
app.kubernetes.io/version: devel
app.kubernetes.io/name: knative-eventing
annotations:
knative.dev/example-checksum: "0492ceb0"
knative.dev/example-checksum: "04c7e9a3"
data:
_example: |
################################
# #
# EXAMPLE CONFIGURATION #
# #
################################
# This block is not actually functional configuration,
# but serves to illustrate the available configuration
# options and document them in a way that is accessible
# to users that `kubectl edit` this config map.
#
# These sample configuration options may be copied out of
# this example block and unindented to be in the data block
# to actually change the configuration.
#
# This may be "zipkin" or "none". the default is "none"
backend: "none"
# URL to zipkin collector where traces are sent.
# This must be specified when backend is "zipkin"
zipkin-endpoint: "http://zipkin.istio-system.svc.cluster.local:9411/api/v2/spans"
# Enable zipkin debug mode. This allows all spans to be sent to the server
# bypassing sampling.
debug: "false"
# Percentage (0-1) of requests to trace
sample-rate: "0.1"
###########################################################
# #
# This config is deprecated - use config-observability #
# #
###########################################################

View File

@ -77,6 +77,59 @@ spec:
fieldRef:
fieldPath: metadata.name
- name: EVENT_TRANSFORM_JSONATA_IMAGE
valueFrom:
configMapKeyRef:
key: transform-jsonata
name: eventing-transformations-images
- name: INTEGRATION_SOURCE_TIMER_IMAGE
valueFrom:
configMapKeyRef:
key: timer-source
name: eventing-integrations-images
- name: INTEGRATION_SOURCE_AWS_S3_IMAGE
valueFrom:
configMapKeyRef:
key: aws-s3-source
name: eventing-integrations-images
- name: INTEGRATION_SOURCE_AWS_SQS_IMAGE
valueFrom:
configMapKeyRef:
key: aws-sqs-source
name: eventing-integrations-images
- name: INTEGRATION_SOURCE_AWS_DDB_STREAMS_IMAGE
valueFrom:
configMapKeyRef:
key: aws-ddb-streams-source
name: eventing-integrations-images
- name: INTEGRATION_SINK_LOG_IMAGE
valueFrom:
configMapKeyRef:
key: log-sink
name: eventing-integrations-images
- name: INTEGRATION_SINK_AWS_S3_IMAGE
valueFrom:
configMapKeyRef:
key: aws-s3-sink
name: eventing-integrations-images
- name: INTEGRATION_SINK_AWS_SQS_IMAGE
valueFrom:
configMapKeyRef:
key: aws-sqs-sink
name: eventing-integrations-images
- name: INTEGRATION_SINK_AWS_SNS_IMAGE
valueFrom:
configMapKeyRef:
key: aws-sns-sink
name: eventing-integrations-images
## Adapter settings
# - name: K_LOGGING_CONFIG

View File

@ -0,0 +1,281 @@
# Copyright 2025 The Knative 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.
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: eventtransforms.eventing.knative.dev
labels:
knative.dev/crd-install: "true"
duck.knative.dev/addressable: "true"
app.kubernetes.io/version: devel
app.kubernetes.io/name: knative-eventing
spec:
group: eventing.knative.dev
versions:
- name: v1alpha1
served: true
storage: true
subresources:
status: { }
schema:
openAPIV3Schema:
type: object
properties:
spec:
description: Spec defines the desired state of the EventTransform.
type: object
properties:
jsonata:
type: object
properties:
expression:
description: Expression is the JSONata expression (https://jsonata.org/).
type: string
reply:
description: |
Reply is the configuration on how to handle responses from Sink. It can only be set if Sink is set.
Only one "type" can be used.
The used type must match the top-level transformation, if you need to mix transformation types, use compositions and chain transformations together to achieve your desired outcome.
type: object
properties:
jsonata:
type: object
properties:
expression:
description: Expression is the JSONata expression (https://jsonata.org/).
type: string
discard:
description: |
Discard discards responses from Sink and return empty response body.
When set to false, it returns the exact sink response body.
When set to true, Discard is mutually exclusive with EventTransformations in the reply
section, it can either be discarded or transformed.
Default: false.
type: boolean
sink:
description: 'Sink is a reference to an object that will resolve to a uri to use as the sink. If not present, the transformation will send back the transformed event as response, this is useful to leverage the built-in Broker reply feature to re-publish a transformed event back to the broker. '
type: object
properties:
CACerts:
description: CACerts are Certification Authority (CA) certificates in PEM format according to https://www.rfc-editor.org/rfc/rfc7468. If set, these CAs are appended to the set of CAs provided by the Addressable target, if any.
type: string
audience:
description: Audience is the OIDC audience. This need only be set, if the target is not an Addressable and thus the Audience can't be received from the Addressable itself. In case the Addressable specifies an Audience too, the Destinations Audience takes preference.
type: string
ref:
description: Ref points to an Addressable.
type: object
properties:
address:
description: Address points to a specific Address Name.
type: string
apiVersion:
description: API version of the referent.
type: string
group:
description: 'Group of the API, without the version of the group. This can be used as an alternative to the APIVersion, and then resolved using ResolveGroup. Note: This API is EXPERIMENTAL and might break anytime. For more details: https://github.com/knative/eventing/issues/5086'
type: string
kind:
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
namespace:
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ This is optional field, it gets defaulted to the object holding it if left out.'
type: string
uri:
description: URI can be an absolute URL(non-empty scheme and non-empty host) pointing to the target or a relative URI. Relative URIs will be resolved using the base URI retrieved from Ref.
type: string
status:
description: Status represents the current state of the EventTransform. This data may be out of date.
type: object
properties:
address:
description: Address is a single Addressable address. If Addresses is present, Address will be ignored by clients.
type: object
required:
- url
properties:
CACerts:
description: CACerts is the Certification Authority (CA) certificates in PEM format according to https://www.rfc-editor.org/rfc/rfc7468.
type: string
audience:
description: Audience is the OIDC audience for this address.
type: string
name:
description: Name is the name of the address.
type: string
url:
type: string
addresses:
description: Addresses is a list of addresses for different protocols (HTTP and HTTPS) If Addresses is present, Address must be ignored by clients.
type: array
items:
type: object
required:
- url
properties:
CACerts:
description: CACerts is the Certification Authority (CA) certificates in PEM format according to https://www.rfc-editor.org/rfc/rfc7468.
type: string
audience:
description: Audience is the OIDC audience for this address.
type: string
name:
description: Name is the name of the address.
type: string
url:
type: string
annotations:
description: Annotations is additional Status fields for the Resource to save some additional State as well as convey more information to the user. This is roughly akin to Annotations on any k8s resource, just the reconciler conveying richer information outwards.
type: object
x-kubernetes-preserve-unknown-fields: true
auth:
description: Auth defines the attributes that provide the generated service account name in the resource status.
type: object
required:
- serviceAccountName
properties:
serviceAccountName:
description: ServiceAccountName is the name of the generated service account used for this components OIDC authentication.
type: string
serviceAccountNames:
description: ServiceAccountNames is the list of names of the generated service accounts used for this components OIDC authentication. This list can have len() > 1, when the component uses multiple identities (e.g. in case of a Parallel).
type: array
items:
type: string
conditions:
description: Conditions the latest available observations of a resource's current state.
type: array
items:
type: object
required:
- type
- status
properties:
lastTransitionTime:
description: LastTransitionTime is the last time the condition transitioned from one status to another. We use VolatileTime in place of metav1.Time to exclude this from creating equality.Semantic differences (all other things held constant).
type: string
message:
description: A human readable message indicating details about the transition.
type: string
reason:
description: The reason for the condition's last transition.
type: string
severity:
description: Severity with which to treat failures of this type of condition. When this is not specified, it defaults to Error.
type: string
status:
description: Status of the condition, one of True, False, Unknown.
type: string
type:
description: Type of condition.
type: string
jsonata:
description: JsonataTransformationStatus is the status associated with JsonataEventTransformationSpec.
type: object
properties:
deployment:
type: object
properties:
availableReplicas:
description: Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.
type: integer
format: int32
collisionCount:
description: Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.
type: integer
format: int32
conditions:
description: Represents the latest available observations of a deployment's current state.
type: array
items:
type: object
properties:
lastTransitionTime:
description: Last time the condition transitioned from one status to another.
type: string
lastUpdateTime:
description: The last time this condition was updated.
type: string
message:
description: A human readable message indicating details about the transition.
type: string
reason:
description: The reason for the condition's last transition.
type: string
status:
description: Status of the condition, one of True, False, Unknown.
type: string
type:
description: Type of deployment condition.
type: string
observedGeneration:
description: The generation observed by the deployment controller.
type: integer
format: int64
readyReplicas:
description: readyReplicas is the number of pods targeted by this Deployment with a Ready Condition.
type: integer
format: int32
replicas:
description: Total number of non-terminated pods targeted by this deployment (their labels match the selector).
type: integer
format: int32
unavailableReplicas:
description: Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.
type: integer
format: int32
updatedReplicas:
description: Total number of non-terminated pods targeted by this deployment that have the desired template spec.
type: integer
format: int32
observedGeneration:
description: ObservedGeneration is the 'Generation' of the Service that was last processed by the controller.
type: integer
format: int64
sinkAudience:
description: SinkAudience is the OIDC audience of the sink.
type: string
sinkCACerts:
description: SinkCACerts are Certification Authority (CA) certificates in PEM format according to https://www.rfc-editor.org/rfc/rfc7468.
type: string
sinkUri:
description: SinkURI is the current active sink URI that has been configured for the Source.
type: string
additionalPrinterColumns:
- name: URL
type: string
jsonPath: ".status.address.url"
- name: Sink
type: string
jsonPath: ".status.sinkUri"
- name: Ready
type: string
jsonPath: ".status.conditions[?(@.type==\"Ready\")].status"
- name: Reason
type: string
jsonPath: ".status.conditions[?(@.type==\"Ready\")].reason"
names:
kind: EventTransform
plural: eventtransforms
singular: eventtransform
categories:
- all
- knative
- eventing
scope: Namespaced

View File

@ -322,6 +322,10 @@ spec:
name:
description: 'Secret name'
type: string
template:
type: object
x-kubernetes-preserve-unknown-fields: true
description: 'A template in the shape of `Deployment.spec.template` to be used for this ContainerSource. More info: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/'
status:
type: object
properties:
@ -399,10 +403,10 @@ spec:
jsonPath: ".status.sinkUri"
- name: Age
type: date
jsonPath: .metadata.creationTimestamp
jsonPath: ".metadata.creationTimestamp"
- name: Ready
type: string
jsonPath: ".status.conditions[?(@.type==\"Ready\")].status"
jsonPath: ".status.conditions[?(@.type=='Ready')].status"
- name: Reason
type: string
jsonPath: ".status.conditions[?(@.type=='Ready')].reason"

View File

@ -188,3 +188,25 @@ rules:
- get
- list
- watch
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: eventtransforms-addressable-resolver
labels:
duck.knative.dev/addressable: "true"
app.kubernetes.io/version: devel
app.kubernetes.io/name: knative-eventing
# Do not use this role directly. These rules will be added to the "addressable-resolver" role.
rules:
- apiGroups:
- eventing.knative.dev
resources:
- eventtransforms
- eventtransforms/status
verbs:
- get
- list
- watch

View File

@ -79,6 +79,19 @@ rules:
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: knative-sinks-namespaced-admin
labels:
rbac.authorization.k8s.io/aggregate-to-admin: "true"
app.kubernetes.io/version: devel
app.kubernetes.io/name: knative-eventing
rules:
- apiGroups: ["sinks.knative.dev"]
resources: ["*"]
verbs: ["*"]
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: knative-eventing-namespaced-edit
labels:
@ -86,7 +99,7 @@ metadata:
app.kubernetes.io/version: devel
app.kubernetes.io/name: knative-eventing
rules:
- apiGroups: ["eventing.knative.dev", "messaging.knative.dev", "sources.knative.dev", "flows.knative.dev", "bindings.knative.dev"]
- apiGroups: ["eventing.knative.dev", "messaging.knative.dev", "sources.knative.dev", "flows.knative.dev", "bindings.knative.dev", "sinks.knative.dev"]
resources: ["*"]
verbs: ["create", "update", "patch", "delete"]
---
@ -99,6 +112,6 @@ metadata:
app.kubernetes.io/version: devel
app.kubernetes.io/name: knative-eventing
rules:
- apiGroups: ["eventing.knative.dev", "messaging.knative.dev", "sources.knative.dev", "flows.knative.dev", "bindings.knative.dev"]
- apiGroups: ["eventing.knative.dev", "messaging.knative.dev", "sources.knative.dev", "flows.knative.dev", "bindings.knative.dev", "sinks.knative.dev"]
resources: ["*"]
verbs: ["get", "list", "watch"]

View File

@ -64,11 +64,13 @@ rules:
- "list"
- "watch"
# PingSource controller manipulates Deployment owner reference
# PingSource and EventTransform controllers manipulate Deployment and ConfigMap owner reference
- apiGroups:
- "apps"
- ""
resources:
- "deployments/finalizers"
- "configmaps/finalizers"
verbs:
- "update"
@ -99,6 +101,8 @@ rules:
- "eventtypes/status"
- "eventpolicies"
- "eventpolicies/status"
- "eventtransforms"
- "eventtransforms/status"
verbs:
- "get"
- "list"
@ -130,6 +134,23 @@ rules:
resources:
- "brokers/finalizers"
- "triggers/finalizers"
- "eventtransforms/finalizers"
verbs:
- "update"
# EventTransform controller manipulates SinkBinding owner reference
- apiGroups:
- "sources.knative.dev"
resources:
- "sinkbindings/finalizers"
verbs:
- "update"
# EventTransform controller manipulates Service owner reference
- apiGroups:
- ""
resources:
- "services/finalizers"
verbs:
- "update"
@ -221,3 +242,37 @@ rules:
- "delete"
- "patch"
- "watch"
- apiGroups:
- "cert-manager.io"
resources:
- "certificates"
verbs:
- "get"
- "list"
- "create"
- "update"
- "delete"
- "patch"
- "watch"
# EventTransform controller manipulates Certificate owner reference
- apiGroups:
- "cert-manager.io"
resources:
- "certificates/finalizers"
verbs:
- "update"
- apiGroups:
- "acme.cert-manager.io"
resources:
- "challenges"
verbs:
- "get"
- "list"
- "create"
- "update"
- "delete"
- "patch"
- "watch"

View File

@ -16,4 +16,6 @@ limitations under the License.
// Package post_install is a placeholder that allows us to pull in config files
// via go mod vendor.
//
//nolint:staticcheck
package post_install

View File

@ -41,6 +41,9 @@ spec:
containers:
- name: migrate
image: ko://knative.dev/pkg/apiextensions/storageversion/cmd/migrate
env:
- name: IGNORE_NOT_FOUND
value: "true"
args:
- "apiserversources.sources.knative.dev"
- "brokers.eventing.knative.dev"

View File

@ -2649,6 +2649,8 @@ Resource Types:
<ul><li>
<a href="#eventing.knative.dev/v1alpha1.EventPolicy">EventPolicy</a>
</li><li>
<a href="#eventing.knative.dev/v1alpha1.EventTransform">EventTransform</a>
</li><li>
<a href="#eventing.knative.dev/v1alpha1.RequestReply">RequestReply</a>
</li></ul>
<h3 id="eventing.knative.dev/v1alpha1.EventPolicy">EventPolicy
@ -2778,6 +2780,133 @@ This data may be out of date.</p>
</tr>
</tbody>
</table>
<h3 id="eventing.knative.dev/v1alpha1.EventTransform">EventTransform
</h3>
<p>
<p>EventTransform represents an even transformation.</p>
</p>
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>apiVersion</code><br/>
string</td>
<td>
<code>
eventing.knative.dev/v1alpha1
</code>
</td>
</tr>
<tr>
<td>
<code>kind</code><br/>
string
</td>
<td><code>EventTransform</code></td>
</tr>
<tr>
<td>
<code>metadata</code><br/>
<em>
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#objectmeta-v1-meta">
Kubernetes meta/v1.ObjectMeta
</a>
</em>
</td>
<td>
<em>(Optional)</em>
Refer to the Kubernetes API documentation for the fields of the
<code>metadata</code> field.
</td>
</tr>
<tr>
<td>
<code>spec</code><br/>
<em>
<a href="#eventing.knative.dev/v1alpha1.EventTransformSpec">
EventTransformSpec
</a>
</em>
</td>
<td>
<p>Spec defines the desired state of the EventTransform.</p>
<br/>
<br/>
<table>
<tr>
<td>
<code>sink</code><br/>
<em>
<a href="https://pkg.go.dev/knative.dev/pkg/apis/duck/v1#Destination">
knative.dev/pkg/apis/duck/v1.Destination
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>Sink is a reference to an object that will resolve to a uri to use as the sink.</p>
<p>If not present, the transformation will send back the transformed event as response, this
is useful to leverage the built-in Broker reply feature to re-publish a transformed event
back to the broker.</p>
</td>
</tr>
<tr>
<td>
<code>reply</code><br/>
<em>
<a href="#eventing.knative.dev/v1alpha1.ReplySpec">
ReplySpec
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>Reply is the configuration on how to handle responses from Sink.
It can only be set if Sink is set.</p>
</td>
</tr>
<tr>
<td>
<code>EventTransformations</code><br/>
<em>
<a href="#eventing.knative.dev/v1alpha1.EventTransformations">
EventTransformations
</a>
</em>
</td>
<td>
<p>
(Members of <code>EventTransformations</code> are embedded into this type.)
</p>
<p>EventTransformations contain all possible transformations, only one &ldquo;type&rdquo; can be used.</p>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<code>status</code><br/>
<em>
<a href="#eventing.knative.dev/v1alpha1.EventTransformStatus">
EventTransformStatus
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>Status represents the current state of the EventTransform.
This data may be out of date.</p>
</td>
</tr>
</tbody>
</table>
<h3 id="eventing.knative.dev/v1alpha1.RequestReply">RequestReply
</h3>
<p>
@ -3273,6 +3402,282 @@ More info: <a href="https://kubernetes.io/docs/concepts/overview/working-with-ob
</tr>
</tbody>
</table>
<h3 id="eventing.knative.dev/v1alpha1.EventTransformSpec">EventTransformSpec
</h3>
<p>
(<em>Appears on:</em><a href="#eventing.knative.dev/v1alpha1.EventTransform">EventTransform</a>)
</p>
<p>
</p>
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>sink</code><br/>
<em>
<a href="https://pkg.go.dev/knative.dev/pkg/apis/duck/v1#Destination">
knative.dev/pkg/apis/duck/v1.Destination
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>Sink is a reference to an object that will resolve to a uri to use as the sink.</p>
<p>If not present, the transformation will send back the transformed event as response, this
is useful to leverage the built-in Broker reply feature to re-publish a transformed event
back to the broker.</p>
</td>
</tr>
<tr>
<td>
<code>reply</code><br/>
<em>
<a href="#eventing.knative.dev/v1alpha1.ReplySpec">
ReplySpec
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>Reply is the configuration on how to handle responses from Sink.
It can only be set if Sink is set.</p>
</td>
</tr>
<tr>
<td>
<code>EventTransformations</code><br/>
<em>
<a href="#eventing.knative.dev/v1alpha1.EventTransformations">
EventTransformations
</a>
</em>
</td>
<td>
<p>
(Members of <code>EventTransformations</code> are embedded into this type.)
</p>
<p>EventTransformations contain all possible transformations, only one &ldquo;type&rdquo; can be used.</p>
</td>
</tr>
</tbody>
</table>
<h3 id="eventing.knative.dev/v1alpha1.EventTransformStatus">EventTransformStatus
</h3>
<p>
(<em>Appears on:</em><a href="#eventing.knative.dev/v1alpha1.EventTransform">EventTransform</a>)
</p>
<p>
<p>EventTransformStatus represents the current state of a EventTransform.</p>
</p>
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>SourceStatus</code><br/>
<em>
<a href="https://pkg.go.dev/knative.dev/pkg/apis/duck/v1#SourceStatus">
knative.dev/pkg/apis/duck/v1.SourceStatus
</a>
</em>
</td>
<td>
<p>
(Members of <code>SourceStatus</code> are embedded into this type.)
</p>
<p>SourceStatus inherits duck/v1 SourceStatus, which currently provides:
* ObservedGeneration - the &lsquo;Generation&rsquo; of the Service that was last
processed by the controller.
* Conditions - the latest available observations of a resource&rsquo;s current
state.
* SinkURI - the current active sink URI that has been configured for the
Source.</p>
</td>
</tr>
<tr>
<td>
<code>AddressStatus</code><br/>
<em>
<a href="https://pkg.go.dev/knative.dev/pkg/apis/duck/v1#AddressStatus">
knative.dev/pkg/apis/duck/v1.AddressStatus
</a>
</em>
</td>
<td>
<p>
(Members of <code>AddressStatus</code> are embedded into this type.)
</p>
<em>(Optional)</em>
<p>AddressStatus is the part where the EventTransform fulfills the Addressable contract.
It exposes the endpoint as an URI to get events delivered.</p>
</td>
</tr>
<tr>
<td>
<code>jsonata</code><br/>
<em>
<a href="#eventing.knative.dev/v1alpha1.JsonataEventTransformationStatus">
JsonataEventTransformationStatus
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>JsonataTransformationStatus is the status associated with JsonataEventTransformationSpec.</p>
</td>
</tr>
</tbody>
</table>
<h3 id="eventing.knative.dev/v1alpha1.EventTransformations">EventTransformations
</h3>
<p>
(<em>Appears on:</em><a href="#eventing.knative.dev/v1alpha1.EventTransformSpec">EventTransformSpec</a>, <a href="#eventing.knative.dev/v1alpha1.ReplySpec">ReplySpec</a>)
</p>
<p>
</p>
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>jsonata</code><br/>
<em>
<a href="#eventing.knative.dev/v1alpha1.JsonataEventTransformationSpec">
JsonataEventTransformationSpec
</a>
</em>
</td>
<td>
</td>
</tr>
</tbody>
</table>
<h3 id="eventing.knative.dev/v1alpha1.JsonataEventTransformationSpec">JsonataEventTransformationSpec
</h3>
<p>
(<em>Appears on:</em><a href="#eventing.knative.dev/v1alpha1.EventTransformations">EventTransformations</a>)
</p>
<p>
</p>
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>expression</code><br/>
<em>
string
</em>
</td>
<td>
<p>Expression is the JSONata expression.</p>
</td>
</tr>
</tbody>
</table>
<h3 id="eventing.knative.dev/v1alpha1.JsonataEventTransformationStatus">JsonataEventTransformationStatus
</h3>
<p>
(<em>Appears on:</em><a href="#eventing.knative.dev/v1alpha1.EventTransformStatus">EventTransformStatus</a>)
</p>
<p>
</p>
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>deployment</code><br/>
<em>
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#deploymentstatus-v1-apps">
Kubernetes apps/v1.DeploymentStatus
</a>
</em>
</td>
<td>
</td>
</tr>
</tbody>
</table>
<h3 id="eventing.knative.dev/v1alpha1.ReplySpec">ReplySpec
</h3>
<p>
(<em>Appears on:</em><a href="#eventing.knative.dev/v1alpha1.EventTransformSpec">EventTransformSpec</a>)
</p>
<p>
<p>ReplySpec is the configurations on how to handle responses from Sink.</p>
</p>
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>EventTransformations</code><br/>
<em>
<a href="#eventing.knative.dev/v1alpha1.EventTransformations">
EventTransformations
</a>
</em>
</td>
<td>
<p>
(Members of <code>EventTransformations</code> are embedded into this type.)
</p>
<p>EventTransformations for replies from the Sink, contain all possible transformations,
only one &ldquo;type&rdquo; can be used.</p>
<p>The used type must match the top-level transformation, if you need to mix transformation types,
use compositions and chain transformations together to achieve your desired outcome.</p>
</td>
</tr>
<tr>
<td>
<code>discard</code><br/>
<em>
bool
</em>
</td>
<td>
<em>(Optional)</em>
<p>Discard discards responses from Sink and return empty response body.</p>
<p>When set to false, it returns the exact sink response body.
When set to true, Discard is mutually exclusive with EventTransformations in the reply
section, it can either be discarded or transformed.</p>
<p>Default: false.</p>
</td>
</tr>
</tbody>
</table>
<h3 id="eventing.knative.dev/v1alpha1.RequestReplySpec">RequestReplySpec
</h3>
<p>
@ -8134,6 +8539,18 @@ Timer
<p>AWS source configuration</p>
</td>
</tr>
<tr>
<td>
<code>template</code><br/>
<em>
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#podtemplatespec-v1-core">
Kubernetes core/v1.PodTemplateSpec
</a>
</em>
</td>
<td>
</td>
</tr>
</table>
</td>
</tr>
@ -8272,6 +8689,18 @@ Timer
<p>AWS source configuration</p>
</td>
</tr>
<tr>
<td>
<code>template</code><br/>
<em>
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#podtemplatespec-v1-core">
Kubernetes core/v1.PodTemplateSpec
</a>
</em>
</td>
<td>
</td>
</tr>
</tbody>
</table>
<h3 id="sources.knative.dev/v1alpha1.IntegrationSourceStatus">IntegrationSourceStatus

View File

@ -14,7 +14,7 @@ In the following the control plane components and their responsibilities are des
The `mt-broker-controller` is kind of the heart of the MTChannelBasedBroker control plane and has the following responsibilities:
* Watches for new `Broker` resources with the `eventing.kantive.dev/broker.class: MTChannelBasedBroker` annotation (step 2 in the diagram) and creates a new _concrete_ channel resource (step 3 in the diagram) depending on the `channel-template-spec` from the configmap referenced in the `config-br-defaults` configmap (by default this points to `config-br-default-channel`).
* Watches for new `Broker` resources with the `eventing.knative.dev/broker.class: MTChannelBasedBroker` annotation (step 2 in the diagram) and creates a new _concrete_ channel resource (step 3 in the diagram) depending on the `channel-template-spec` from the configmap referenced in the `config-br-defaults` configmap (by default this points to `config-br-default-channel`).
Be aware that in case the default `brokerClass` in `config-br-defaults` is not set to `MTChannelBasedBroker`, the referenced configmap still must contain a `channel-template-spec`. Otherwise the user needs to define the corresponding config on the broker resource directly when using the `MTChannelBasedBroker` broker class, e.g.:

124
go.mod
View File

@ -1,21 +1,21 @@
module knative.dev/eventing
go 1.22.7
go 1.24.0
require (
github.com/ahmetb/gen-crd-api-reference-docs v0.3.1-0.20210420163308-c1402a70e2f1
github.com/cloudevents/conformance v0.2.0
github.com/cert-manager/cert-manager v1.16.3
github.com/cloudevents/conformance v0.4.1
github.com/cloudevents/sdk-go/observability/opencensus/v2 v2.15.2
github.com/cloudevents/sdk-go/protocol/mqtt_paho/v2 v2.0.0-20240508060731-1ed9471c98bd
github.com/cloudevents/sdk-go/sql/v2 v2.0.0-20240712172937-3ce6b2f1f011
github.com/cloudevents/sdk-go/v2 v2.15.2
github.com/coreos/go-oidc/v3 v3.9.0
github.com/eclipse/paho.golang v0.12.0
github.com/go-jose/go-jose/v3 v3.0.3
github.com/google/go-cmp v0.6.0
github.com/google/gofuzz v1.2.0
github.com/go-jose/go-jose/v3 v3.0.4
github.com/google/go-cmp v0.7.0
github.com/google/uuid v1.6.0
github.com/gorilla/websocket v1.5.1
github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674
github.com/hashicorp/go-cleanhttp v0.5.2
github.com/hashicorp/go-retryablehttp v0.7.7
github.com/hashicorp/golang-lru v1.0.2
@ -27,27 +27,32 @@ require (
github.com/pkg/errors v0.9.1
github.com/rickb777/date v1.13.0
github.com/robfig/cron/v3 v3.0.1
github.com/stretchr/testify v1.9.0
github.com/stretchr/testify v1.10.0
github.com/wavesoftware/go-ensure v1.0.0
go.opencensus.io v0.24.0
go.opentelemetry.io/otel v1.31.0
go.opentelemetry.io/otel/trace v1.31.0
go.opentelemetry.io/contrib/instrumentation/runtime v0.62.0
go.opentelemetry.io/otel v1.37.0
go.opentelemetry.io/otel/sdk v1.37.0
go.opentelemetry.io/otel/sdk/metric v1.37.0
go.opentelemetry.io/otel/trace v1.37.0
go.uber.org/atomic v1.10.0
go.uber.org/multierr v1.11.0
go.uber.org/zap v1.27.0
golang.org/x/net v0.34.0
golang.org/x/sync v0.10.0
k8s.io/api v0.31.4
k8s.io/apiextensions-apiserver v0.31.4
k8s.io/apimachinery v0.31.4
k8s.io/apiserver v0.31.4
k8s.io/client-go v0.31.4
k8s.io/utils v0.0.0-20240711033017-18e509b52bc8
knative.dev/hack v0.0.0-20250116150306-c142b4835bc5
knative.dev/hack/schema v0.0.0-20250116150306-c142b4835bc5
knative.dev/pkg v0.0.0-20250117084104-c43477f0052b
knative.dev/reconciler-test v0.0.0-20250117161605-4965c77b4dfa
sigs.k8s.io/yaml v1.4.0
golang.org/x/net v0.41.0
golang.org/x/sync v0.15.0
k8s.io/api v0.33.1
k8s.io/apiextensions-apiserver v0.33.1
k8s.io/apimachinery v0.33.1
k8s.io/apiserver v0.33.1
k8s.io/client-go v0.33.1
k8s.io/code-generator v0.33.1
k8s.io/utils v0.0.0-20241210054802-24370beab758
knative.dev/hack v0.0.0-20250708013849-70d4b00da6ba
knative.dev/hack/schema v0.0.0-20250708013849-70d4b00da6ba
knative.dev/pkg v0.0.0-20250708013613-d3550d4350f9
knative.dev/reconciler-test v0.0.0-20250708152404-d97d9007b8d3
sigs.k8s.io/randfill v1.0.0
sigs.k8s.io/yaml v1.5.0
)
require (
@ -58,15 +63,19 @@ require (
github.com/beorn7/perks v1.0.1 // indirect
github.com/blang/semver/v4 v4.0.0 // indirect
github.com/blendle/zapdriver v1.3.1 // indirect
github.com/cenkalti/backoff/v5 v5.0.2 // indirect
github.com/census-instrumentation/opencensus-proto v0.4.1 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/emicklei/go-restful/v3 v3.12.1 // indirect
github.com/evanphx/json-patch/v5 v5.9.0 // indirect
github.com/evanphx/json-patch/v5 v5.9.11 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
github.com/go-kit/log v0.2.1 // indirect
github.com/go-logfmt/logfmt v0.5.1 // indirect
github.com/go-logr/logr v1.4.2 // indirect
github.com/go-logr/logr v1.4.3 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-logr/zapr v1.3.0 // indirect
github.com/go-openapi/jsonpointer v0.21.0 // indirect
github.com/go-openapi/jsonreference v0.21.0 // indirect
github.com/go-openapi/swag v0.23.0 // indirect
@ -74,53 +83,64 @@ require (
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/protobuf v1.5.4 // indirect
github.com/google/gnostic-models v0.6.8 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.21.0 // indirect
github.com/imdario/mergo v0.3.16 // indirect
github.com/google/gnostic-models v0.6.9 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.1 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/mailru/easyjson v0.7.7 // indirect
github.com/mailru/easyjson v0.9.0 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/prometheus/client_golang v1.19.1 // indirect
github.com/prometheus/client_model v0.6.1 // indirect
github.com/prometheus/common v0.55.0 // indirect
github.com/prometheus/procfs v0.15.1 // indirect
github.com/prometheus/client_golang v1.22.0 // indirect
github.com/prometheus/client_model v0.6.2 // indirect
github.com/prometheus/common v0.65.0 // indirect
github.com/prometheus/procfs v0.16.1 // indirect
github.com/prometheus/statsd_exporter v0.22.7 // indirect
github.com/rickb777/plural v1.2.1 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/spf13/cobra v1.8.1 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/spf13/pflag v1.0.6 // indirect
github.com/valyala/bytebufferpool v1.0.0 // indirect
github.com/x448/float16 v0.8.4 // indirect
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.62.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.37.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.37.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.37.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.37.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.37.0 // indirect
go.opentelemetry.io/otel/exporters/prometheus v0.59.0 // indirect
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.37.0 // indirect
go.opentelemetry.io/otel/metric v1.37.0 // indirect
go.opentelemetry.io/proto/otlp v1.7.0 // indirect
go.uber.org/automaxprocs v1.6.0 // indirect
golang.org/x/crypto v0.32.0 // indirect
golang.org/x/mod v0.22.0 // indirect
golang.org/x/oauth2 v0.23.0 // indirect
golang.org/x/sys v0.29.0 // indirect
golang.org/x/term v0.28.0 // indirect
golang.org/x/text v0.21.0 // indirect
golang.org/x/time v0.6.0 // indirect
golang.org/x/tools v0.29.0 // indirect
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
google.golang.org/api v0.183.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20241015192408-796eee8c2d53 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20241015192408-796eee8c2d53 // indirect
google.golang.org/grpc v1.69.2 // indirect
google.golang.org/protobuf v1.36.2 // indirect
go.yaml.in/yaml/v2 v2.4.2 // indirect
golang.org/x/crypto v0.39.0 // indirect
golang.org/x/mod v0.25.0 // indirect
golang.org/x/oauth2 v0.30.0 // indirect
golang.org/x/sys v0.33.0 // indirect
golang.org/x/term v0.32.0 // indirect
golang.org/x/text v0.26.0 // indirect
golang.org/x/time v0.10.0 // indirect
golang.org/x/tools v0.34.0 // indirect
gomodules.xyz/jsonpatch/v2 v2.5.0 // indirect
google.golang.org/api v0.198.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20250603155806-513f23925822 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 // indirect
google.golang.org/grpc v1.73.0 // indirect
google.golang.org/protobuf v1.36.6 // indirect
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
k8s.io/code-generator v0.31.4 // indirect
k8s.io/gengo v0.0.0-20240404160639-a0386bf69313 // indirect
k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70 // indirect
k8s.io/gengo/v2 v2.0.0-20250207200755-1244d31929d7 // indirect
k8s.io/klog v1.0.0 // indirect
k8s.io/klog/v2 v2.130.1 // indirect
k8s.io/kube-openapi v0.0.0-20240808142205-8e686545bdb8 // indirect
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff // indirect
sigs.k8s.io/gateway-api v1.1.0 // indirect
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.6.0 // indirect
)

590
go.sum

File diff suppressed because it is too large Load Diff

View File

@ -17,9 +17,50 @@
# Documentation about this script and how to use it can be found
# at https://github.com/knative/test-infra/tree/main/ci
source $(dirname $0)/../vendor/knative.dev/hack/release.sh
source "$(dirname "${BASH_SOURCE[0]}")/../vendor/knative.dev/hack/release.sh"
KNATIVE_EVENTING_INTEGRATIONS_IMAGES_RELEASE="$(get_latest_knative_yaml_source "eventing-integrations" "eventing-integrations-images")"
readonly KNATIVE_EVENTING_INTEGRATIONS_IMAGES_RELEASE
KNATIVE_EVENTING_TRANSFORMATIONS_IMAGES_RELEASE="$(get_latest_knative_yaml_source "eventing-integrations" "eventing-transformations-images")"
readonly KNATIVE_EVENTING_TRANSFORMATIONS_IMAGES_RELEASE
readonly KNATIVE_EVENTING_INTEGRATIONS_IMAGES_CM="${REPO_ROOT_DIR}/third_party/eventing-integrations-latest/eventing-integrations-images.yaml"
readonly KNATIVE_EVENTING_TRANSFORMATIONS_IMAGES_CM="${REPO_ROOT_DIR}/third_party/eventing-integrations-latest/eventing-transformations-images.yaml"
function update_eventing_integrations_release_cms() {
curl "${KNATIVE_EVENTING_INTEGRATIONS_IMAGES_RELEASE}" --create-dirs -o "${KNATIVE_EVENTING_INTEGRATIONS_IMAGES_CM}" || return $?
curl "${KNATIVE_EVENTING_TRANSFORMATIONS_IMAGES_RELEASE}" --create-dirs -o "${KNATIVE_EVENTING_TRANSFORMATIONS_IMAGES_CM}" || return $?
}
function check_knative_nightly() {
local files=(
"${KNATIVE_EVENTING_INTEGRATIONS_IMAGES_CM}"
"${KNATIVE_EVENTING_TRANSFORMATIONS_IMAGES_CM}"
"${REPO_ROOT_DIR}/config/core/configmaps/eventing-integrations-images.yaml"
"${REPO_ROOT_DIR}/config/core/configmaps/eventing-transformations-images.yaml"
"${REPO_ROOT_DIR}/config/400-config-eventing-integrations-images.yaml"
"${REPO_ROOT_DIR}/config/400-config-eventing-transformations-images.yaml"
)
for file in "${files[@]}"; do
if grep -q "knative-nightly" "$file"; then
echo "Error: Found 'knative-nightly' in $file, is eventing-integrations for this major and minor '${TAG}' version already released? https://github.com/knative-extensions/eventing-integrations/releases"
cat "${file}"
return 1
fi
done
echo "No 'knative-nightly' occurrences found."
}
function build_release() {
if (( PUBLISH_TO_GITHUB )); then
# For official releases, update eventing-integrations ConfigMaps and stop the release if a nightly image is found
# in the ConfigMaps.
update_eventing_integrations_release_cms || return $?
check_knative_nightly || return $?
fi
# Run `generate-yamls.sh`, which should be versioned with the
# branch since the detail of building may change over time.
local YAML_LIST="$(mktemp)"

View File

@ -36,4 +36,7 @@ import (
// API reference docs generation.
_ "github.com/ahmetb/gen-crd-api-reference-docs"
_ "github.com/ahmetb/gen-crd-api-reference-docs/template"
// K8s code generation tools
_ "k8s.io/code-generator/cmd/validation-gen"
)

View File

@ -24,4 +24,4 @@ EOF
helm template -n cert-manager cert-manager jetstack/trust-manager --create-namespace --version "${trust_manager_version}" --set crds.enabled=true > third_party/cert-manager/02-trust-manager.yaml
}
update_cert_manager "v1.13.3" "v0.12.0"
update_cert_manager "v1.16.3" "v0.12.0"

View File

@ -52,6 +52,13 @@ ${KNATIVE_CODEGEN_PKG}/hack/generate-knative.sh "injection" \
"sinks:v1alpha1 eventing:v1alpha1 eventing:v1beta1 eventing:v1beta2 eventing:v1beta3 eventing:v1 messaging:v1 flows:v1 sources:v1alpha1 sources:v1beta2 sources:v1 duck:v1beta1 duck:v1" \
--go-header-file ${REPO_ROOT_DIR}/hack/boilerplate/boilerplate.go.txt
# Knative Injection (for cert-manager)
OUTPUT_PKG="knative.dev/eventing/pkg/client/certmanager/injection" \
${KNATIVE_CODEGEN_PKG}/hack/generate-knative.sh "injection" \
github.com/cert-manager/cert-manager/pkg/client github.com/cert-manager/cert-manager/pkg/apis "certmanager:v1 acme:v1" \
--disable-informer-init \
--go-header-file ${REPO_ROOT_DIR}/hack/boilerplate/boilerplate.go.txt
group "Generating API reference docs"
${REPO_ROOT_DIR}/hack/update-reference-docs.sh

View File

@ -126,7 +126,7 @@ func (a *apiServerAdapter) start(ctx context.Context, stopCh <-chan struct{}) er
}
<-stopCh
stop <- struct{}{}
close(stop)
return nil
}

View File

@ -20,6 +20,7 @@ import (
"bytes"
"context"
"encoding/base64"
"fmt"
"net/http"
"net/http/httptest"
"reflect"
@ -213,8 +214,8 @@ func TestSendEventsTLS(t *testing.T) {
eventsChan := make(chan cloudevents.Event, 10)
handler := eventingtlstesting.EventChannelHandler(eventsChan)
events := make([]cloudevents.Event, 0, 8)
ca := eventingtlstesting.StartServer(ctx, t, 8500, handler)
hostString := "localhost:8500"
ca, port := eventingtlstesting.StartServer(ctx, t, 0, handler)
hostString := fmt.Sprintf("localhost:%d", port)
var wg sync.WaitGroup
wg.Add(1)

View File

@ -18,6 +18,7 @@ package adapter
import (
"context"
"fmt"
nethttp "net/http"
"os"
"strconv"
@ -309,7 +310,7 @@ func TestTLS(t *testing.T) {
ctx, cancel := context.WithCancel(ctx)
t.Cleanup(cancel)
ca := eventingtlstesting.StartServer(ctx, t, 8333, nethttp.HandlerFunc(func(writer nethttp.ResponseWriter, request *nethttp.Request) {
ca, port := eventingtlstesting.StartServer(ctx, t, 0, nethttp.HandlerFunc(func(writer nethttp.ResponseWriter, request *nethttp.Request) {
if request.TLS == nil {
// It's not on TLS, fail request
writer.WriteHeader(nethttp.StatusInternalServerError)
@ -328,17 +329,17 @@ func TestTLS(t *testing.T) {
}{
{
name: "https sink URL, no CA certs fail",
sink: "https://localhost:8333",
sink: fmt.Sprintf("https://localhost:%d", port),
wantErr: true,
},
{
name: "https sink URL with ca certs",
sink: "https://localhost:8333",
sink: fmt.Sprintf("https://localhost:%d", port),
caCerts: pointer.String(ca),
},
{
name: "http sink URL with ca certs",
sink: "http://localhost:8333",
sink: fmt.Sprintf("http://localhost:%d", port),
caCerts: pointer.String(ca),
wantErr: true,
},

View File

@ -13,6 +13,7 @@ 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 test
import (

View File

@ -74,7 +74,9 @@ func UpdateFromConfigMap(client *CRStatusEventClient) func(configMap *corev1.Con
}
}
var contextkey struct{}
type contextkeytype struct{}
var contextkey contextkeytype
func ContextWithCRStatus(ctx context.Context, kubeEventSink *record.EventSink, component string, source runtime.Object, logf func(format string, args ...interface{})) context.Context {
@ -144,7 +146,7 @@ func (a *crStatusEvent) createEvent(ctx context.Context, result protocol.Result)
reason = strconv.Itoa(res.StatusCode)
if res.Format != "" && res.Format != "%w" { // returns '"%w" but this does not format
msg += " " + fmt.Sprintf(res.Format, res.Args...)
} else if res.Args != nil && len(res.Args) > 0 {
} else if len(res.Args) > 0 {
if m, ok := res.Args[0].(*protocol.Receipt); ok {
if m.Err != nil {
msg += " " + m.Err.Error() // add any error message if it's there.

View File

@ -33,33 +33,33 @@ type AWSCommon struct {
type AWSS3 struct {
AWSCommon `json:",inline"` // Embeds AWSCommon to inherit its fields in JSON
Arn string `json:"arn,omitempty" camel:"CAMEL_KAMELET_AWS_S3_SOURCE_BUCKETNAMEORARN"` // S3 ARN
DeleteAfterRead bool `json:"deleteAfterRead" default:"true"` // Auto-delete objects after reading
MoveAfterRead bool `json:"moveAfterRead" default:"false"` // Move objects after reading
DestinationBucket string `json:"destinationBucket,omitempty"` // Destination bucket for moved objects
DestinationBucketPrefix string `json:"destinationBucketPrefix,omitempty"` // Prefix for moved objects
DestinationBucketSuffix string `json:"destinationBucketSuffix,omitempty"` // Suffix for moved objects
AutoCreateBucket bool `json:"autoCreateBucket" default:"false"` // Auto-create S3 bucket
Prefix string `json:"prefix,omitempty"` // S3 bucket prefix for search
IgnoreBody bool `json:"ignoreBody" default:"false"` // Ignore object body
ForcePathStyle bool `json:"forcePathStyle" default:"false"` // Force path style for bucket access
Delay int `json:"delay" default:"500"` // Delay between polls in milliseconds
MaxMessagesPerPoll int `json:"maxMessagesPerPoll" default:"10"` // Max messages to poll per request
Arn string `json:"arn,omitempty" camel:"BUCKET_NAME_OR_ARN"` // S3 ARN
DeleteAfterRead bool `json:"deleteAfterRead" default:"true"` // Auto-delete objects after reading
MoveAfterRead bool `json:"moveAfterRead" default:"false"` // Move objects after reading
DestinationBucket string `json:"destinationBucket,omitempty"` // Destination bucket for moved objects
DestinationBucketPrefix string `json:"destinationBucketPrefix,omitempty"` // Prefix for moved objects
DestinationBucketSuffix string `json:"destinationBucketSuffix,omitempty"` // Suffix for moved objects
AutoCreateBucket bool `json:"autoCreateBucket" default:"false"` // Auto-create S3 bucket
Prefix string `json:"prefix,omitempty"` // S3 bucket prefix for search
IgnoreBody bool `json:"ignoreBody" default:"false"` // Ignore object body
ForcePathStyle bool `json:"forcePathStyle" default:"false"` // Force path style for bucket access
Delay int `json:"delay" default:"500"` // Delay between polls in milliseconds
MaxMessagesPerPoll int `json:"maxMessagesPerPoll" default:"10"` // Max messages to poll per request
}
type AWSSQS struct {
AWSCommon `json:",inline"` // Embeds AWSCommon to inherit its fields in JSON
Arn string `json:"arn,omitempty" camel:"CAMEL_KAMELET_AWS_SQS_SOURCE_QUEUENAMEORARN"` // SQS ARN
DeleteAfterRead bool `json:"deleteAfterRead" default:"true"` // Auto-delete messages after reading
AutoCreateQueue bool `json:"autoCreateQueue" default:"false"` // Auto-create SQS queue
Host string `json:"host" camel:"CAMEL_KAMELET_AWS_SQS_SOURCE_AMAZONAWSHOST" default:"amazonaws.com"` // AWS host
Protocol string `json:"protocol" default:"https"` // Communication protocol (http/https)
QueueURL string `json:"queueURL,omitempty"` // Full SQS queue URL
Greedy bool `json:"greedy" default:"false"` // Greedy scheduler
Delay int `json:"delay" default:"500"` // Delay between polls in milliseconds
MaxMessagesPerPoll int `json:"maxMessagesPerPoll" default:"1"` // Max messages to return (1-10)
WaitTimeSeconds int `json:"waitTimeSeconds,omitempty"` // Wait time for messages
VisibilityTimeout int `json:"visibilityTimeout,omitempty"` // Visibility timeout in seconds
Arn string `json:"arn,omitempty" camel:"QUEUE_NAME_OR_ARN"` // SQS ARN
DeleteAfterRead bool `json:"deleteAfterRead" default:"true"` // Auto-delete messages after reading
AutoCreateQueue bool `json:"autoCreateQueue" default:"false"` // Auto-create SQS queue
Host string `json:"host" camel:"AMAZONAWSHOST" default:"amazonaws.com"` // AWS host
Protocol string `json:"protocol" default:"https"` // Communication protocol (http/https)
QueueURL string `json:"queueURL,omitempty"` // Full SQS queue URL
Greedy bool `json:"greedy" default:"false"` // Greedy scheduler
Delay int `json:"delay" default:"500"` // Delay between polls in milliseconds
MaxMessagesPerPoll int `json:"maxMessagesPerPoll" default:"1"` // Max messages to return (1-10)
WaitTimeSeconds int `json:"waitTimeSeconds,omitempty"` // Wait time for messages
VisibilityTimeout int `json:"visibilityTimeout,omitempty"` // Visibility timeout in seconds
}
type AWSDDBStreams struct {
@ -71,6 +71,6 @@ type AWSDDBStreams struct {
type AWSSNS struct {
AWSCommon `json:",inline"` // Embeds AWSCommon to inherit its fields in JSON
Arn string `json:"arn,omitempty" camel:"CAMEL_KAMELET_AWS_SNS_SINK_TOPICNAMEORARN"` // SNS ARN
AutoCreateTopic bool `json:"autoCreateTopic" default:"false"` // Auto-create SNS topic
Arn string `json:"arn,omitempty" camel:"TOPIC_NAME_OR_ARN"` // SNS ARN
AutoCreateTopic bool `json:"autoCreateTopic" default:"false"` // Auto-create SNS topic
}

View File

@ -138,7 +138,7 @@ func (c *Channelable) Populate() {
}
// GetFullType implements duck.Implementable
func (s *Channelable) GetFullType() duck.Populatable {
func (c *Channelable) GetFullType() duck.Populatable {
return &Channelable{}
}

View File

@ -41,8 +41,11 @@ func TestDeliverySpecConversionBadType(t *testing.T) {
// Test v1beta1 -> v1 -> v1beta1
func TestDeliverySpecConversion(t *testing.T) {
var retryCount int32 = 10
//nolint:staticcheck // ST1023 types can be inferred
var backoffPolicy BackoffPolicyType = BackoffPolicyLinear
//nolint:staticcheck // ST1023 types can be inferred
var backoffPolicyExp BackoffPolicyType = BackoffPolicyExponential
//nolint:staticcheck // ST1023 types can be inferred
var backoffPolicyBad BackoffPolicyType = "garbage"
badPolicyString := `unknown BackoffPolicy, got: "garbage"`
@ -118,8 +121,11 @@ func TestDeliverySpecConversion(t *testing.T) {
// Test v1 -> v1beta1 -> v1
func TestDeliverySpecConversionV1(t *testing.T) {
var retryCount int32 = 10
//nolint:staticcheck // ST1023 types can be inferred
var backoffPolicy v1.BackoffPolicyType = v1.BackoffPolicyLinear
//nolint:staticcheck // ST1023 types can be inferred
var backoffPolicyExp v1.BackoffPolicyType = v1.BackoffPolicyExponential
//nolint:staticcheck // ST1023 types can be inferred
var backoffPolicyBad v1.BackoffPolicyType = "garbage"
badPolicyString := `unknown BackoffPolicy, got: "garbage"`

View File

@ -19,8 +19,8 @@ package v1
import (
"testing"
fuzz "github.com/google/gofuzz"
"k8s.io/apimachinery/pkg/runtime/serializer"
"sigs.k8s.io/randfill"
"k8s.io/apimachinery/pkg/api/apitesting/fuzzer"
"k8s.io/apimachinery/pkg/runtime"
@ -36,8 +36,8 @@ import (
var FuzzerFuncs = fuzzer.MergeFuzzerFuncs(
func(codecs serializer.CodecFactory) []interface{} {
return []interface{}{
func(s *TriggerStatus, c fuzz.Continue) {
c.FuzzNoCustom(s) // fuzz the status object
func(s *TriggerStatus, c randfill.Continue) {
c.FillNoCustom(s) // fuzz the status object
// Clear the random fuzzed condition
s.Status.SetConditions(nil)
@ -46,8 +46,8 @@ var FuzzerFuncs = fuzzer.MergeFuzzerFuncs(
s.InitializeConditions()
pkgfuzzer.FuzzConditions(&s.Status, c)
},
func(s *BrokerStatus, c fuzz.Continue) {
c.FuzzNoCustom(s) // fuzz the status object
func(s *BrokerStatus, c randfill.Continue) {
c.FillNoCustom(s) // fuzz the status object
// Clear the random fuzzed condition
s.Status.SetConditions(nil)

View File

@ -0,0 +1,24 @@
/*
Copyright 2025 The Knative 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 v1alpha1
import (
"context"
)
func (t *EventTransform) SetDefaults(_ context.Context) {
}

View File

@ -0,0 +1,213 @@
/*
Copyright 2025 The Knative 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 v1alpha1
import (
cmv1 "github.com/cert-manager/cert-manager/pkg/apis/certmanager/v1"
cmmeta "github.com/cert-manager/cert-manager/pkg/apis/meta/v1"
appsv1 "k8s.io/api/apps/v1"
"knative.dev/pkg/apis"
duckv1 "knative.dev/pkg/apis/duck/v1"
sourcesv1 "knative.dev/eventing/pkg/apis/sources/v1"
)
const (
TransformConditionAddressable apis.ConditionType = "Addressable"
TransformationConditionReady apis.ConditionType = "TransformationReady"
TransformationAddressableEmptyURL string = "NoURL"
TransformationAddressableWaitingForServiceEndpoints string = "WaitingForServiceEndpoints"
// Specific transformations conditions
// TransformationJsonataDeploymentReady is the condition to indicate that the Jsonata deployment
// is ready.
TransformationJsonataDeploymentReady apis.ConditionType = "JsonataDeploymentReady"
TransformationJsonataDeploymentUnavailable string = "JsonataDeploymentUnavailable"
TransformationJsonataCertificateNotReady string = "JsonataCertificateNotReady"
// TransformationJsonataSinkBindingReady is the condition to indicate that the Jsonata sink
// binding is ready.
TransformationJsonataSinkBindingReady apis.ConditionType = "JsonataSinkBindingReady"
)
var TransformCondSet = apis.NewLivingConditionSet(
TransformationConditionReady,
TransformConditionAddressable,
)
// transformJsonataConditionSet is the subset of conditions for the Jsonata transformation
// The overall readiness of those conditions will be propagated to the top-level
// TransformationConditionReady condition.
var transformJsonataConditionSet = apis.NewLivingConditionSet(
TransformationJsonataDeploymentReady,
TransformationJsonataSinkBindingReady,
)
// GetConditionSet retrieves the condition set for this resource. Implements the KRShaped interface.
func (et *EventTransform) GetConditionSet() apis.ConditionSet {
if et == nil {
return TransformCondSet
}
return et.Status.GetConditionSet()
}
func (*EventTransformStatus) GetConditionSet() apis.ConditionSet {
return TransformCondSet
}
// GetCondition returns the condition cutsently associated with the given type, or nil.
func (ts *EventTransformStatus) GetCondition(t apis.ConditionType) *apis.Condition {
return ts.GetConditionSet().Manage(ts).GetCondition(t)
}
// IsReady returns true if the resource is ready overall.
func (ts *EventTransformStatus) IsReady() bool {
return ts.GetTopLevelCondition().IsTrue()
}
// GetTopLevelCondition returns the top level Condition.
func (ts *EventTransformStatus) GetTopLevelCondition() *apis.Condition {
return ts.GetConditionSet().Manage(ts).GetTopLevelCondition()
}
// InitializeConditions sets relevant unset conditions to Unknown state.
func (ts *EventTransformStatus) InitializeConditions() {
ts.GetConditionSet().Manage(ts).InitializeConditions()
}
func (ts *EventTransformStatus) PropagateJsonataDeploymentStatus(ds appsv1.DeploymentStatus) bool {
defer ts.propagateTransformJsonataReadiness()
if ts.JsonataTransformationStatus == nil {
ts.JsonataTransformationStatus = &JsonataEventTransformationStatus{}
}
ts.JsonataTransformationStatus.Deployment = ds
if ds.Replicas > 0 && ds.Replicas == ds.AvailableReplicas {
transformJsonataConditionSet.Manage(ts).MarkTrue(TransformationJsonataDeploymentReady)
return true
}
transformJsonataConditionSet.Manage(ts).MarkFalse(TransformationJsonataDeploymentReady, TransformationJsonataDeploymentUnavailable, "Expected replicas: %d, available: %d", ds.Replicas, ds.AvailableReplicas)
return false
}
func (ts *EventTransformStatus) PropagateJsonataCertificateStatus(cs cmv1.CertificateStatus) bool {
defer ts.propagateTransformJsonataReadiness()
var topLevel *cmv1.CertificateCondition
for _, cond := range cs.Conditions {
if cond.Type == cmv1.CertificateConditionReady {
topLevel = &cond
break
}
}
if topLevel == nil {
transformJsonataConditionSet.Manage(ts).MarkUnknown(TransformationJsonataDeploymentReady, TransformationJsonataCertificateNotReady, "Certificate is progressing")
return false
}
if topLevel.Status == cmmeta.ConditionUnknown {
transformJsonataConditionSet.Manage(ts).MarkUnknown(TransformationJsonataDeploymentReady, TransformationJsonataCertificateNotReady, "Certificate is progressing, "+topLevel.Reason+" Message: "+topLevel.Message)
return false
}
if topLevel.Status == cmmeta.ConditionFalse {
transformJsonataConditionSet.Manage(ts).MarkFalse(TransformationJsonataDeploymentReady, TransformationJsonataCertificateNotReady, "Certificate is not ready, "+topLevel.Reason+" Message: "+topLevel.Message)
return false
}
return true
}
func (ts *EventTransformStatus) PropagateJsonataSinkBindingUnset() {
defer ts.propagateTransformJsonataReadiness()
transformJsonataConditionSet.Manage(ts).MarkTrue(TransformationJsonataSinkBindingReady)
}
func (ts *EventTransformStatus) PropagateJsonataSinkBindingStatus(sbs sourcesv1.SinkBindingStatus) bool {
defer ts.propagateTransformJsonataReadiness()
if ts.JsonataTransformationStatus == nil {
ts.JsonataTransformationStatus = &JsonataEventTransformationStatus{}
}
ts.SourceStatus.SinkURI = sbs.SinkURI
ts.SourceStatus.SinkAudience = sbs.SinkAudience
ts.SourceStatus.SinkCACerts = sbs.SinkCACerts
ts.SourceStatus.Auth = sbs.Auth
topLevel := sbs.GetCondition(apis.ConditionReady)
if topLevel == nil {
transformJsonataConditionSet.Manage(ts).MarkUnknown(TransformationJsonataSinkBindingReady, "", "")
return false
}
if topLevel.IsTrue() {
transformJsonataConditionSet.Manage(ts).MarkTrue(TransformationJsonataSinkBindingReady)
return true
}
if topLevel.IsFalse() {
transformJsonataConditionSet.Manage(ts).MarkFalse(TransformationJsonataSinkBindingReady, topLevel.Reason, topLevel.Message)
return false
}
transformJsonataConditionSet.Manage(ts).MarkUnknown(TransformationJsonataSinkBindingReady, topLevel.Reason, topLevel.Message)
return false
}
func (ts *EventTransformStatus) propagateTransformJsonataReadiness() {
ts.markTransformReady(transformJsonataConditionSet)
}
func (ts *EventTransformStatus) markTransformReady(set apis.ConditionSet) {
dCond := set.Manage(ts).GetCondition(TransformationJsonataDeploymentReady)
sbCond := set.Manage(ts).GetCondition(TransformationJsonataSinkBindingReady)
if !dCond.IsTrue() {
ts.propagateTransformationConditionStatus(dCond)
return
}
if !sbCond.IsTrue() {
ts.propagateTransformationConditionStatus(sbCond)
return
}
ts.propagateTransformationConditionStatus(sbCond)
ts.propagateTransformationConditionStatus(dCond)
}
func (ts *EventTransformStatus) propagateTransformationConditionStatus(cond *apis.Condition) {
if cond == nil {
ts.GetConditionSet().Manage(ts).MarkUnknown(TransformationConditionReady, "", "")
} else if cond.IsTrue() {
ts.GetConditionSet().Manage(ts).MarkTrue(TransformationConditionReady)
} else if cond.IsFalse() {
ts.GetConditionSet().Manage(ts).MarkFalse(TransformationConditionReady, cond.Reason, cond.Message)
} else {
ts.GetConditionSet().Manage(ts).MarkUnknown(TransformationConditionReady, cond.Reason, cond.Message)
}
}
func (ts *EventTransformStatus) MarkWaitingForServiceEndpoints() {
ts.GetConditionSet().Manage(ts).MarkFalse(TransformConditionAddressable, TransformationAddressableWaitingForServiceEndpoints, "URL is empty")
}
func (ts *EventTransformStatus) IsTransformationReady() bool {
return ts.GetConditionSet().Manage(ts).GetCondition(TransformationConditionReady).IsTrue()
}
func (ts *EventTransformStatus) SetAddresses(addresses ...duckv1.Addressable) {
if len(addresses) == 0 || addresses[0].URL.IsEmpty() {
ts.GetConditionSet().Manage(ts).MarkFalse(TransformConditionAddressable, TransformationAddressableEmptyURL, "URL is empty")
return
}
ts.AddressStatus = duckv1.AddressStatus{
Address: &addresses[0],
Addresses: addresses,
}
ts.GetConditionSet().Manage(ts).MarkTrue(TransformConditionAddressable)
}

View File

@ -0,0 +1,104 @@
/*
Copyright 2025 The Knative 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 v1alpha1
import (
"testing"
"github.com/stretchr/testify/assert"
appsv1 "k8s.io/api/apps/v1"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"knative.dev/pkg/apis"
duckv1 "knative.dev/pkg/apis/duck/v1"
)
func TestFullLifecycle(t *testing.T) {
et := &EventTransform{
TypeMeta: metav1.TypeMeta{},
ObjectMeta: metav1.ObjectMeta{},
Spec: EventTransformSpec{
Sink: nil,
EventTransformations: EventTransformations{
Jsonata: &JsonataEventTransformationSpec{
Expression: `
{
"specversion": "1.0",
"id": id,
"type": "transformed-event",
"source": source,
"reason": data.reason,
"message": data.message,
"data": $
}
`,
},
},
},
}
et.Status.InitializeConditions()
topLevel := et.Status.GetCondition(apis.ConditionReady)
transformation := et.Status.GetCondition(TransformationConditionReady)
addressable := et.Status.GetCondition(TransformConditionAddressable)
assert.Equal(t, corev1.ConditionUnknown, topLevel.Status)
assert.Equal(t, corev1.ConditionUnknown, transformation.Status)
assert.Equal(t, corev1.ConditionUnknown, addressable.Status)
assert.Len(t, et.Status.Conditions, 3)
assert.Equal(t, false, et.Status.IsReady())
ds := appsv1.DeploymentStatus{
ObservedGeneration: 202,
Replicas: 1,
UpdatedReplicas: 1,
ReadyReplicas: 1,
AvailableReplicas: 1,
UnavailableReplicas: 0,
}
et.Status.PropagateJsonataDeploymentStatus(ds)
deploymentCondition := et.Status.GetCondition(TransformationJsonataDeploymentReady)
assert.Equal(t, corev1.ConditionTrue, deploymentCondition.Status)
assert.Len(t, et.Status.Conditions, 4)
assert.Equal(t, false, et.Status.IsReady())
transformationCondition := et.Status.GetCondition(TransformationConditionReady)
assert.Equal(t, corev1.ConditionUnknown, transformationCondition.Status, et)
assert.Len(t, et.Status.Conditions, 4)
assert.Equal(t, false, et.Status.IsReady())
et.Status.PropagateJsonataSinkBindingUnset()
transformationCondition = et.Status.GetCondition(TransformationConditionReady)
assert.Equal(t, corev1.ConditionTrue, transformationCondition.Status, et)
assert.Len(t, et.Status.Conditions, 5)
assert.Equal(t, false, et.Status.IsReady())
et.Status.SetAddresses(duckv1.Addressable{URL: apis.HTTPS("example.com")})
addrCondition := et.Status.GetCondition(TransformConditionAddressable)
assert.Equal(t, corev1.ConditionTrue, addrCondition.Status, et)
assert.Len(t, et.Status.Conditions, 5)
assert.Equal(t, true, et.Status.IsReady())
// All conditions are ready
for _, c := range et.Status.Conditions {
assert.Equal(t, true, c.IsTrue(), "Unexpected condition status %#v, expected True", c)
}
}

View File

@ -0,0 +1,165 @@
/*
Copyright 2025 The Knative 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 v1alpha1
import (
appsv1 "k8s.io/api/apps/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"knative.dev/pkg/apis"
duckv1 "knative.dev/pkg/apis/duck/v1"
"knative.dev/pkg/kmeta"
)
// +genclient
// +genreconciler
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// EventTransform represents an even transformation.
type EventTransform struct {
metav1.TypeMeta `json:",inline"`
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// Spec defines the desired state of the EventTransform.
Spec EventTransformSpec `json:"spec,omitempty"`
// Status represents the current state of the EventTransform.
// This data may be out of date.
// +optional
Status EventTransformStatus `json:"status,omitempty"`
}
var (
// Check that EventTransform can be validated, can be defaulted, and has immutable fields.
_ apis.Validatable = (*EventTransform)(nil)
_ apis.Defaultable = (*EventTransform)(nil)
// Check that EventTransform can return its spec untyped.
_ apis.HasSpec = (*EventTransform)(nil)
_ runtime.Object = (*EventTransform)(nil)
// Check that we can create OwnerReferences to an EventTransform.
_ kmeta.OwnerRefable = (*EventTransform)(nil)
// Check that the type conforms to the duck Knative Resource shape.
_ duckv1.KRShaped = (*EventTransform)(nil)
)
type EventTransformSpec struct {
// Sink is a reference to an object that will resolve to a uri to use as the sink.
//
// If not present, the transformation will send back the transformed event as response, this
// is useful to leverage the built-in Broker reply feature to re-publish a transformed event
// back to the broker.
//
// +optional
Sink *duckv1.Destination `json:"sink,omitempty"`
// Reply is the configuration on how to handle responses from Sink.
// It can only be set if Sink is set.
//
// +optional
Reply *ReplySpec `json:"reply,omitempty"`
// EventTransformations contain all possible transformations, only one "type" can be used.
EventTransformations `json:",inline"`
}
// ReplySpec is the configurations on how to handle responses from Sink.
type ReplySpec struct {
// EventTransformations for replies from the Sink, contain all possible transformations,
// only one "type" can be used.
//
// The used type must match the top-level transformation, if you need to mix transformation types,
// use compositions and chain transformations together to achieve your desired outcome.
EventTransformations `json:",inline"`
// Discard discards responses from Sink and return empty response body.
//
// When set to false, it returns the exact sink response body.
// When set to true, Discard is mutually exclusive with EventTransformations in the reply
// section, it can either be discarded or transformed.
//
// Default: false.
//
// +optional
Discard *bool `json:"discard,omitempty"`
}
type EventTransformations struct {
Jsonata *JsonataEventTransformationSpec `json:"jsonata,omitempty"`
}
type JsonataEventTransformationSpec struct {
// Expression is the JSONata expression.
Expression string `json:"expression,omitempty"`
}
// EventTransformStatus represents the current state of a EventTransform.
type EventTransformStatus struct {
// SourceStatus inherits duck/v1 SourceStatus, which currently provides:
// * ObservedGeneration - the 'Generation' of the Service that was last
// processed by the controller.
// * Conditions - the latest available observations of a resource's current
// state.
// * SinkURI - the current active sink URI that has been configured for the
// Source.
duckv1.SourceStatus `json:",inline"`
// AddressStatus is the part where the EventTransform fulfills the Addressable contract.
// It exposes the endpoint as an URI to get events delivered.
// +optional
duckv1.AddressStatus `json:",inline"`
// JsonataTransformationStatus is the status associated with JsonataEventTransformationSpec.
// +optional
JsonataTransformationStatus *JsonataEventTransformationStatus `json:"jsonata,omitempty"`
}
type JsonataEventTransformationStatus struct {
Deployment appsv1.DeploymentStatus `json:"deployment,omitempty"`
}
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// EventTransformList is a collection of EventTransform.
type EventTransformList struct {
metav1.TypeMeta `json:",inline"`
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
Items []EventTransform `json:"items"`
}
// GetGroupVersionKind returns GroupVersionKind for EventTransform
func (ep *EventTransform) GetGroupVersionKind() schema.GroupVersionKind {
return SchemeGroupVersion.WithKind("EventTransform")
}
// GetUntypedSpec returns the spec of the EventTransform.
func (ep *EventTransform) GetUntypedSpec() interface{} {
return ep.Spec
}
// GetStatus retrieves the status of the EventTransform. Implements the KRShaped interface.
func (ep *EventTransform) GetStatus() *duckv1.Status {
return &ep.Status.Status
}

View File

@ -0,0 +1,164 @@
/*
Copyright 2025 The Knative 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 v1alpha1
import (
"context"
"fmt"
"strings"
"k8s.io/apimachinery/pkg/util/sets"
"knative.dev/pkg/apis"
)
func (t *EventTransform) Validate(ctx context.Context) *apis.FieldError {
ctx = apis.WithinParent(ctx, t.ObjectMeta)
return t.Spec.Validate(ctx).ViaField("spec")
}
var possibleTransformations = []string{"jsonata"}
func (ts *EventTransformSpec) Validate(ctx context.Context) *apis.FieldError {
errs := ts.EventTransformations.Validate(ctx /* allowEmpty */, false)
errs = errs.Also(ts.Sink.Validate(ctx).ViaField("sink"))
errs = errs.Also(disallowSinkCaCerts(ts).ViaField("sink"))
errs = errs.Also(ts.Reply.Validate(ctx, ts).ViaField("reply"))
if apis.IsInUpdate(ctx) {
original := apis.GetBaseline(ctx).(*EventTransform)
errs = errs.Also(ts.CheckImmutableFields(ctx, original))
}
return errs
}
func (ets EventTransformations) Validate(ctx context.Context, allowEmpty bool) *apis.FieldError {
var errs *apis.FieldError
// Only one type of transformation is allowed.
// These are transformations field paths.
transformations := ets.transformations()
if len(transformations) == 0 && !allowEmpty {
errs = apis.ErrMissingOneOf(possibleTransformations...)
} else if len(transformations) > 1 {
errs = apis.ErrMultipleOneOf(transformations...)
}
errs = errs.Also(ets.Jsonata.Validate(ctx).ViaField("jsonata"))
return errs
}
func (ets EventTransformations) transformations() []string {
// Only one type of transformation is allowed.
// These are transformations field paths.
transformations := make([]string, 0, 2)
if ets.Jsonata != nil {
transformations = append(transformations, "jsonata")
}
return transformations
}
func (rs *ReplySpec) Validate(ctx context.Context, ts *EventTransformSpec) *apis.FieldError {
if rs == nil {
return nil
}
if ts.Sink == nil {
return apis.ErrGeneric(
"reply is set without spec.sink",
"",
)
}
errs := rs.EventTransformations.Validate(ctx /* allowEmpty */, true)
baseTransformationsSet := sets.New(ts.EventTransformations.transformations()...)
replyTransformationsSet := sets.New(rs.EventTransformations.transformations()...)
transformationsIntersection := baseTransformationsSet.Intersection(replyTransformationsSet)
replyTransformations := rs.EventTransformations.transformations()
if rs.Discard != nil && *rs.Discard {
replyTransformations = append(replyTransformations, "discard")
}
if len(replyTransformations) > 1 {
errs = apis.ErrMultipleOneOf(replyTransformations...)
} else if replyTransformationsSet.Len() > 0 &&
baseTransformationsSet.Len() > 0 &&
transformationsIntersection.Len() != 1 {
errs = apis.ErrGeneric(
fmt.Sprintf(
"Reply transformation type must match the transformation type in the top-level spec. Top-level transformations: %#v, reply transformations: %#v",
strings.Join(baseTransformationsSet.UnsortedList(), ", "),
strings.Join(replyTransformationsSet.UnsortedList(), ", "),
),
replyTransformationsSet.UnsortedList()...,
)
}
return errs
}
func (js *JsonataEventTransformationSpec) Validate(context.Context) *apis.FieldError {
// Jsonata parsers for Go are not maintained, therefore, we will not parse the expression here.
// The downside is that the errors will only be present in the status of the EventTransform resource.
// We can reconsider this in the future and improve.
return nil
}
func disallowSinkCaCerts(ts *EventTransformSpec) *apis.FieldError {
sink := ts.Sink
if sink == nil || sink.CACerts == nil || ts.Jsonata == nil {
return nil
}
return &apis.FieldError{
Message: "CACerts for the sink is not supported for JSONata transformations, to propagate CA trust bundles use labeled ConfigMaps: " +
"https://knative.dev/docs/eventing/features/transport-encryption/#configure-additional-ca-trust-bundles",
Paths: []string{"CACerts"},
}
}
func (in *EventTransformSpec) CheckImmutableFields(ctx context.Context, original *EventTransform) *apis.FieldError {
if original == nil {
return nil
}
errs := in.EventTransformations.CheckImmutableFields(ctx, original.Spec.EventTransformations)
errs = errs.Also(in.Reply.CheckImmutableFields(ctx, original.Spec.Reply).ViaField("reply"))
return errs
}
func (ets EventTransformations) CheckImmutableFields(ctx context.Context, original EventTransformations) *apis.FieldError {
var errs *apis.FieldError
const suggestion = "Suggestion: create a new transformation, migrate services to the new one, and delete this transformation."
if ets.Jsonata != nil && original.Jsonata == nil {
errs = apis.ErrGeneric("Transformations types are immutable, jsonata transformation cannot be changed to a different transformation type. " + suggestion).ViaField("jsonata")
} else if original.Jsonata != nil && ets.Jsonata == nil {
errs = apis.ErrGeneric("Transformations types are immutable, transformation type cannot be changed to a jsonata transformation. " + suggestion).ViaField("jsonata")
}
return errs
}
func (rs *ReplySpec) CheckImmutableFields(_ context.Context, _ *ReplySpec) *apis.FieldError {
// ReplySpec is fully mutable.
return nil
}

View File

@ -0,0 +1,394 @@
/*
Copyright 2025 The Knative 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 v1alpha1_test
import (
"context"
"testing"
"github.com/stretchr/testify/assert"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
eventing "knative.dev/eventing/pkg/apis/eventing/v1alpha1"
"knative.dev/eventing/pkg/eventingtls/eventingtlstesting"
"knative.dev/pkg/apis"
duckv1 "knative.dev/pkg/apis/duck/v1"
"knative.dev/pkg/ptr"
"knative.dev/pkg/webhook/json"
)
func TestJSONDecode(t *testing.T) {
et := &eventing.EventTransform{}
err := json.Decode([]byte(`
{
"apiVersion": "eventing.knative.dev/v1alpha1",
"kind": "EventTransform",
"metadata": {
"name": "identity"
},
"spec": {
"jsonata": {
"expression": "{\n \"specversion\": \"1.0\",\n \"id\": id,\n \"type\": \"transformation.jsonata\",\n \"source\": \"transformation.json.identity\",\n \"data\": $\n}\n"
}
}
}
`), et, true)
assert.Nil(t, err)
}
var sink = &duckv1.Destination{
URI: apis.HTTP("example.com"),
}
func TestEventTransform_Validate(t *testing.T) {
tests := []struct {
name string
in eventing.EventTransform
ctx context.Context
want *apis.FieldError
}{
{
name: "empty",
in: eventing.EventTransform{
TypeMeta: metav1.TypeMeta{},
ObjectMeta: metav1.ObjectMeta{
Name: "name",
},
Spec: eventing.EventTransformSpec{},
Status: eventing.EventTransformStatus{},
},
ctx: context.Background(),
want: apis.ErrMissingOneOf("jsonata").ViaField("spec"),
},
{
name: "jsonata valid",
in: eventing.EventTransform{
TypeMeta: metav1.TypeMeta{},
ObjectMeta: metav1.ObjectMeta{
Name: "name",
},
Spec: eventing.EventTransformSpec{
EventTransformations: eventing.EventTransformations{
Jsonata: &eventing.JsonataEventTransformationSpec{
Expression: `{ "specversion": "1.0" }`,
},
},
},
},
ctx: context.Background(),
want: nil,
},
{
name: "jsonata with reply valid",
in: eventing.EventTransform{
TypeMeta: metav1.TypeMeta{},
ObjectMeta: metav1.ObjectMeta{
Name: "name",
},
Spec: eventing.EventTransformSpec{
Sink: sink,
EventTransformations: eventing.EventTransformations{
Jsonata: &eventing.JsonataEventTransformationSpec{
Expression: `{ "specversion": "1.0" }`,
},
},
Reply: &eventing.ReplySpec{
EventTransformations: eventing.EventTransformations{
Jsonata: &eventing.JsonataEventTransformationSpec{
Expression: `{ "specversion": "1.0" }`,
},
},
},
},
Status: eventing.EventTransformStatus{},
},
ctx: context.Background(),
want: nil,
},
{
name: "jsonata with reply discard valid",
in: eventing.EventTransform{
TypeMeta: metav1.TypeMeta{},
ObjectMeta: metav1.ObjectMeta{
Name: "name",
},
Spec: eventing.EventTransformSpec{
Sink: sink,
EventTransformations: eventing.EventTransformations{
Jsonata: &eventing.JsonataEventTransformationSpec{
Expression: `{ "specversion": "1.0" }`,
},
},
Reply: &eventing.ReplySpec{
Discard: ptr.Bool(true),
},
},
Status: eventing.EventTransformStatus{},
},
ctx: context.Background(),
want: nil,
},
{
name: "jsonata with reply, jsonata reply transformations and discard = true, invalid",
in: eventing.EventTransform{
TypeMeta: metav1.TypeMeta{},
ObjectMeta: metav1.ObjectMeta{
Name: "name",
},
Spec: eventing.EventTransformSpec{
Sink: sink,
EventTransformations: eventing.EventTransformations{
Jsonata: &eventing.JsonataEventTransformationSpec{
Expression: `{ "specversion": "1.0" }`,
},
},
Reply: &eventing.ReplySpec{
EventTransformations: eventing.EventTransformations{
Jsonata: &eventing.JsonataEventTransformationSpec{
Expression: `{ "specversion": "1.0" }`,
},
},
Discard: ptr.Bool(true),
},
},
},
ctx: context.Background(),
want: (&apis.FieldError{}).Also(apis.ErrMultipleOneOf("jsonata", "discard").ViaField("reply").ViaField("spec")),
},
{
name: "jsonata update change expression",
in: eventing.EventTransform{
TypeMeta: metav1.TypeMeta{},
ObjectMeta: metav1.ObjectMeta{
Name: "name",
},
Spec: eventing.EventTransformSpec{
Sink: sink,
EventTransformations: eventing.EventTransformations{
Jsonata: &eventing.JsonataEventTransformationSpec{
Expression: `{ "specversion": "2.0" }`,
},
},
Reply: &eventing.ReplySpec{
EventTransformations: eventing.EventTransformations{
Jsonata: &eventing.JsonataEventTransformationSpec{
Expression: `{ "specversion": "2.0" }`,
},
},
},
},
},
ctx: apis.WithinUpdate(context.Background(), &eventing.EventTransform{
TypeMeta: metav1.TypeMeta{},
ObjectMeta: metav1.ObjectMeta{
Name: "name",
},
Spec: eventing.EventTransformSpec{
EventTransformations: eventing.EventTransformations{
Jsonata: &eventing.JsonataEventTransformationSpec{
Expression: `{ "specversion": "1.0" }`,
},
},
Reply: &eventing.ReplySpec{
EventTransformations: eventing.EventTransformations{
Jsonata: &eventing.JsonataEventTransformationSpec{
Expression: `{ "specversion": "1.0" }`,
},
},
},
},
}),
want: nil,
},
{
name: "transform jsonata change transformation type, have -> not have",
in: eventing.EventTransform{
TypeMeta: metav1.TypeMeta{},
ObjectMeta: metav1.ObjectMeta{
Name: "name",
},
Spec: eventing.EventTransformSpec{
EventTransformations: eventing.EventTransformations{
Jsonata: &eventing.JsonataEventTransformationSpec{
Expression: `{ "specversion": "2.0" }`,
},
},
},
},
ctx: apis.WithinUpdate(context.Background(), &eventing.EventTransform{
TypeMeta: metav1.TypeMeta{},
ObjectMeta: metav1.ObjectMeta{
Name: "name",
},
Spec: eventing.EventTransformSpec{
EventTransformations: eventing.EventTransformations{},
},
}),
want: (&apis.FieldError{}).
Also(
apis.ErrGeneric("Transformations types are immutable, jsonata transformation cannot be changed to a different transformation type. Suggestion: create a new transformation, migrate services to the new one, and delete this transformation.").
ViaField("jsonata"),
).
ViaField("spec"),
},
{
name: "transform jsonata change reply transformation type, have -> not have",
in: eventing.EventTransform{
TypeMeta: metav1.TypeMeta{},
ObjectMeta: metav1.ObjectMeta{
Name: "name",
},
Spec: eventing.EventTransformSpec{
Sink: sink,
EventTransformations: eventing.EventTransformations{
Jsonata: &eventing.JsonataEventTransformationSpec{
Expression: `{ "specversion": "2.0" }`,
},
},
Reply: &eventing.ReplySpec{
EventTransformations: eventing.EventTransformations{
Jsonata: &eventing.JsonataEventTransformationSpec{
Expression: `{ "specversion": "2.0" }`,
},
},
},
},
},
ctx: apis.WithinUpdate(context.Background(), &eventing.EventTransform{
TypeMeta: metav1.TypeMeta{},
ObjectMeta: metav1.ObjectMeta{
Name: "name",
},
Spec: eventing.EventTransformSpec{
EventTransformations: eventing.EventTransformations{
Jsonata: &eventing.JsonataEventTransformationSpec{
Expression: `{ "specversion": "2.0" }`,
},
},
},
}),
want: nil,
},
{
name: "transform jsonata change reply transformation type, jsonata expression -> discard",
in: eventing.EventTransform{
TypeMeta: metav1.TypeMeta{},
ObjectMeta: metav1.ObjectMeta{
Name: "name",
},
Spec: eventing.EventTransformSpec{
Sink: sink,
EventTransformations: eventing.EventTransformations{
Jsonata: &eventing.JsonataEventTransformationSpec{
Expression: `{ "specversion": "2.0" }`,
},
},
Reply: &eventing.ReplySpec{
EventTransformations: eventing.EventTransformations{
Jsonata: &eventing.JsonataEventTransformationSpec{
Expression: `{ "specversion": "2.0" }`,
},
},
},
},
},
ctx: apis.WithinUpdate(context.Background(), &eventing.EventTransform{
TypeMeta: metav1.TypeMeta{},
ObjectMeta: metav1.ObjectMeta{
Name: "name",
},
Spec: eventing.EventTransformSpec{
EventTransformations: eventing.EventTransformations{
Jsonata: &eventing.JsonataEventTransformationSpec{
Expression: `{ "specversion": "2.0" }`,
},
},
Reply: &eventing.ReplySpec{
Discard: ptr.Bool(true),
},
},
}),
want: nil,
},
{
name: "reply without sink",
in: eventing.EventTransform{
TypeMeta: metav1.TypeMeta{},
ObjectMeta: metav1.ObjectMeta{
Name: "name",
},
Spec: eventing.EventTransformSpec{
EventTransformations: eventing.EventTransformations{
Jsonata: &eventing.JsonataEventTransformationSpec{
Expression: `{ "specversion": "2.0" }`,
},
},
Reply: &eventing.ReplySpec{
EventTransformations: eventing.EventTransformations{
Jsonata: &eventing.JsonataEventTransformationSpec{
Expression: `{ "specversion": "2.0" }`,
},
},
},
},
Status: eventing.EventTransformStatus{},
},
ctx: context.Background(),
want: (&apis.FieldError{}).Also(
apis.ErrGeneric("reply is set without spec.sink", "").
ViaField("reply").
ViaField("spec"),
),
},
{
name: "jsonata with sink unsupported CACerts",
in: eventing.EventTransform{
TypeMeta: metav1.TypeMeta{},
ObjectMeta: metav1.ObjectMeta{
Name: "name",
},
Spec: eventing.EventTransformSpec{
Sink: &duckv1.Destination{
URI: sink.URI,
CACerts: ptr.String(string(eventingtlstesting.CA)),
},
EventTransformations: eventing.EventTransformations{
Jsonata: &eventing.JsonataEventTransformationSpec{
Expression: `{ "specversion": "1.0" }`,
},
},
},
},
ctx: context.Background(),
want: (&apis.FieldError{}).Also(&apis.FieldError{
Message: "CACerts for the sink is not supported for JSONata transformations, to propagate CA trust bundles use labeled ConfigMaps: " +
"https://knative.dev/docs/eventing/features/transport-encryption/#configure-additional-ca-trust-bundles",
Paths: []string{"spec.sink.CACerts"},
}),
},
}
for _, tt := range tests {
tt := tt
t.Run(tt.name, func(t *testing.T) {
t.Parallel()
got := tt.in.Validate(tt.ctx)
assert.Equalf(t, tt.want, tt.in.Validate(tt.ctx), "Validate(%v) = %v", tt.ctx, got)
})
}
}

View File

@ -49,6 +49,8 @@ func addKnownTypes(scheme *runtime.Scheme) error {
&EventPolicyList{},
&RequestReply{},
&RequestReplyList{},
&EventTransform{},
&EventTransformList{},
)
metav1.AddToGroupVersion(scheme, SchemeGroupVersion)
return nil

View File

@ -24,8 +24,9 @@ package v1alpha1
import (
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
runtime "k8s.io/apimachinery/pkg/runtime"
duckv1 "knative.dev/eventing/pkg/apis/duck/v1"
apisduckv1 "knative.dev/eventing/pkg/apis/duck/v1"
eventingv1 "knative.dev/eventing/pkg/apis/eventing/v1"
duckv1 "knative.dev/pkg/apis/duck/v1"
)
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
@ -258,6 +259,193 @@ func (in *EventPolicyToReference) DeepCopy() *EventPolicyToReference {
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *EventTransform) DeepCopyInto(out *EventTransform) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
in.Spec.DeepCopyInto(&out.Spec)
in.Status.DeepCopyInto(&out.Status)
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventTransform.
func (in *EventTransform) DeepCopy() *EventTransform {
if in == nil {
return nil
}
out := new(EventTransform)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *EventTransform) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
}
return nil
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *EventTransformList) DeepCopyInto(out *EventTransformList) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ListMeta.DeepCopyInto(&out.ListMeta)
if in.Items != nil {
in, out := &in.Items, &out.Items
*out = make([]EventTransform, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventTransformList.
func (in *EventTransformList) DeepCopy() *EventTransformList {
if in == nil {
return nil
}
out := new(EventTransformList)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *EventTransformList) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
}
return nil
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *EventTransformSpec) DeepCopyInto(out *EventTransformSpec) {
*out = *in
if in.Sink != nil {
in, out := &in.Sink, &out.Sink
*out = new(duckv1.Destination)
(*in).DeepCopyInto(*out)
}
if in.Reply != nil {
in, out := &in.Reply, &out.Reply
*out = new(ReplySpec)
(*in).DeepCopyInto(*out)
}
in.EventTransformations.DeepCopyInto(&out.EventTransformations)
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventTransformSpec.
func (in *EventTransformSpec) DeepCopy() *EventTransformSpec {
if in == nil {
return nil
}
out := new(EventTransformSpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *EventTransformStatus) DeepCopyInto(out *EventTransformStatus) {
*out = *in
in.SourceStatus.DeepCopyInto(&out.SourceStatus)
in.AddressStatus.DeepCopyInto(&out.AddressStatus)
if in.JsonataTransformationStatus != nil {
in, out := &in.JsonataTransformationStatus, &out.JsonataTransformationStatus
*out = new(JsonataEventTransformationStatus)
(*in).DeepCopyInto(*out)
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventTransformStatus.
func (in *EventTransformStatus) DeepCopy() *EventTransformStatus {
if in == nil {
return nil
}
out := new(EventTransformStatus)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *EventTransformations) DeepCopyInto(out *EventTransformations) {
*out = *in
if in.Jsonata != nil {
in, out := &in.Jsonata, &out.Jsonata
*out = new(JsonataEventTransformationSpec)
**out = **in
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventTransformations.
func (in *EventTransformations) DeepCopy() *EventTransformations {
if in == nil {
return nil
}
out := new(EventTransformations)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *JsonataEventTransformationSpec) DeepCopyInto(out *JsonataEventTransformationSpec) {
*out = *in
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JsonataEventTransformationSpec.
func (in *JsonataEventTransformationSpec) DeepCopy() *JsonataEventTransformationSpec {
if in == nil {
return nil
}
out := new(JsonataEventTransformationSpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *JsonataEventTransformationStatus) DeepCopyInto(out *JsonataEventTransformationStatus) {
*out = *in
in.Deployment.DeepCopyInto(&out.Deployment)
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JsonataEventTransformationStatus.
func (in *JsonataEventTransformationStatus) DeepCopy() *JsonataEventTransformationStatus {
if in == nil {
return nil
}
out := new(JsonataEventTransformationStatus)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ReplySpec) DeepCopyInto(out *ReplySpec) {
*out = *in
in.EventTransformations.DeepCopyInto(&out.EventTransformations)
if in.Discard != nil {
in, out := &in.Discard, &out.Discard
*out = new(bool)
**out = **in
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplySpec.
func (in *ReplySpec) DeepCopy() *ReplySpec {
if in == nil {
return nil
}
out := new(ReplySpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *RequestReply) DeepCopyInto(out *RequestReply) {
*out = *in
@ -330,7 +518,7 @@ func (in *RequestReplySpec) DeepCopyInto(out *RequestReplySpec) {
}
if in.Delivery != nil {
in, out := &in.Delivery, &out.Delivery
*out = new(duckv1.DeliverySpec)
*out = new(apisduckv1.DeliverySpec)
(*in).DeepCopyInto(*out)
}
if in.Secrets != nil {

View File

@ -148,6 +148,7 @@ func (e Flags) OIDCDiscoveryBaseURL() string {
return string(DefaultOIDCDiscoveryBaseURL)
}
//nolint:staticcheck
discoveryUrl, ok := e[OIDCDiscoveryBaseURL]
if !ok {
return string(DefaultOIDCDiscoveryBaseURL)

View File

@ -19,8 +19,8 @@ package v1
import (
"testing"
fuzz "github.com/google/gofuzz"
"k8s.io/apimachinery/pkg/runtime/serializer"
"sigs.k8s.io/randfill"
"k8s.io/apimachinery/pkg/api/apitesting/fuzzer"
"k8s.io/apimachinery/pkg/runtime"
@ -36,8 +36,8 @@ import (
var FuzzerFuncs = fuzzer.MergeFuzzerFuncs(
func(codecs serializer.CodecFactory) []interface{} {
return []interface{}{
func(s *SequenceStatus, c fuzz.Continue) {
c.FuzzNoCustom(s) // fuzz the status object
func(s *SequenceStatus, c randfill.Continue) {
c.FillNoCustom(s) // fuzz the status object
// Clear the random fuzzed condition
s.Status.SetConditions(nil)
@ -46,8 +46,8 @@ var FuzzerFuncs = fuzzer.MergeFuzzerFuncs(
s.InitializeConditions()
pkgfuzzer.FuzzConditions(&s.Status, c)
},
func(s *ParallelStatus, c fuzz.Continue) {
c.FuzzNoCustom(s) // fuzz the status object
func(s *ParallelStatus, c randfill.Continue) {
c.FillNoCustom(s) // fuzz the status object
// Clear the random fuzzed condition
s.Status.SetConditions(nil)

View File

@ -21,7 +21,6 @@ import (
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"knative.dev/pkg/kmp"
@ -102,14 +101,14 @@ func TestChannelDefaultsConfiguration(t *testing.T) {
wantChannelDefaults: &ChannelDefaults{
NamespaceDefaults: map[string]*ChannelTemplateSpec{
"some-namespace": {
TypeMeta: v1.TypeMeta{
TypeMeta: metav1.TypeMeta{
APIVersion: "messaging.knative.dev/v1beta1",
Kind: "KafkaChannel",
},
},
},
ClusterDefault: &ChannelTemplateSpec{
TypeMeta: v1.TypeMeta{
TypeMeta: metav1.TypeMeta{
APIVersion: "messaging.knative.dev/v1",
Kind: "InMemoryChannel",
},
@ -137,7 +136,7 @@ func TestChannelDefaultsConfiguration(t *testing.T) {
wantErr: false,
wantChannelDefaults: &ChannelDefaults{
ClusterDefault: &ChannelTemplateSpec{
TypeMeta: v1.TypeMeta{
TypeMeta: metav1.TypeMeta{
APIVersion: "messaging.knative.dev/v1beta1",
Kind: "KafkaChannel",
},
@ -162,7 +161,7 @@ func TestChannelDefaultsConfiguration(t *testing.T) {
wantChannelDefaults: &ChannelDefaults{
NamespaceDefaults: map[string]*ChannelTemplateSpec{
"some-namespace": {
TypeMeta: v1.TypeMeta{
TypeMeta: metav1.TypeMeta{
APIVersion: "messaging.knative.dev/v1",
Kind: "InMemoryChannel",
},
@ -189,7 +188,7 @@ func TestChannelDefaultsConfiguration(t *testing.T) {
wantChannelDefaults: &ChannelDefaults{
NamespaceDefaults: map[string]*ChannelTemplateSpec{
"some-namespace": {
TypeMeta: v1.TypeMeta{
TypeMeta: metav1.TypeMeta{
APIVersion: "messaging.knative.dev/v1",
Kind: "InMemoryChannel",
},

View File

@ -22,11 +22,13 @@ import (
"knative.dev/pkg/apis"
"knative.dev/pkg/kmp"
"knative.dev/pkg/system"
"knative.dev/eventing/pkg/apis/eventing"
_ "knative.dev/pkg/system/testing"
)
const eventingControllerSAName = "system:serviceaccount:knative-eventing:eventing-controller"
var eventingControllerSAName = fmt.Sprintf("%s:%s:%s", "system:serviceaccount", system.Namespace(), "eventing-controller")
func (imc *InMemoryChannel) Validate(ctx context.Context) *apis.FieldError {
errs := imc.Spec.Validate(ctx).ViaField("spec")

View File

@ -17,8 +17,11 @@ limitations under the License.
package v1
import (
"fmt"
"testing"
"knative.dev/pkg/system"
"golang.org/x/net/context"
authenticationv1 "k8s.io/api/authentication/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@ -139,7 +142,7 @@ func TestInMemoryChannelValidation(t *testing.T) {
want: func() *apis.FieldError {
diff, _ := kmp.ShortDiff(validIMCSingleSubscriber.Spec.Subscribers, validIMCTwoSubscribers.Spec.Subscribers)
return &apis.FieldError{
Message: "Channel.Spec.Subscribers changed by user test-user which was not the system:serviceaccount:knative-eventing:eventing-controller service account",
Message: fmt.Sprintf("%s:%s:%s", "Channel.Spec.Subscribers changed by user test-user which was not the system:serviceaccount", system.Namespace(), "eventing-controller service account"),
Paths: []string{"spec.subscribers"},
Details: diff,
}

View File

@ -19,9 +19,9 @@ package v1
import (
"testing"
fuzz "github.com/google/gofuzz"
"k8s.io/apimachinery/pkg/runtime/serializer"
"knative.dev/eventing/pkg/apis/messaging"
"sigs.k8s.io/randfill"
"k8s.io/apimachinery/pkg/api/apitesting/fuzzer"
"k8s.io/apimachinery/pkg/runtime"
@ -37,8 +37,8 @@ import (
var FuzzerFuncs = fuzzer.MergeFuzzerFuncs(
func(codecs serializer.CodecFactory) []interface{} {
return []interface{}{
func(ch *Channel, c fuzz.Continue) {
c.FuzzNoCustom(ch) // fuzz the Channel
func(ch *Channel, c randfill.Continue) {
c.FillNoCustom(ch) // fuzz the Channel
if ch != nil {
if ch.Annotations == nil {
ch.Annotations = make(map[string]string)
@ -52,8 +52,8 @@ var FuzzerFuncs = fuzzer.MergeFuzzerFuncs(
ch.Status.InitializeConditions()
pkgfuzzer.FuzzConditions(&ch.Status, c)
},
func(imc *InMemoryChannel, c fuzz.Continue) {
c.FuzzNoCustom(imc) // fuzz the InMemoryChannel
func(imc *InMemoryChannel, c randfill.Continue) {
c.FillNoCustom(imc) // fuzz the InMemoryChannel
if imc != nil {
if imc.Annotations == nil {
imc.Annotations = make(map[string]string)
@ -67,8 +67,8 @@ var FuzzerFuncs = fuzzer.MergeFuzzerFuncs(
imc.Status.InitializeConditions()
pkgfuzzer.FuzzConditions(&imc.Status, c)
},
func(s *SubscriptionStatus, c fuzz.Continue) {
c.FuzzNoCustom(s) // fuzz the status object
func(s *SubscriptionStatus, c randfill.Continue) {
c.FillNoCustom(s) // fuzz the status object
// Clear the random fuzzed condition
s.Status.SetConditions(nil)

View File

@ -17,6 +17,8 @@ limitations under the License.
package v1alpha1
import (
cmv1 "github.com/cert-manager/cert-manager/pkg/apis/certmanager/v1"
cmmeta "github.com/cert-manager/cert-manager/pkg/apis/meta/v1"
appsv1 "k8s.io/api/apps/v1"
corev1 "k8s.io/api/core/v1"
"knative.dev/pkg/apis"
@ -35,6 +37,12 @@ const (
// IntegrationSinkConditionEventPoliciesReady has status True when all the applying EventPolicies for this
// IntegrationSink are ready.
IntegrationSinkConditionEventPoliciesReady apis.ConditionType = "EventPoliciesReady"
// IntegrationSinkConditionCertificateReady has status True when the IntegrationSink's certificate is ready.
IntegrationSinkConditionCertificateReady apis.ConditionType = "CertificateReady"
// Certificate related condition reasons
IntegrationSinkCertificateNotReady string = "CertificateNotReady"
)
var IntegrationSinkCondSet = apis.NewLivingConditionSet(
@ -112,6 +120,37 @@ func (s *IntegrationSinkStatus) PropagateDeploymentStatus(d *appsv1.DeploymentSt
}
}
func (s *IntegrationSinkStatus) PropagateCertificateStatus(cs cmv1.CertificateStatus) bool {
var topLevel *cmv1.CertificateCondition
for _, cond := range cs.Conditions {
if cond.Type == cmv1.CertificateConditionReady {
topLevel = &cond
break
}
}
if topLevel == nil {
IntegrationSinkCondSet.Manage(s).MarkUnknown(IntegrationSinkConditionCertificateReady,
IntegrationSinkCertificateNotReady, "Certificate is progressing")
return false
}
if topLevel.Status == cmmeta.ConditionUnknown {
IntegrationSinkCondSet.Manage(s).MarkUnknown(IntegrationSinkConditionCertificateReady,
IntegrationSinkCertificateNotReady, "Certificate is progressing, "+topLevel.Reason+" Message: "+topLevel.Message)
return false
}
if topLevel.Status == cmmeta.ConditionFalse {
IntegrationSinkCondSet.Manage(s).MarkFalse(IntegrationSinkConditionCertificateReady,
IntegrationSinkCertificateNotReady, "Certificate is not ready, "+topLevel.Reason+" Message: "+topLevel.Message)
return false
}
IntegrationSinkCondSet.Manage(s).MarkTrue(IntegrationSinkConditionCertificateReady)
return true
}
func (s *IntegrationSinkStatus) SetAddress(address *duckv1.Addressable) {
s.Address = address
if address == nil || address.URL.IsEmpty() {

View File

@ -41,7 +41,7 @@ type IntegrationSink struct {
Status IntegrationSinkStatus `json:"status,omitempty"`
}
// Check the interfaces that JobSink should be implementing.
// Check the interfaces that IntegrationSink should be implementing.
var (
_ runtime.Object = (*IntegrationSink)(nil)
_ kmeta.OwnerRefable = (*IntegrationSink)(nil)
@ -49,7 +49,7 @@ var (
_ apis.Defaultable = (*IntegrationSink)(nil)
_ apis.HasSpec = (*IntegrationSink)(nil)
_ duckv1.KRShaped = (*IntegrationSink)(nil)
_ apis.Convertible = (*JobSink)(nil)
_ apis.Convertible = (*IntegrationSink)(nil)
)
type IntegrationSinkSpec struct {

View File

@ -16,6 +16,8 @@ limitations under the License.
package sources
//nolint:staticcheck // Not capitalizing "API" everywhere in this file
const (
// ApiServerSourceAddEventType is the ApiServerSource CloudEvent type for adds.
ApiServerSourceAddEventType = "dev.knative.apiserver.resource.add"

View File

@ -36,6 +36,7 @@ const (
var (
// ApiServerSourceResource respresents a Knative Eventing Sources ApiServerSource
//nolint:staticcheck // Not capitalizing "API"
ApiServerSourceResource = schema.GroupResource{
Group: GroupName,
Resource: "apiserversources",

View File

@ -34,7 +34,7 @@ func (cs *ContainerSourceSpec) Validate(ctx context.Context) *apis.FieldError {
}
// Validate there is at least a container
if cs.Template.Spec.Containers == nil || len(cs.Template.Spec.Containers) == 0 {
if len(cs.Template.Spec.Containers) == 0 {
fe := apis.ErrMissingField("containers")
errs = errs.Also(fe)
} else {

View File

@ -20,8 +20,8 @@ import (
"testing"
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
"sigs.k8s.io/randfill"
fuzz "github.com/google/gofuzz"
"k8s.io/apimachinery/pkg/api/apitesting/fuzzer"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/serializer"
@ -36,8 +36,8 @@ import (
var FuzzerFuncs = fuzzer.MergeFuzzerFuncs(
func(codecs serializer.CodecFactory) []interface{} {
return []interface{}{
func(source *ApiServerSource, c fuzz.Continue) {
c.FuzzNoCustom(source) // fuzz the source
func(source *ApiServerSource, c randfill.Continue) {
c.FillNoCustom(source) // fuzz the source
// Clear the random fuzzed condition
source.Status.SetConditions(nil)
@ -45,8 +45,8 @@ var FuzzerFuncs = fuzzer.MergeFuzzerFuncs(
source.Status.InitializeConditions()
pkgfuzzer.FuzzConditions(&source.Status, c)
},
func(source *PingSource, c fuzz.Continue) {
c.FuzzNoCustom(source) // fuzz the source
func(source *PingSource, c randfill.Continue) {
c.FillNoCustom(source) // fuzz the source
// Clear the random fuzzed condition
source.Status.SetConditions(nil)
@ -54,8 +54,8 @@ var FuzzerFuncs = fuzzer.MergeFuzzerFuncs(
source.Status.InitializeConditions()
pkgfuzzer.FuzzConditions(&source.Status, c)
},
func(source *ContainerSource, c fuzz.Continue) {
c.FuzzNoCustom(source) // fuzz the source
func(source *ContainerSource, c randfill.Continue) {
c.FillNoCustom(source) // fuzz the source
// Clear the random fuzzed condition
source.Status.SetConditions(nil)
@ -63,8 +63,8 @@ var FuzzerFuncs = fuzzer.MergeFuzzerFuncs(
source.Status.InitializeConditions()
pkgfuzzer.FuzzConditions(&source.Status, c)
},
func(source *SinkBinding, c fuzz.Continue) {
c.FuzzNoCustom(source) // fuzz the source
func(source *SinkBinding, c randfill.Continue) {
c.FillNoCustom(source) // fuzz the source
// Clear the random fuzzed condition
source.Status.SetConditions(nil)

View File

@ -23,6 +23,7 @@ import (
"strings"
"go.uber.org/zap"
"k8s.io/client-go/kubernetes"
corev1listers "k8s.io/client-go/listers/core/v1"
corev1 "k8s.io/api/core/v1"
@ -42,9 +43,11 @@ const (
)
var sbCondSet = apis.NewLivingConditionSet(
SinkBindingConditionAvailable,
SinkBindingConditionSinkProvided,
SinkBindingConditionOIDCIdentityCreated,
SinkBindingConditionOIDCTokenSecretCreated,
SinkBindingTrustBundlePropagated,
)
// GetConditionSet retrieves the condition set for this resource. Implements the KRShaped interface.
@ -86,12 +89,23 @@ func (sbs *SinkBindingStatus) InitializeConditions() {
// MarkBindingUnavailable marks the SinkBinding's Ready condition to False with
// the provided reason and message.
func (sbs *SinkBindingStatus) MarkBindingUnavailable(reason, message string) {
sbCondSet.Manage(sbs).MarkFalse(SinkBindingConditionReady, reason, message)
sbCondSet.Manage(sbs).MarkFalse(SinkBindingConditionAvailable, reason, message)
}
// MarkBindingAvailable marks the SinkBinding's Ready condition to True.
func (sbs *SinkBindingStatus) MarkBindingAvailable() {
sbCondSet.Manage(sbs).MarkTrue(SinkBindingConditionReady)
sbCondSet.Manage(sbs).MarkTrue(SinkBindingConditionAvailable)
}
// MarkFailedTrustBundlePropagation marks the SinkBinding's SinkBindingTrustBundlePropagated condition to False with
// the provided reason and message.
func (sbs *SinkBindingStatus) MarkFailedTrustBundlePropagation(reason, message string) {
sbCondSet.Manage(sbs).MarkFalse(SinkBindingTrustBundlePropagated, reason, message)
}
// MarkTrustBundlePropagated marks the SinkBinding's SinkBindingTrustBundlePropagated condition to True.
func (sbs *SinkBindingStatus) MarkTrustBundlePropagated() {
sbCondSet.Manage(sbs).MarkTrue(SinkBindingTrustBundlePropagated)
}
// MarkSink sets the condition that the source has a sink configured.
@ -106,6 +120,11 @@ func (sbs *SinkBindingStatus) MarkSink(addr *duckv1.Addressable) {
}
}
// MarkSinkFailed sets the condition that the source has a sink configured.
func (sbs *SinkBindingStatus) MarkSinkFailed(reason, messageFormat string, messageA ...interface{}) {
sbCondSet.Manage(sbs).MarkFalse(SinkBindingConditionSinkProvided, reason, messageFormat, messageA...)
}
func (sbs *SinkBindingStatus) MarkOIDCIdentityCreatedSucceeded() {
sbCondSet.Manage(sbs).MarkTrue(SinkBindingConditionOIDCIdentityCreated)
}
@ -196,13 +215,30 @@ func (sb *SinkBinding) Do(ctx context.Context, ps *duckv1.WithPod) {
Value: ceOverrides,
})
}
pss, err := eventingtls.AddTrustBundleVolumes(GetTrustBundleConfigMapLister(ctx), sb, &ps.Spec.Template.Spec)
if err != nil {
logging.FromContext(ctx).Errorw("Failed to add trust bundle volumes %s/%s: %+v", zap.Error(err))
return
gvk := schema.GroupVersionKind{
Group: SchemeGroupVersion.Group,
Version: SchemeGroupVersion.Version,
Kind: "SinkBinding",
}
bundles, err := eventingtls.PropagateTrustBundles(ctx, getKubeClient(ctx), GetTrustBundleConfigMapLister(ctx), gvk, sb)
if err != nil {
logging.FromContext(ctx).Errorw("Failed to propagate trust bundles", zap.Error(err))
}
if len(bundles) > 0 {
pss, err := eventingtls.AddTrustBundleVolumesFromConfigMaps(bundles, &ps.Spec.Template.Spec)
if err != nil {
logging.FromContext(ctx).Errorw("Failed to add trust bundle volumes from configmaps %s/%s: %+v", zap.Error(err))
return
}
ps.Spec.Template.Spec = *pss
} else {
pss, err := eventingtls.AddTrustBundleVolumes(GetTrustBundleConfigMapLister(ctx), sb, &ps.Spec.Template.Spec)
if err != nil {
logging.FromContext(ctx).Errorw("Failed to add trust bundle volumes %s/%s: %+v", zap.Error(err))
return
}
ps.Spec.Template.Spec = *pss
}
ps.Spec.Template.Spec = *pss
if sb.Status.OIDCTokenSecretName != nil {
ps.Spec.Template.Spec.Volumes = append(ps.Spec.Template.Spec.Volumes, corev1.Volume{
@ -310,6 +346,20 @@ func (sb *SinkBinding) Undo(ctx context.Context, ps *duckv1.WithPod) {
}
}
type kubeClientKey struct{}
func WithKubeClient(ctx context.Context, k kubernetes.Interface) context.Context {
return context.WithValue(ctx, kubeClientKey{}, k)
}
func getKubeClient(ctx context.Context) kubernetes.Interface {
k := ctx.Value(kubeClientKey{})
if k == nil {
panic("No Kube client found in context.")
}
return k.(kubernetes.Interface)
}
type configMapListerKey struct{}
func WithTrustBundleConfigMapLister(ctx context.Context, lister corev1listers.ConfigMapLister) context.Context {

View File

@ -32,6 +32,7 @@ import (
"knative.dev/pkg/apis"
duckv1 "knative.dev/pkg/apis/duck/v1"
"knative.dev/pkg/client/injection/ducks/duck/v1/addressable"
kubeclient "knative.dev/pkg/client/injection/kube/client/fake"
configmapinformer "knative.dev/pkg/client/injection/kube/informers/core/v1/configmap/fake"
fakedynamicclient "knative.dev/pkg/injection/clients/dynamicclient/fake"
"knative.dev/pkg/resolver"
@ -165,6 +166,7 @@ func TestSinkBindingStatusIsReady(t *testing.T) {
s := &SinkBindingStatus{}
s.InitializeConditions()
s.MarkSink(sink)
s.MarkTrustBundlePropagated()
s.MarkBindingUnavailable("TheReason", "this is the message")
return s
}(),
@ -175,6 +177,7 @@ func TestSinkBindingStatusIsReady(t *testing.T) {
s := &SinkBindingStatus{}
s.InitializeConditions()
s.MarkSink(sink)
s.MarkTrustBundlePropagated()
s.MarkBindingAvailable()
s.MarkOIDCIdentityCreatedSucceeded()
s.MarkOIDCTokenSecretCreatedSuccceeded()
@ -187,6 +190,7 @@ func TestSinkBindingStatusIsReady(t *testing.T) {
s := &SinkBindingStatus{}
s.InitializeConditions()
s.MarkSink(sink)
s.MarkTrustBundlePropagated()
s.MarkBindingAvailable()
s.MarkOIDCIdentityCreatedSucceeded()
s.MarkOIDCTokenSecretCreatedSuccceeded()
@ -199,6 +203,7 @@ func TestSinkBindingStatusIsReady(t *testing.T) {
s := &SinkBindingStatus{}
s.InitializeConditions()
s.MarkSink(sink)
s.MarkTrustBundlePropagated()
s.MarkBindingAvailable()
s.MarkOIDCIdentityCreatedSucceededWithReason("TheReason", "feature is disabled")
s.MarkOIDCTokenSecretCreatedSuccceeded()
@ -211,6 +216,7 @@ func TestSinkBindingStatusIsReady(t *testing.T) {
s := &SinkBindingStatus{}
s.InitializeConditions()
s.MarkSink(sink)
s.MarkTrustBundlePropagated()
s.MarkBindingAvailable()
s.MarkOIDCIdentityCreatedFailed("TheReason", "this is a message")
s.MarkOIDCTokenSecretCreatedSuccceeded()
@ -223,6 +229,7 @@ func TestSinkBindingStatusIsReady(t *testing.T) {
s := &SinkBindingStatus{}
s.InitializeConditions()
s.MarkSink(sink)
s.MarkTrustBundlePropagated()
s.MarkBindingAvailable()
s.MarkOIDCIdentityCreatedSucceeded()
s.MarkOIDCTokenSecretCreatedSuccceeded()
@ -235,12 +242,26 @@ func TestSinkBindingStatusIsReady(t *testing.T) {
s := &SinkBindingStatus{}
s.InitializeConditions()
s.MarkSink(sink)
s.MarkTrustBundlePropagated()
s.MarkBindingAvailable()
s.MarkOIDCIdentityCreatedSucceeded()
s.MarkOIDCTokenSecretCreatedFailed("Some", "reason")
return s
}(),
want: false,
}, {
name: "mark trust bundle propagation failed",
s: func() *SinkBindingStatus {
s := &SinkBindingStatus{}
s.InitializeConditions()
s.MarkSink(sink)
s.MarkFailedTrustBundlePropagation("failed", "failed")
s.MarkBindingAvailable()
s.MarkOIDCIdentityCreatedSucceeded()
s.MarkOIDCTokenSecretCreatedSuccceeded()
return s
}(),
want: false,
}}
for _, test := range tests {
@ -906,6 +927,7 @@ func TestSinkBindingDo(t *testing.T) {
}
ctx = WithURIResolver(ctx, r)
ctx = WithTrustBundleConfigMapLister(ctx, configmapinformer.Get(ctx).Lister())
ctx = WithKubeClient(ctx, kubeclient.Get(ctx))
for _, cm := range test.configMaps {
_ = configmapinformer.Get(ctx).Informer().GetIndexer().Add(cm)
@ -976,3 +998,17 @@ func TestSinkBindingDoNoURI(t *testing.T) {
t.Error("Undo (-want, +got):", cmp.Diff(want, got))
}
}
func TestSinkBindingUnavailable(t *testing.T) {
sb := &SinkBinding{}
sb.Status.InitializeConditions()
sb.Status.MarkBindingUnavailable("failed", "failed")
sb.Status.InitializeConditions()
r := sb.Status.GetCondition(apis.ConditionReady)
if r.IsTrue() || r.IsUnknown() {
t.Error("unexpected condition: ", r)
}
}

View File

@ -70,14 +70,18 @@ type SinkBindingSpec struct {
}
const (
// SinkBindingConditionReady is configured to indicate whether the Binding
// SinkBindingConditionAvailable is configured to indicate whether the Binding
// has been configured for resources subject to its runtime contract.
SinkBindingConditionReady = apis.ConditionReady
SinkBindingConditionAvailable apis.ConditionType = "SinkBindingAvailable"
// SinkBindingConditionSinkProvided is configured to indicate whether the
// sink has been properly extracted from the resolver.
SinkBindingConditionSinkProvided apis.ConditionType = "SinkProvided"
// SinkBindingTrustBundlePropagated is configured to indicate whether the
// TLS trust bundle has been properly propagated.
SinkBindingTrustBundlePropagated apis.ConditionType = "TrustBundlePropagated"
// SinkBindingConditionOIDCIdentityCreated is configured to indicate whether
// the OIDC identity has been created for the sink.
SinkBindingConditionOIDCIdentityCreated apis.ConditionType = "OIDCIdentityCreated"

View File

@ -17,6 +17,7 @@ limitations under the License.
package v1alpha1
import (
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
@ -60,6 +61,8 @@ type IntegrationSourceSpec struct {
Aws *Aws `json:"aws,omitempty"` // AWS source configuration
Timer *Timer `json:"timer,omitempty"` // Timer configuration
Template *corev1.PodTemplateSpec `json:"template,omitempty"` // Pod configuration
}
type Timer struct {

View File

@ -22,6 +22,7 @@ limitations under the License.
package v1alpha1
import (
v1 "k8s.io/api/core/v1"
runtime "k8s.io/apimachinery/pkg/runtime"
integrationv1alpha1 "knative.dev/eventing/pkg/apis/common/integration/v1alpha1"
)
@ -137,6 +138,11 @@ func (in *IntegrationSourceSpec) DeepCopyInto(out *IntegrationSourceSpec) {
*out = new(Timer)
**out = **in
}
if in.Template != nil {
in, out := &in.Template, &out.Template
*out = new(v1.PodTemplateSpec)
(*in).DeepCopyInto(*out)
}
return
}

View File

@ -425,8 +425,8 @@ func (h *Handler) handleDispatchToSubscriberRequest(ctx context.Context, trigger
subscriberURI := trigger.Status.SubscriberURI
if subscriberURI == nil {
// Record the event count.
writer.WriteHeader(http.StatusBadRequest)
_ = h.reporter.ReportEventCount(reportArgs, http.StatusBadRequest)
writer.WriteHeader(http.StatusNotFound)
_ = h.reporter.ReportEventCount(reportArgs, http.StatusNotFound)
return
}

View File

@ -138,7 +138,7 @@ func TestReceiver(t *testing.T) {
triggers: []*eventingv1.Trigger{
makeTrigger(withoutSubscriberURI()),
},
expectedStatus: http.StatusBadRequest,
expectedStatus: http.StatusNotFound,
expectedEventCount: true,
},
"Trigger without a Filter": {

View File

@ -0,0 +1,194 @@
/*
Copyright 2025 The Knative 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 certificates
import (
"context"
"fmt"
"sync"
"sync/atomic"
"time"
cmv1 "github.com/cert-manager/cert-manager/pkg/apis/certmanager/v1"
cmmeta "github.com/cert-manager/cert-manager/pkg/apis/meta/v1"
"go.uber.org/zap"
cmclient "github.com/cert-manager/cert-manager/pkg/client/clientset/versioned"
cminformers "github.com/cert-manager/cert-manager/pkg/client/informers/externalversions"
cmlistersv1 "github.com/cert-manager/cert-manager/pkg/client/listers/certmanager/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/tools/cache"
"knative.dev/eventing/pkg/apis/feature"
"knative.dev/pkg/controller"
"knative.dev/pkg/injection"
"knative.dev/pkg/kmeta"
"knative.dev/pkg/logging"
)
const (
//nolint:gosec // Not a credential, just a label
SecretLabelKey = "app.kubernetes.io/component"
//nolint:gosec // Not a credential, just a label
SecretLabelValue = "knative-eventing"
CertificateLabelKey = "app.kubernetes.io/component"
CertificateLabelValue = "knative-eventing"
SecretLabelSelectorPair = SecretLabelKey + "=" + SecretLabelValue
CertificateLabelSelectorPair = CertificateLabelKey + "=" + CertificateLabelValue
)
type DynamicCertificatesInformer struct {
cancel atomic.Pointer[context.CancelFunc]
lister atomic.Pointer[cmlistersv1.CertificateLister]
mu sync.Mutex
}
func NewDynamicCertificatesInformer() *DynamicCertificatesInformer {
return &DynamicCertificatesInformer{
cancel: atomic.Pointer[context.CancelFunc]{},
lister: atomic.Pointer[cmlistersv1.CertificateLister]{},
mu: sync.Mutex{},
}
}
func (df *DynamicCertificatesInformer) Reconcile(ctx context.Context, features feature.Flags, handler cache.ResourceEventHandler) error {
logger := logging.FromContext(ctx).With(zap.String("component", "DynamicCertificatesInformer"))
df.mu.Lock()
defer df.mu.Unlock()
if !features.IsPermissiveTransportEncryption() && !features.IsStrictTransportEncryption() {
logger.Debugw("transport encryption is disabled, stopping informer")
df.stop(ctx)
return nil
}
if df.cancel.Load() != nil {
logger.Debugw("Cancel function already loaded, skipping start")
return nil
}
logger.Debugw("Starting dynamic certificates informer")
ctx, cancel := context.WithCancel(ctx)
client := cmclient.NewForConfigOrDie(injection.GetConfig(ctx))
factory := cminformers.NewSharedInformerFactoryWithOptions(
client,
controller.DefaultResyncPeriod,
cminformers.WithTweakListOptions(func(options *metav1.ListOptions) {
options.LabelSelector = CertificateLabelSelectorPair
}),
)
informer := factory.Certmanager().V1().Certificates()
informer.Informer().AddEventHandler(handler)
factory.Start(ctx.Done())
if !cache.WaitForCacheSync(ctx.Done(), informer.Informer().HasSynced) {
defer cancel()
logger.Errorw("Failed to sync certificates informer cache")
return fmt.Errorf("failed to sync cert-manager Certificate informer")
}
logger.Infow("Started dynamic certificates informer")
lister := informer.Lister()
df.lister.Store(&lister)
df.cancel.Store(&cancel) // Cancel is always set as last field since it's used as a "guard".
return nil
}
func (df *DynamicCertificatesInformer) stop(ctx context.Context) {
cancel := df.cancel.Load()
if cancel == nil {
logging.FromContext(ctx).Debugw("Certificate informer has not been started, nothing to stop")
return
}
(*cancel)()
df.cancel.Store(nil) // Cancel is always set as last field since it's used as a "guard".
}
func (df *DynamicCertificatesInformer) Lister() *atomic.Pointer[cmlistersv1.CertificateLister] {
df.mu.Lock()
defer df.mu.Unlock()
return &df.lister
}
func CertificateName(objName string) string {
return kmeta.ChildName(objName, "-server-tls")
}
type CertificateOption func(cert *cmv1.Certificate)
func MakeCertificate(obj kmeta.OwnerRefableAccessor, opts ...CertificateOption) *cmv1.Certificate {
cert := &cmv1.Certificate{
ObjectMeta: metav1.ObjectMeta{
Name: CertificateName(obj.GetName()),
Namespace: obj.GetNamespace(),
OwnerReferences: []metav1.OwnerReference{
*kmeta.NewControllerRef(obj),
},
Labels: map[string]string{
CertificateLabelKey: CertificateLabelValue,
"app.kubernetes.io/name": obj.GetName(),
},
},
Spec: cmv1.CertificateSpec{
SecretName: CertificateName(obj.GetName()),
SecretTemplate: &cmv1.CertificateSecretTemplate{
Labels: map[string]string{
SecretLabelKey: SecretLabelValue,
"app.kubernetes.io/name": obj.GetName(),
},
},
Duration: &metav1.Duration{
Duration: 90 * 24 * time.Hour, // 90 days
},
RenewBefore: &metav1.Duration{
Duration: 15 * 24 * time.Hour, // 15 days
},
Subject: &cmv1.X509Subject{
Organizations: []string{"local"},
},
PrivateKey: &cmv1.CertificatePrivateKey{
Algorithm: cmv1.RSAKeyAlgorithm,
Encoding: cmv1.PKCS1,
Size: 2048,
RotationPolicy: cmv1.RotationPolicyAlways,
},
IssuerRef: cmmeta.ObjectReference{
Name: "knative-eventing-ca-issuer",
Kind: "ClusterIssuer",
Group: "cert-manager.io",
},
},
}
for _, opt := range opts {
opt(cert)
}
return cert
}
func WithDNSNames(dnsNames ...string) CertificateOption {
return func(cert *cmv1.Certificate) {
cert.Spec.DNSNames = dnsNames
}
}

View File

@ -0,0 +1,96 @@
/*
Copyright 2025 The Knative 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 certificates
import (
"fmt"
"testing"
"time"
cmv1 "github.com/cert-manager/cert-manager/pkg/apis/certmanager/v1"
cmmeta "github.com/cert-manager/cert-manager/pkg/apis/meta/v1"
"github.com/google/go-cmp/cmp"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
sourcesv1 "knative.dev/eventing/pkg/apis/sources/v1"
"knative.dev/pkg/kmeta"
)
func TestNewCertificate(t *testing.T) {
testNS := "test-ns"
testName := "test-name"
obj := &sourcesv1.PingSource{
ObjectMeta: metav1.ObjectMeta{
Name: testName,
Namespace: testNS,
},
}
want := &cmv1.Certificate{
ObjectMeta: metav1.ObjectMeta{
Name: CertificateName(obj.GetName()),
Namespace: obj.GetNamespace(),
OwnerReferences: []metav1.OwnerReference{
*kmeta.NewControllerRef(obj),
},
Labels: map[string]string{
"app.kubernetes.io/component": "knative-eventing",
"app.kubernetes.io/name": obj.GetName(),
},
},
Spec: cmv1.CertificateSpec{
SecretName: CertificateName(obj.GetName()),
SecretTemplate: &cmv1.CertificateSecretTemplate{
Labels: map[string]string{
"app.kubernetes.io/component": "knative-eventing",
"app.kubernetes.io/name": obj.GetName(),
},
},
Duration: &metav1.Duration{
Duration: 90 * 24 * time.Hour, // 90 days
},
RenewBefore: &metav1.Duration{
Duration: 15 * 24 * time.Hour, // 15 days
},
Subject: &cmv1.X509Subject{
Organizations: []string{"local"},
},
PrivateKey: &cmv1.CertificatePrivateKey{
Algorithm: cmv1.RSAKeyAlgorithm,
Encoding: cmv1.PKCS1,
Size: 2048,
RotationPolicy: cmv1.RotationPolicyAlways,
},
DNSNames: []string{
fmt.Sprintf("%s.%s.svc.cluster.local", obj.GetName()+"-deployment", obj.GetNamespace()),
fmt.Sprintf("%s.%s.svc", obj.GetName()+"-deployment", obj.GetNamespace()),
},
IssuerRef: cmmeta.ObjectReference{
Name: "knative-eventing-ca-issuer",
Kind: "ClusterIssuer",
Group: "cert-manager.io",
},
},
}
got := MakeCertificate(obj, WithDNSNames(want.Spec.DNSNames...))
if diff := cmp.Diff(want, got); diff != "" {
t.Error("unexpected condition (-want, +got) =", diff)
}
}

View File

@ -0,0 +1,57 @@
/*
Copyright 2021 The Knative 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.
*/
// Code generated by injection-gen. DO NOT EDIT.
package client
import (
context "context"
versioned "github.com/cert-manager/cert-manager/pkg/client/clientset/versioned"
rest "k8s.io/client-go/rest"
injection "knative.dev/pkg/injection"
logging "knative.dev/pkg/logging"
)
func init() {
injection.Default.RegisterClient(withClientFromConfig)
injection.Default.RegisterClientFetcher(func(ctx context.Context) interface{} {
return Get(ctx)
})
}
// Key is used as the key for associating information with a context.Context.
type Key struct{}
func withClientFromConfig(ctx context.Context, cfg *rest.Config) context.Context {
return context.WithValue(ctx, Key{}, versioned.NewForConfigOrDie(cfg))
}
// Get extracts the versioned.Interface client from the context.
func Get(ctx context.Context) versioned.Interface {
untyped := ctx.Value(Key{})
if untyped == nil {
if injection.GetConfig(ctx) == nil {
logging.FromContext(ctx).Panic(
"Unable to fetch github.com/cert-manager/cert-manager/pkg/client/clientset/versioned.Interface from context. This context is not the application context (which is typically given to constructors via sharedmain).")
} else {
logging.FromContext(ctx).Panic(
"Unable to fetch github.com/cert-manager/cert-manager/pkg/client/clientset/versioned.Interface from context.")
}
}
return untyped.(versioned.Interface)
}

View File

@ -0,0 +1,57 @@
/*
Copyright 2021 The Knative 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.
*/
// Code generated by injection-gen. DO NOT EDIT.
package fake
import (
context "context"
fake "github.com/cert-manager/cert-manager/pkg/client/clientset/versioned/fake"
runtime "k8s.io/apimachinery/pkg/runtime"
rest "k8s.io/client-go/rest"
client "knative.dev/eventing/pkg/client/certmanager/injection/client"
injection "knative.dev/pkg/injection"
logging "knative.dev/pkg/logging"
)
func init() {
injection.Fake.RegisterClient(withClient)
injection.Fake.RegisterClientFetcher(func(ctx context.Context) interface{} {
return Get(ctx)
})
}
func withClient(ctx context.Context, cfg *rest.Config) context.Context {
ctx, _ = With(ctx)
return ctx
}
func With(ctx context.Context, objects ...runtime.Object) (context.Context, *fake.Clientset) {
cs := fake.NewSimpleClientset(objects...)
return context.WithValue(ctx, client.Key{}, cs), cs
}
// Get extracts the Kubernetes client from the context.
func Get(ctx context.Context) *fake.Clientset {
untyped := ctx.Value(client.Key{})
if untyped == nil {
logging.FromContext(ctx).Panic(
"Unable to fetch github.com/cert-manager/cert-manager/pkg/client/clientset/versioned/fake.Clientset from context.")
}
return untyped.(*fake.Clientset)
}

View File

@ -0,0 +1,47 @@
/*
Copyright 2021 The Knative 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.
*/
// Code generated by injection-gen. DO NOT EDIT.
package challenge
import (
context "context"
v1 "github.com/cert-manager/cert-manager/pkg/client/informers/externalversions/acme/v1"
factory "knative.dev/eventing/pkg/client/certmanager/injection/informers/factory"
controller "knative.dev/pkg/controller"
logging "knative.dev/pkg/logging"
)
// Key is used for associating the Informer inside the context.Context.
type Key struct{}
func WithInformer(ctx context.Context) (context.Context, controller.Informer) {
f := factory.Get(ctx)
inf := f.Acme().V1().Challenges()
return context.WithValue(ctx, Key{}, inf), inf.Informer()
}
// Get extracts the typed informer from the context.
func Get(ctx context.Context) v1.ChallengeInformer {
untyped := ctx.Value(Key{})
if untyped == nil {
logging.FromContext(ctx).Panic(
"Unable to fetch github.com/cert-manager/cert-manager/pkg/client/informers/externalversions/acme/v1.ChallengeInformer from context.")
}
return untyped.(v1.ChallengeInformer)
}

View File

@ -0,0 +1,40 @@
/*
Copyright 2021 The Knative 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.
*/
// Code generated by injection-gen. DO NOT EDIT.
package fake
import (
context "context"
challenge "knative.dev/eventing/pkg/client/certmanager/injection/informers/acme/v1/challenge"
fake "knative.dev/eventing/pkg/client/certmanager/injection/informers/factory/fake"
controller "knative.dev/pkg/controller"
injection "knative.dev/pkg/injection"
)
var Get = challenge.Get
func init() {
injection.Fake.RegisterInformer(withInformer)
}
func withInformer(ctx context.Context) (context.Context, controller.Informer) {
f := fake.Get(ctx)
inf := f.Acme().V1().Challenges()
return context.WithValue(ctx, challenge.Key{}, inf), inf.Informer()
}

View File

@ -0,0 +1,65 @@
/*
Copyright 2021 The Knative 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.
*/
// Code generated by injection-gen. DO NOT EDIT.
package filtered
import (
context "context"
v1 "github.com/cert-manager/cert-manager/pkg/client/informers/externalversions/acme/v1"
filtered "knative.dev/eventing/pkg/client/certmanager/injection/informers/factory/filtered"
controller "knative.dev/pkg/controller"
injection "knative.dev/pkg/injection"
logging "knative.dev/pkg/logging"
)
func init() {
injection.Default.RegisterFilteredInformers(withInformer)
}
// Key is used for associating the Informer inside the context.Context.
type Key struct {
Selector string
}
func withInformer(ctx context.Context) (context.Context, []controller.Informer) {
untyped := ctx.Value(filtered.LabelKey{})
if untyped == nil {
logging.FromContext(ctx).Panic(
"Unable to fetch labelkey from context.")
}
labelSelectors := untyped.([]string)
infs := []controller.Informer{}
for _, selector := range labelSelectors {
f := filtered.Get(ctx, selector)
inf := f.Acme().V1().Challenges()
ctx = context.WithValue(ctx, Key{Selector: selector}, inf)
infs = append(infs, inf.Informer())
}
return ctx, infs
}
// Get extracts the typed informer from the context.
func Get(ctx context.Context, selector string) v1.ChallengeInformer {
untyped := ctx.Value(Key{Selector: selector})
if untyped == nil {
logging.FromContext(ctx).Panicf(
"Unable to fetch github.com/cert-manager/cert-manager/pkg/client/informers/externalversions/acme/v1.ChallengeInformer with selector %s from context.", selector)
}
return untyped.(v1.ChallengeInformer)
}

View File

@ -0,0 +1,52 @@
/*
Copyright 2021 The Knative 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.
*/
// Code generated by injection-gen. DO NOT EDIT.
package fake
import (
context "context"
filtered "knative.dev/eventing/pkg/client/certmanager/injection/informers/acme/v1/challenge/filtered"
factoryfiltered "knative.dev/eventing/pkg/client/certmanager/injection/informers/factory/filtered"
controller "knative.dev/pkg/controller"
injection "knative.dev/pkg/injection"
logging "knative.dev/pkg/logging"
)
var Get = filtered.Get
func init() {
injection.Fake.RegisterFilteredInformers(withInformer)
}
func withInformer(ctx context.Context) (context.Context, []controller.Informer) {
untyped := ctx.Value(factoryfiltered.LabelKey{})
if untyped == nil {
logging.FromContext(ctx).Panic(
"Unable to fetch labelkey from context.")
}
labelSelectors := untyped.([]string)
infs := []controller.Informer{}
for _, selector := range labelSelectors {
f := factoryfiltered.Get(ctx, selector)
inf := f.Acme().V1().Challenges()
ctx = context.WithValue(ctx, filtered.Key{Selector: selector}, inf)
infs = append(infs, inf.Informer())
}
return ctx, infs
}

View File

@ -0,0 +1,40 @@
/*
Copyright 2021 The Knative 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.
*/
// Code generated by injection-gen. DO NOT EDIT.
package fake
import (
context "context"
order "knative.dev/eventing/pkg/client/certmanager/injection/informers/acme/v1/order"
fake "knative.dev/eventing/pkg/client/certmanager/injection/informers/factory/fake"
controller "knative.dev/pkg/controller"
injection "knative.dev/pkg/injection"
)
var Get = order.Get
func init() {
injection.Fake.RegisterInformer(withInformer)
}
func withInformer(ctx context.Context) (context.Context, controller.Informer) {
f := fake.Get(ctx)
inf := f.Acme().V1().Orders()
return context.WithValue(ctx, order.Key{}, inf), inf.Informer()
}

View File

@ -0,0 +1,52 @@
/*
Copyright 2021 The Knative 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.
*/
// Code generated by injection-gen. DO NOT EDIT.
package fake
import (
context "context"
filtered "knative.dev/eventing/pkg/client/certmanager/injection/informers/acme/v1/order/filtered"
factoryfiltered "knative.dev/eventing/pkg/client/certmanager/injection/informers/factory/filtered"
controller "knative.dev/pkg/controller"
injection "knative.dev/pkg/injection"
logging "knative.dev/pkg/logging"
)
var Get = filtered.Get
func init() {
injection.Fake.RegisterFilteredInformers(withInformer)
}
func withInformer(ctx context.Context) (context.Context, []controller.Informer) {
untyped := ctx.Value(factoryfiltered.LabelKey{})
if untyped == nil {
logging.FromContext(ctx).Panic(
"Unable to fetch labelkey from context.")
}
labelSelectors := untyped.([]string)
infs := []controller.Informer{}
for _, selector := range labelSelectors {
f := factoryfiltered.Get(ctx, selector)
inf := f.Acme().V1().Orders()
ctx = context.WithValue(ctx, filtered.Key{Selector: selector}, inf)
infs = append(infs, inf.Informer())
}
return ctx, infs
}

View File

@ -0,0 +1,65 @@
/*
Copyright 2021 The Knative 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.
*/
// Code generated by injection-gen. DO NOT EDIT.
package filtered
import (
context "context"
v1 "github.com/cert-manager/cert-manager/pkg/client/informers/externalversions/acme/v1"
filtered "knative.dev/eventing/pkg/client/certmanager/injection/informers/factory/filtered"
controller "knative.dev/pkg/controller"
injection "knative.dev/pkg/injection"
logging "knative.dev/pkg/logging"
)
func init() {
injection.Default.RegisterFilteredInformers(withInformer)
}
// Key is used for associating the Informer inside the context.Context.
type Key struct {
Selector string
}
func withInformer(ctx context.Context) (context.Context, []controller.Informer) {
untyped := ctx.Value(filtered.LabelKey{})
if untyped == nil {
logging.FromContext(ctx).Panic(
"Unable to fetch labelkey from context.")
}
labelSelectors := untyped.([]string)
infs := []controller.Informer{}
for _, selector := range labelSelectors {
f := filtered.Get(ctx, selector)
inf := f.Acme().V1().Orders()
ctx = context.WithValue(ctx, Key{Selector: selector}, inf)
infs = append(infs, inf.Informer())
}
return ctx, infs
}
// Get extracts the typed informer from the context.
func Get(ctx context.Context, selector string) v1.OrderInformer {
untyped := ctx.Value(Key{Selector: selector})
if untyped == nil {
logging.FromContext(ctx).Panicf(
"Unable to fetch github.com/cert-manager/cert-manager/pkg/client/informers/externalversions/acme/v1.OrderInformer with selector %s from context.", selector)
}
return untyped.(v1.OrderInformer)
}

View File

@ -0,0 +1,47 @@
/*
Copyright 2021 The Knative 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.
*/
// Code generated by injection-gen. DO NOT EDIT.
package order
import (
context "context"
v1 "github.com/cert-manager/cert-manager/pkg/client/informers/externalversions/acme/v1"
factory "knative.dev/eventing/pkg/client/certmanager/injection/informers/factory"
controller "knative.dev/pkg/controller"
logging "knative.dev/pkg/logging"
)
// Key is used for associating the Informer inside the context.Context.
type Key struct{}
func WithInformer(ctx context.Context) (context.Context, controller.Informer) {
f := factory.Get(ctx)
inf := f.Acme().V1().Orders()
return context.WithValue(ctx, Key{}, inf), inf.Informer()
}
// Get extracts the typed informer from the context.
func Get(ctx context.Context) v1.OrderInformer {
untyped := ctx.Value(Key{})
if untyped == nil {
logging.FromContext(ctx).Panic(
"Unable to fetch github.com/cert-manager/cert-manager/pkg/client/informers/externalversions/acme/v1.OrderInformer from context.")
}
return untyped.(v1.OrderInformer)
}

View File

@ -0,0 +1,47 @@
/*
Copyright 2021 The Knative 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.
*/
// Code generated by injection-gen. DO NOT EDIT.
package certificate
import (
context "context"
v1 "github.com/cert-manager/cert-manager/pkg/client/informers/externalversions/certmanager/v1"
factory "knative.dev/eventing/pkg/client/certmanager/injection/informers/factory"
controller "knative.dev/pkg/controller"
logging "knative.dev/pkg/logging"
)
// Key is used for associating the Informer inside the context.Context.
type Key struct{}
func WithInformer(ctx context.Context) (context.Context, controller.Informer) {
f := factory.Get(ctx)
inf := f.Certmanager().V1().Certificates()
return context.WithValue(ctx, Key{}, inf), inf.Informer()
}
// Get extracts the typed informer from the context.
func Get(ctx context.Context) v1.CertificateInformer {
untyped := ctx.Value(Key{})
if untyped == nil {
logging.FromContext(ctx).Panic(
"Unable to fetch github.com/cert-manager/cert-manager/pkg/client/informers/externalversions/certmanager/v1.CertificateInformer from context.")
}
return untyped.(v1.CertificateInformer)
}

View File

@ -0,0 +1,40 @@
/*
Copyright 2021 The Knative 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.
*/
// Code generated by injection-gen. DO NOT EDIT.
package fake
import (
context "context"
certificate "knative.dev/eventing/pkg/client/certmanager/injection/informers/certmanager/v1/certificate"
fake "knative.dev/eventing/pkg/client/certmanager/injection/informers/factory/fake"
controller "knative.dev/pkg/controller"
injection "knative.dev/pkg/injection"
)
var Get = certificate.Get
func init() {
injection.Fake.RegisterInformer(withInformer)
}
func withInformer(ctx context.Context) (context.Context, controller.Informer) {
f := fake.Get(ctx)
inf := f.Certmanager().V1().Certificates()
return context.WithValue(ctx, certificate.Key{}, inf), inf.Informer()
}

View File

@ -0,0 +1,65 @@
/*
Copyright 2021 The Knative 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.
*/
// Code generated by injection-gen. DO NOT EDIT.
package filtered
import (
context "context"
v1 "github.com/cert-manager/cert-manager/pkg/client/informers/externalversions/certmanager/v1"
filtered "knative.dev/eventing/pkg/client/certmanager/injection/informers/factory/filtered"
controller "knative.dev/pkg/controller"
injection "knative.dev/pkg/injection"
logging "knative.dev/pkg/logging"
)
func init() {
injection.Default.RegisterFilteredInformers(withInformer)
}
// Key is used for associating the Informer inside the context.Context.
type Key struct {
Selector string
}
func withInformer(ctx context.Context) (context.Context, []controller.Informer) {
untyped := ctx.Value(filtered.LabelKey{})
if untyped == nil {
logging.FromContext(ctx).Panic(
"Unable to fetch labelkey from context.")
}
labelSelectors := untyped.([]string)
infs := []controller.Informer{}
for _, selector := range labelSelectors {
f := filtered.Get(ctx, selector)
inf := f.Certmanager().V1().Certificates()
ctx = context.WithValue(ctx, Key{Selector: selector}, inf)
infs = append(infs, inf.Informer())
}
return ctx, infs
}
// Get extracts the typed informer from the context.
func Get(ctx context.Context, selector string) v1.CertificateInformer {
untyped := ctx.Value(Key{Selector: selector})
if untyped == nil {
logging.FromContext(ctx).Panicf(
"Unable to fetch github.com/cert-manager/cert-manager/pkg/client/informers/externalversions/certmanager/v1.CertificateInformer with selector %s from context.", selector)
}
return untyped.(v1.CertificateInformer)
}

View File

@ -0,0 +1,52 @@
/*
Copyright 2021 The Knative 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.
*/
// Code generated by injection-gen. DO NOT EDIT.
package fake
import (
context "context"
filtered "knative.dev/eventing/pkg/client/certmanager/injection/informers/certmanager/v1/certificate/filtered"
factoryfiltered "knative.dev/eventing/pkg/client/certmanager/injection/informers/factory/filtered"
controller "knative.dev/pkg/controller"
injection "knative.dev/pkg/injection"
logging "knative.dev/pkg/logging"
)
var Get = filtered.Get
func init() {
injection.Fake.RegisterFilteredInformers(withInformer)
}
func withInformer(ctx context.Context) (context.Context, []controller.Informer) {
untyped := ctx.Value(factoryfiltered.LabelKey{})
if untyped == nil {
logging.FromContext(ctx).Panic(
"Unable to fetch labelkey from context.")
}
labelSelectors := untyped.([]string)
infs := []controller.Informer{}
for _, selector := range labelSelectors {
f := factoryfiltered.Get(ctx, selector)
inf := f.Certmanager().V1().Certificates()
ctx = context.WithValue(ctx, filtered.Key{Selector: selector}, inf)
infs = append(infs, inf.Informer())
}
return ctx, infs
}

View File

@ -0,0 +1,47 @@
/*
Copyright 2021 The Knative 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.
*/
// Code generated by injection-gen. DO NOT EDIT.
package certificaterequest
import (
context "context"
v1 "github.com/cert-manager/cert-manager/pkg/client/informers/externalversions/certmanager/v1"
factory "knative.dev/eventing/pkg/client/certmanager/injection/informers/factory"
controller "knative.dev/pkg/controller"
logging "knative.dev/pkg/logging"
)
// Key is used for associating the Informer inside the context.Context.
type Key struct{}
func WithInformer(ctx context.Context) (context.Context, controller.Informer) {
f := factory.Get(ctx)
inf := f.Certmanager().V1().CertificateRequests()
return context.WithValue(ctx, Key{}, inf), inf.Informer()
}
// Get extracts the typed informer from the context.
func Get(ctx context.Context) v1.CertificateRequestInformer {
untyped := ctx.Value(Key{})
if untyped == nil {
logging.FromContext(ctx).Panic(
"Unable to fetch github.com/cert-manager/cert-manager/pkg/client/informers/externalversions/certmanager/v1.CertificateRequestInformer from context.")
}
return untyped.(v1.CertificateRequestInformer)
}

View File

@ -0,0 +1,40 @@
/*
Copyright 2021 The Knative 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.
*/
// Code generated by injection-gen. DO NOT EDIT.
package fake
import (
context "context"
certificaterequest "knative.dev/eventing/pkg/client/certmanager/injection/informers/certmanager/v1/certificaterequest"
fake "knative.dev/eventing/pkg/client/certmanager/injection/informers/factory/fake"
controller "knative.dev/pkg/controller"
injection "knative.dev/pkg/injection"
)
var Get = certificaterequest.Get
func init() {
injection.Fake.RegisterInformer(withInformer)
}
func withInformer(ctx context.Context) (context.Context, controller.Informer) {
f := fake.Get(ctx)
inf := f.Certmanager().V1().CertificateRequests()
return context.WithValue(ctx, certificaterequest.Key{}, inf), inf.Informer()
}

View File

@ -0,0 +1,65 @@
/*
Copyright 2021 The Knative 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.
*/
// Code generated by injection-gen. DO NOT EDIT.
package filtered
import (
context "context"
v1 "github.com/cert-manager/cert-manager/pkg/client/informers/externalversions/certmanager/v1"
filtered "knative.dev/eventing/pkg/client/certmanager/injection/informers/factory/filtered"
controller "knative.dev/pkg/controller"
injection "knative.dev/pkg/injection"
logging "knative.dev/pkg/logging"
)
func init() {
injection.Default.RegisterFilteredInformers(withInformer)
}
// Key is used for associating the Informer inside the context.Context.
type Key struct {
Selector string
}
func withInformer(ctx context.Context) (context.Context, []controller.Informer) {
untyped := ctx.Value(filtered.LabelKey{})
if untyped == nil {
logging.FromContext(ctx).Panic(
"Unable to fetch labelkey from context.")
}
labelSelectors := untyped.([]string)
infs := []controller.Informer{}
for _, selector := range labelSelectors {
f := filtered.Get(ctx, selector)
inf := f.Certmanager().V1().CertificateRequests()
ctx = context.WithValue(ctx, Key{Selector: selector}, inf)
infs = append(infs, inf.Informer())
}
return ctx, infs
}
// Get extracts the typed informer from the context.
func Get(ctx context.Context, selector string) v1.CertificateRequestInformer {
untyped := ctx.Value(Key{Selector: selector})
if untyped == nil {
logging.FromContext(ctx).Panicf(
"Unable to fetch github.com/cert-manager/cert-manager/pkg/client/informers/externalversions/certmanager/v1.CertificateRequestInformer with selector %s from context.", selector)
}
return untyped.(v1.CertificateRequestInformer)
}

View File

@ -0,0 +1,52 @@
/*
Copyright 2021 The Knative 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.
*/
// Code generated by injection-gen. DO NOT EDIT.
package fake
import (
context "context"
filtered "knative.dev/eventing/pkg/client/certmanager/injection/informers/certmanager/v1/certificaterequest/filtered"
factoryfiltered "knative.dev/eventing/pkg/client/certmanager/injection/informers/factory/filtered"
controller "knative.dev/pkg/controller"
injection "knative.dev/pkg/injection"
logging "knative.dev/pkg/logging"
)
var Get = filtered.Get
func init() {
injection.Fake.RegisterFilteredInformers(withInformer)
}
func withInformer(ctx context.Context) (context.Context, []controller.Informer) {
untyped := ctx.Value(factoryfiltered.LabelKey{})
if untyped == nil {
logging.FromContext(ctx).Panic(
"Unable to fetch labelkey from context.")
}
labelSelectors := untyped.([]string)
infs := []controller.Informer{}
for _, selector := range labelSelectors {
f := factoryfiltered.Get(ctx, selector)
inf := f.Certmanager().V1().CertificateRequests()
ctx = context.WithValue(ctx, filtered.Key{Selector: selector}, inf)
infs = append(infs, inf.Informer())
}
return ctx, infs
}

View File

@ -0,0 +1,47 @@
/*
Copyright 2021 The Knative 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.
*/
// Code generated by injection-gen. DO NOT EDIT.
package clusterissuer
import (
context "context"
v1 "github.com/cert-manager/cert-manager/pkg/client/informers/externalversions/certmanager/v1"
factory "knative.dev/eventing/pkg/client/certmanager/injection/informers/factory"
controller "knative.dev/pkg/controller"
logging "knative.dev/pkg/logging"
)
// Key is used for associating the Informer inside the context.Context.
type Key struct{}
func WithInformer(ctx context.Context) (context.Context, controller.Informer) {
f := factory.Get(ctx)
inf := f.Certmanager().V1().ClusterIssuers()
return context.WithValue(ctx, Key{}, inf), inf.Informer()
}
// Get extracts the typed informer from the context.
func Get(ctx context.Context) v1.ClusterIssuerInformer {
untyped := ctx.Value(Key{})
if untyped == nil {
logging.FromContext(ctx).Panic(
"Unable to fetch github.com/cert-manager/cert-manager/pkg/client/informers/externalversions/certmanager/v1.ClusterIssuerInformer from context.")
}
return untyped.(v1.ClusterIssuerInformer)
}

View File

@ -0,0 +1,40 @@
/*
Copyright 2021 The Knative 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.
*/
// Code generated by injection-gen. DO NOT EDIT.
package fake
import (
context "context"
clusterissuer "knative.dev/eventing/pkg/client/certmanager/injection/informers/certmanager/v1/clusterissuer"
fake "knative.dev/eventing/pkg/client/certmanager/injection/informers/factory/fake"
controller "knative.dev/pkg/controller"
injection "knative.dev/pkg/injection"
)
var Get = clusterissuer.Get
func init() {
injection.Fake.RegisterInformer(withInformer)
}
func withInformer(ctx context.Context) (context.Context, controller.Informer) {
f := fake.Get(ctx)
inf := f.Certmanager().V1().ClusterIssuers()
return context.WithValue(ctx, clusterissuer.Key{}, inf), inf.Informer()
}

View File

@ -0,0 +1,65 @@
/*
Copyright 2021 The Knative 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.
*/
// Code generated by injection-gen. DO NOT EDIT.
package filtered
import (
context "context"
v1 "github.com/cert-manager/cert-manager/pkg/client/informers/externalversions/certmanager/v1"
filtered "knative.dev/eventing/pkg/client/certmanager/injection/informers/factory/filtered"
controller "knative.dev/pkg/controller"
injection "knative.dev/pkg/injection"
logging "knative.dev/pkg/logging"
)
func init() {
injection.Default.RegisterFilteredInformers(withInformer)
}
// Key is used for associating the Informer inside the context.Context.
type Key struct {
Selector string
}
func withInformer(ctx context.Context) (context.Context, []controller.Informer) {
untyped := ctx.Value(filtered.LabelKey{})
if untyped == nil {
logging.FromContext(ctx).Panic(
"Unable to fetch labelkey from context.")
}
labelSelectors := untyped.([]string)
infs := []controller.Informer{}
for _, selector := range labelSelectors {
f := filtered.Get(ctx, selector)
inf := f.Certmanager().V1().ClusterIssuers()
ctx = context.WithValue(ctx, Key{Selector: selector}, inf)
infs = append(infs, inf.Informer())
}
return ctx, infs
}
// Get extracts the typed informer from the context.
func Get(ctx context.Context, selector string) v1.ClusterIssuerInformer {
untyped := ctx.Value(Key{Selector: selector})
if untyped == nil {
logging.FromContext(ctx).Panicf(
"Unable to fetch github.com/cert-manager/cert-manager/pkg/client/informers/externalversions/certmanager/v1.ClusterIssuerInformer with selector %s from context.", selector)
}
return untyped.(v1.ClusterIssuerInformer)
}

View File

@ -0,0 +1,52 @@
/*
Copyright 2021 The Knative 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.
*/
// Code generated by injection-gen. DO NOT EDIT.
package fake
import (
context "context"
filtered "knative.dev/eventing/pkg/client/certmanager/injection/informers/certmanager/v1/clusterissuer/filtered"
factoryfiltered "knative.dev/eventing/pkg/client/certmanager/injection/informers/factory/filtered"
controller "knative.dev/pkg/controller"
injection "knative.dev/pkg/injection"
logging "knative.dev/pkg/logging"
)
var Get = filtered.Get
func init() {
injection.Fake.RegisterFilteredInformers(withInformer)
}
func withInformer(ctx context.Context) (context.Context, []controller.Informer) {
untyped := ctx.Value(factoryfiltered.LabelKey{})
if untyped == nil {
logging.FromContext(ctx).Panic(
"Unable to fetch labelkey from context.")
}
labelSelectors := untyped.([]string)
infs := []controller.Informer{}
for _, selector := range labelSelectors {
f := factoryfiltered.Get(ctx, selector)
inf := f.Certmanager().V1().ClusterIssuers()
ctx = context.WithValue(ctx, filtered.Key{Selector: selector}, inf)
infs = append(infs, inf.Informer())
}
return ctx, infs
}

View File

@ -0,0 +1,40 @@
/*
Copyright 2021 The Knative 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.
*/
// Code generated by injection-gen. DO NOT EDIT.
package fake
import (
context "context"
issuer "knative.dev/eventing/pkg/client/certmanager/injection/informers/certmanager/v1/issuer"
fake "knative.dev/eventing/pkg/client/certmanager/injection/informers/factory/fake"
controller "knative.dev/pkg/controller"
injection "knative.dev/pkg/injection"
)
var Get = issuer.Get
func init() {
injection.Fake.RegisterInformer(withInformer)
}
func withInformer(ctx context.Context) (context.Context, controller.Informer) {
f := fake.Get(ctx)
inf := f.Certmanager().V1().Issuers()
return context.WithValue(ctx, issuer.Key{}, inf), inf.Informer()
}

View File

@ -0,0 +1,52 @@
/*
Copyright 2021 The Knative 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.
*/
// Code generated by injection-gen. DO NOT EDIT.
package fake
import (
context "context"
filtered "knative.dev/eventing/pkg/client/certmanager/injection/informers/certmanager/v1/issuer/filtered"
factoryfiltered "knative.dev/eventing/pkg/client/certmanager/injection/informers/factory/filtered"
controller "knative.dev/pkg/controller"
injection "knative.dev/pkg/injection"
logging "knative.dev/pkg/logging"
)
var Get = filtered.Get
func init() {
injection.Fake.RegisterFilteredInformers(withInformer)
}
func withInformer(ctx context.Context) (context.Context, []controller.Informer) {
untyped := ctx.Value(factoryfiltered.LabelKey{})
if untyped == nil {
logging.FromContext(ctx).Panic(
"Unable to fetch labelkey from context.")
}
labelSelectors := untyped.([]string)
infs := []controller.Informer{}
for _, selector := range labelSelectors {
f := factoryfiltered.Get(ctx, selector)
inf := f.Certmanager().V1().Issuers()
ctx = context.WithValue(ctx, filtered.Key{Selector: selector}, inf)
infs = append(infs, inf.Informer())
}
return ctx, infs
}

View File

@ -0,0 +1,65 @@
/*
Copyright 2021 The Knative 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.
*/
// Code generated by injection-gen. DO NOT EDIT.
package filtered
import (
context "context"
v1 "github.com/cert-manager/cert-manager/pkg/client/informers/externalversions/certmanager/v1"
filtered "knative.dev/eventing/pkg/client/certmanager/injection/informers/factory/filtered"
controller "knative.dev/pkg/controller"
injection "knative.dev/pkg/injection"
logging "knative.dev/pkg/logging"
)
func init() {
injection.Default.RegisterFilteredInformers(withInformer)
}
// Key is used for associating the Informer inside the context.Context.
type Key struct {
Selector string
}
func withInformer(ctx context.Context) (context.Context, []controller.Informer) {
untyped := ctx.Value(filtered.LabelKey{})
if untyped == nil {
logging.FromContext(ctx).Panic(
"Unable to fetch labelkey from context.")
}
labelSelectors := untyped.([]string)
infs := []controller.Informer{}
for _, selector := range labelSelectors {
f := filtered.Get(ctx, selector)
inf := f.Certmanager().V1().Issuers()
ctx = context.WithValue(ctx, Key{Selector: selector}, inf)
infs = append(infs, inf.Informer())
}
return ctx, infs
}
// Get extracts the typed informer from the context.
func Get(ctx context.Context, selector string) v1.IssuerInformer {
untyped := ctx.Value(Key{Selector: selector})
if untyped == nil {
logging.FromContext(ctx).Panicf(
"Unable to fetch github.com/cert-manager/cert-manager/pkg/client/informers/externalversions/certmanager/v1.IssuerInformer with selector %s from context.", selector)
}
return untyped.(v1.IssuerInformer)
}

View File

@ -0,0 +1,47 @@
/*
Copyright 2021 The Knative 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.
*/
// Code generated by injection-gen. DO NOT EDIT.
package issuer
import (
context "context"
v1 "github.com/cert-manager/cert-manager/pkg/client/informers/externalversions/certmanager/v1"
factory "knative.dev/eventing/pkg/client/certmanager/injection/informers/factory"
controller "knative.dev/pkg/controller"
logging "knative.dev/pkg/logging"
)
// Key is used for associating the Informer inside the context.Context.
type Key struct{}
func WithInformer(ctx context.Context) (context.Context, controller.Informer) {
f := factory.Get(ctx)
inf := f.Certmanager().V1().Issuers()
return context.WithValue(ctx, Key{}, inf), inf.Informer()
}
// Get extracts the typed informer from the context.
func Get(ctx context.Context) v1.IssuerInformer {
untyped := ctx.Value(Key{})
if untyped == nil {
logging.FromContext(ctx).Panic(
"Unable to fetch github.com/cert-manager/cert-manager/pkg/client/informers/externalversions/certmanager/v1.IssuerInformer from context.")
}
return untyped.(v1.IssuerInformer)
}

View File

@ -0,0 +1,56 @@
/*
Copyright 2021 The Knative 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.
*/
// Code generated by injection-gen. DO NOT EDIT.
package factory
import (
context "context"
externalversions "github.com/cert-manager/cert-manager/pkg/client/informers/externalversions"
client "knative.dev/eventing/pkg/client/certmanager/injection/client"
controller "knative.dev/pkg/controller"
injection "knative.dev/pkg/injection"
logging "knative.dev/pkg/logging"
)
func init() {
injection.Default.RegisterInformerFactory(withInformerFactory)
}
// Key is used as the key for associating information with a context.Context.
type Key struct{}
func withInformerFactory(ctx context.Context) context.Context {
c := client.Get(ctx)
opts := make([]externalversions.SharedInformerOption, 0, 1)
if injection.HasNamespaceScope(ctx) {
opts = append(opts, externalversions.WithNamespace(injection.GetNamespaceScope(ctx)))
}
return context.WithValue(ctx, Key{},
externalversions.NewSharedInformerFactoryWithOptions(c, controller.GetResyncPeriod(ctx), opts...))
}
// Get extracts the InformerFactory from the context.
func Get(ctx context.Context) externalversions.SharedInformerFactory {
untyped := ctx.Value(Key{})
if untyped == nil {
logging.FromContext(ctx).Panic(
"Unable to fetch github.com/cert-manager/cert-manager/pkg/client/informers/externalversions.SharedInformerFactory from context.")
}
return untyped.(externalversions.SharedInformerFactory)
}

View File

@ -0,0 +1,45 @@
/*
Copyright 2021 The Knative 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.
*/
// Code generated by injection-gen. DO NOT EDIT.
package fake
import (
context "context"
externalversions "github.com/cert-manager/cert-manager/pkg/client/informers/externalversions"
fake "knative.dev/eventing/pkg/client/certmanager/injection/client/fake"
factory "knative.dev/eventing/pkg/client/certmanager/injection/informers/factory"
controller "knative.dev/pkg/controller"
injection "knative.dev/pkg/injection"
)
var Get = factory.Get
func init() {
injection.Fake.RegisterInformerFactory(withInformerFactory)
}
func withInformerFactory(ctx context.Context) context.Context {
c := fake.Get(ctx)
opts := make([]externalversions.SharedInformerOption, 0, 1)
if injection.HasNamespaceScope(ctx) {
opts = append(opts, externalversions.WithNamespace(injection.GetNamespaceScope(ctx)))
}
return context.WithValue(ctx, factory.Key{},
externalversions.NewSharedInformerFactoryWithOptions(c, controller.GetResyncPeriod(ctx), opts...))
}

View File

@ -0,0 +1,60 @@
/*
Copyright 2021 The Knative 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.
*/
// Code generated by injection-gen. DO NOT EDIT.
package fakeFilteredFactory
import (
context "context"
externalversions "github.com/cert-manager/cert-manager/pkg/client/informers/externalversions"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
fake "knative.dev/eventing/pkg/client/certmanager/injection/client/fake"
filtered "knative.dev/eventing/pkg/client/certmanager/injection/informers/factory/filtered"
controller "knative.dev/pkg/controller"
injection "knative.dev/pkg/injection"
logging "knative.dev/pkg/logging"
)
var Get = filtered.Get
func init() {
injection.Fake.RegisterInformerFactory(withInformerFactory)
}
func withInformerFactory(ctx context.Context) context.Context {
c := fake.Get(ctx)
untyped := ctx.Value(filtered.LabelKey{})
if untyped == nil {
logging.FromContext(ctx).Panic(
"Unable to fetch labelkey from context.")
}
labelSelectors := untyped.([]string)
for _, selector := range labelSelectors {
selectorVal := selector
opts := []externalversions.SharedInformerOption{}
if injection.HasNamespaceScope(ctx) {
opts = append(opts, externalversions.WithNamespace(injection.GetNamespaceScope(ctx)))
}
opts = append(opts, externalversions.WithTweakListOptions(func(l *v1.ListOptions) {
l.LabelSelector = selectorVal
}))
ctx = context.WithValue(ctx, filtered.Key{Selector: selectorVal},
externalversions.NewSharedInformerFactoryWithOptions(c, controller.GetResyncPeriod(ctx), opts...))
}
return ctx
}

View File

@ -0,0 +1,78 @@
/*
Copyright 2021 The Knative 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.
*/
// Code generated by injection-gen. DO NOT EDIT.
package filteredFactory
import (
context "context"
externalversions "github.com/cert-manager/cert-manager/pkg/client/informers/externalversions"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
client "knative.dev/eventing/pkg/client/certmanager/injection/client"
controller "knative.dev/pkg/controller"
injection "knative.dev/pkg/injection"
logging "knative.dev/pkg/logging"
)
func init() {
injection.Default.RegisterInformerFactory(withInformerFactory)
}
// Key is used as the key for associating information with a context.Context.
type Key struct {
Selector string
}
type LabelKey struct{}
func WithSelectors(ctx context.Context, selector ...string) context.Context {
return context.WithValue(ctx, LabelKey{}, selector)
}
func withInformerFactory(ctx context.Context) context.Context {
c := client.Get(ctx)
untyped := ctx.Value(LabelKey{})
if untyped == nil {
logging.FromContext(ctx).Panic(
"Unable to fetch labelkey from context.")
}
labelSelectors := untyped.([]string)
for _, selector := range labelSelectors {
selectorVal := selector
opts := []externalversions.SharedInformerOption{}
if injection.HasNamespaceScope(ctx) {
opts = append(opts, externalversions.WithNamespace(injection.GetNamespaceScope(ctx)))
}
opts = append(opts, externalversions.WithTweakListOptions(func(l *v1.ListOptions) {
l.LabelSelector = selectorVal
}))
ctx = context.WithValue(ctx, Key{Selector: selectorVal},
externalversions.NewSharedInformerFactoryWithOptions(c, controller.GetResyncPeriod(ctx), opts...))
}
return ctx
}
// Get extracts the InformerFactory from the context.
func Get(ctx context.Context, selector string) externalversions.SharedInformerFactory {
untyped := ctx.Value(Key{Selector: selector})
if untyped == nil {
logging.FromContext(ctx).Panicf(
"Unable to fetch github.com/cert-manager/cert-manager/pkg/client/informers/externalversions.SharedInformerFactory with selector %s from context.", selector)
}
return untyped.(externalversions.SharedInformerFactory)
}

Some files were not shown because too many files have changed in this diff Show More