Compare commits

...

221 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
Knative Automation 9cec50fe8e
[main] Upgrade to latest dependencies (#8414)
upgrade to latest dependencies

bumping knative.dev/reconciler-test 359287e...4965c77:
  > 4965c77 upgrade to latest dependencies (# 780)
  > ea681a5 upgrade to latest dependencies (# 778)
bumping knative.dev/pkg 0c2a238...c43477f:
  > c43477f upgrade to latest dependencies (# 3137)

Signed-off-by: Knative Automation <automation@knative.team>
2025-01-20 11:59:08 +00:00
Knative Automation a40a0a75a8
[main] Upgrade to latest dependencies (#8413)
upgrade to latest dependencies

bumping knative.dev/hack/schema f8be0cc...c142b48:
  > c142b48 Refactor release script to gh CLI (# 408)
bumping knative.dev/hack f8be0cc...c142b48:
  > c142b48 Refactor release script to gh CLI (# 408)

Signed-off-by: Knative Automation <automation@knative.team>
2025-01-17 06:19:04 +00:00
Pierangelo Di Pilato 90edfe680e
Upgrade deps to latest (#8410)
* Upgrade deps

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

* Codegen

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

* Fix tests

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

---------

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2025-01-16 12:43:11 +00:00
Martin Gencur 6d71005eac
Additional unit tests for EventPolicy (#8405)
* Setting a different default authorization mode
* Using glob style expressions to select source Subject
2025-01-16 12:43:04 +00:00
Pierangelo Di Pilato f3ea6b535e
Update KinD e2e workflow (#8411)
Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2025-01-16 06:47:03 +00:00
Martin Gencur cd7c1c09ec
Add authorization conformance tests for Sequence and Parallel (#8400)
* Add authorization conformance tests for Sequence and Parallel

* Use fully functional Sequence and Parallel for Authz conformance tests

* Check Sequence addressable
2025-01-13 17:58:01 +00:00
Pierangelo Di Pilato 5ce51f840e
Include inEdges in Graph String() (#8406)
Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2025-01-13 16:57:00 +00:00
Matthias Wessendorf eaaab21f14
Adding reconciler test for OIDC of the Integration Source (#8404)
Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2025-01-10 10:41:17 +00:00
Knative Automation 350f81bae8
[main] Update community files (#8403)
Update community files

Signed-off-by: Knative Automation <automation@knative.team>
2025-01-09 13:12:02 +00:00
Ali Ok 134c4c0f56
Event lineage builder should accept client interfaces (#8402)
Signed-off-by: Ali Ok <aliok@redhat.com>
2025-01-08 14:48:58 +00:00
Ali Ok bb6c53c91b
Don't swallow errors in Lineage package (#8401)
* Don't swallow errors in Lineage package

Signed-off-by: Ali Ok <aliok@redhat.com>

* Better error handling and make the fail fast configurable

Signed-off-by: Ali Ok <aliok@redhat.com>

---------

Signed-off-by: Ali Ok <aliok@redhat.com>
2025-01-08 10:57:57 +00:00
Ali Ok 81a37fff8b
Lineage constructor to accept clients instead of creating them (#8399)
Signed-off-by: Ali Ok <aliok@redhat.com>
2025-01-08 07:01:57 +00:00
Knative Automation 52792ea987
[main] Upgrade to latest dependencies (#8397)
upgrade to latest dependencies

bumping knative.dev/hack 1978b3a...e92a16a:
  > e92a16a set min to 1.30 (# 405)
  > cad8c71 Update community files (# 406)
bumping knative.dev/hack/schema 1978b3a...e92a16a:
  > e92a16a set min to 1.30 (# 405)
  > cad8c71 Update community files (# 406)
bumping knative.dev/reconciler-test 984ae12...96258be:
  > 96258be Update community files (# 776)
bumping knative.dev/pkg 40afb7c...4c90159:
  > 4c90159 Update community files (# 3126)

Signed-off-by: Knative Automation <automation@knative.team>
2025-01-03 10:33:53 +00:00
Knative Automation c9047a1982
[main] Update community files (#8396)
Update community files

Signed-off-by: Knative Automation <automation@knative.team>
2024-12-23 13:11:19 +00:00
Pierangelo Di Pilato 4dbc2ba5c5
Scheduler: LastOrdinal based on replicas instead of FreeCap (#8388)
When scaling down and compacting, basing the last ordinal on the
free capacity structure leads to have a lastOrdinal off by one since
`FreeCap` might contain the free capacity for unschedulable pods.

We will have to continue including unschduelable pods in FreeCap
because it might happen that a pod becomes unscheduleble for external
reasons like node gets shutdown for pods with lower ordinals
and the pod need to be rescheduled and during that time period
we want to consider those when compacting; once all vpods that
were on that pod that is gone get rescheduled, FreeCap will only
include scheduleable pods.

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2024-12-19 07:12:11 +00:00
Knative Automation 06355afcc2
[main] Upgrade to latest dependencies (#8392)
upgrade to latest dependencies

bumping knative.dev/hack b799531...1978b3a:
  > 1978b3a Update community files (# 404)
bumping knative.dev/hack/schema b799531...1978b3a:
  > 1978b3a Update community files (# 404)
bumping knative.dev/reconciler-test 0619dc3...984ae12:
  > 984ae12 Update community files (# 774)
  > 2f0e67f upgrade to latest dependencies (# 772)
bumping knative.dev/pkg a7fd9b1...40afb7c:
  > 40afb7c fix script (# 3123)
  > f3ab560 Update community files (# 3118)

Signed-off-by: Knative Automation <automation@knative.team>
2024-12-19 06:10:10 +00:00
Martin Gencur b00da59542
Register eventshub image for JobSink (#8390)
The package must be registered so that ImageProducer can map it to the
right image and replace it in the final yaml.
2024-12-17 13:03:09 +00:00
Christoph Stäbler 2f165f1e9e
Update golang.org/x/crypto to 0.31.0 (#8389) 2024-12-17 09:33:09 +00:00
Matthias Wessendorf 4087c3aba4
Going OIDC for Integration Source (#8383)
Going OIDC for Integration Source:
- Generating OIDC specific evn_vars for Knative client of camel
- Adding rekt-test for OIDC feature of the source

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2024-12-16 09:02:32 +00:00
Matthias Wessendorf 3a69e30e5f
add new integration CRDs to storage version migrator tool (#8386)
Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2024-12-16 08:01:32 +00:00
Pierangelo Di Pilato 414af5ce0f
Add EventPolicy to storage version migrator (#8384)
While this is not strictly needed, this prevents issues we could run
into eventually with storage version migrations.

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2024-12-13 14:20:54 +00:00
Christoph Stäbler f82811bd10
Remove conversion webhook config in EventPolicy CRD (#8379)
As we don't have multiple EP versions yet, we don't need the conversion webhook configuration in the EventPolicy CRD
2024-12-11 09:59:52 +00:00
Yukun Wang 7c1a62de52
Add health check config and clean up duplicated code (#8308)
* Remove the duplicated health check

* Add the missing health check config

* Add the missing health check

* Remove the duplicated health check

* Fix non-blocking test

* Fix receive adapter probes path
2024-12-11 07:22:51 +00:00
Matthias Wessendorf bff7b03183
Remove unused filter function (#8375)
🧹 Remove unused filter function

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2024-12-05 14:00:47 +00:00
Alex 8d8b6c9b67
RequestReply: Added feature flag for default timeout (#8361)
* Added feature flag for default timeout

* Removed resolved TODO comments
2024-12-05 03:30:45 +00:00
Matthias Wessendorf 7bb320cf6a
Chore: field semantic correction (#8370)
💄 We renamed those fields to , and we reflect that now in validation

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2024-12-04 07:07:44 +00:00
Matthias Wessendorf 3345c8609d
Clean up remove session token (#8369)
Remove session token and profile credential name

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2024-12-03 17:41:44 +00:00
Matthias Wessendorf 6e7e3d4592
Adding sns sink to Integration Sink (#8365)
adding sns sink

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2024-12-03 16:32:44 +00:00
Pierangelo Di Pilato d4357e3205
MT-Broker: return retriable status code based on the state to leverage retries (#8366)
* MT-Broker: return appropriate status code based on the state to leverage retries

The ingress or filter deployments were returning 400 even in the case
where a given resource (like trigger, broker, subscription) wasn't
found, however, this is a common case where the lister cache
hasn't caught up with the latest state.

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

* Fix unit tests

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

---------

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2024-12-03 12:28:44 +00:00
Matthias Wessendorf 795e4a3fe7
Move image to map (#8362)
Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2024-12-03 08:06:44 +00:00
Matthias Wessendorf 408db83b2b
We changed the event type on the images (#8364)
🔥 We changed the event type on the images

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2024-12-02 17:31:43 +00:00
Matthias Wessendorf f577063a18
Align label generation and apply on container-source as well (#8355)
Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2024-11-28 16:56:43 +00:00
Matthias Wessendorf cb31cb2eae
Add integrationsinks-addressable-resolver cluster role (#8356)
🛂 Add integrationsinks-addressable-resolver cluster role

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2024-11-28 15:02:43 +00:00
Pierangelo Di Pilato 545c14caca
Change JobSink execution mode variable to `K_EXECUTION_MODE` (#8350)
* Change JobSink execution mode variable to `K_EXECUTION_MODE`

Align to `K_SINK`.

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

* Fix tests

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

---------

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2024-11-28 10:21:43 +00:00
Matthias Wessendorf 91f1c792af
Avoid using twice hardcoded strings for the names of the Kube Secret keys, for AWS access/secret key vals (#8345)
💄 Avoid using twice hardcoded strings for the names of the Kubescret keys, for AWS access/secret key vals

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2024-11-28 09:17:43 +00:00
Knative Automation cb29ac1afc
[main] Update community files (#8354)
Update community files

Signed-off-by: Knative Automation <automation@knative.team>
2024-11-28 01:35:17 +00:00
Knative Automation aef3a149bf
[main] Format Go code (#8349)
Format go code

Signed-off-by: Knative Automation <automation@knative.team>
2024-11-27 16:42:13 +00:00
Matthias Wessendorf 65da6fc77c
Update integrationsink crd (#8347)
* Align IntegrationSink CRD w/ IntegrationSource CRD

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

* 💄 Remove old job-sink references

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

* Docs change

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

---------

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2024-11-26 12:55:11 +00:00
Pierangelo Di Pilato 01c8068f77
JobSink: Inject a `KNATIVE_EXECUTION_MODE` environment variable with value `batch` (#8346)
JobSink: Inject execution mode as env variable

To support long running functions in Knative Functions, we will
inject a `KNATIVE_EXECUTION_MODE` environment variable with value
`batch` so that function can change it's runtime behavior to
read the event file rather than starting a long-running server.

Ref: https://github.com/knative/func/issues/2586

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2024-11-26 06:17:10 +00:00
Matthias Wessendorf 366ff26b10
IntegrationSink: rek-test templating support for bool annotations (#8342)
bool annotations for represented as string, to avoid parsing errors

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2024-11-25 08:18:05 +00:00
Matthias Wessendorf 7176ce6450
Add IntegrationSink CRD (#8304)
* create new integration/source folder and factor common code into helper.go

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

* 💄 improve formatting...

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

* fixing import

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

* First Sink

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

* Updates on sink

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

* starting common types for source

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

* starting common types for sink

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

* some code share and refactorings

* use other image coordinates

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

* Add missing api and tests for sink and run codegen

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

* Fixes

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

* Adding cert

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

* Adding test

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

* Rekt test for sink

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

* Rekt test for sink

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

* correct status code

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

* More...

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

* re-add service

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

* delete unversioned common api

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

* Updates, latest conflicts and formatting
Clean ups
Adding tests for reconciler

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

---------

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2024-11-22 14:03:02 +00:00
Calum Murray 5ad7dabebd
feat: add RequestReply types and CRD (#8337)
* feat: add reqestreply CRD

Signed-off-by: Cali0707 <calumramurray@gmail.com>

* feat: add go types for requestreply

Signed-off-by: Cali0707 <calumramurray@gmail.com>

---------

Signed-off-by: Cali0707 <calumramurray@gmail.com>
2024-11-21 08:36:01 +00:00
yatesliang 7f313d70c0
fix: rename `job-sink` to `job_sink` (#8335) 2024-11-20 17:23:01 +00:00
Matthias Wessendorf 4f6535a5dc
chore: correct comments (#8336)
💄 correct comments ...

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2024-11-20 14:12:01 +00:00
Matthias Wessendorf ebe99e6551
Introducing common integration helper and change package name (#8327)
* create new integration/source folder and factor common code into helper.go

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

* 💄 improve formatting...

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

* fixing import

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

---------

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2024-11-19 17:31:00 +00:00
Knative Automation 201e096241
[main] Format Go code (#8334)
Format go code

Signed-off-by: Knative Automation <automation@knative.team>
2024-11-19 14:10:00 +00:00
Knative Automation 6f5edf574c
[main] Upgrade to latest dependencies (#8328)
upgrade to latest dependencies

bumping golang.org/x/tools 2ab3b51...4d2b19f:
  > 4d2b19f go.mod: update golang.org/x dependencies
  > 6368677 gopls/internal/golang: strength reduce ComputeImportFixEdits
  > 777f155 gopls/internal/golang: show package attributes on hover
  > 8a0e08f gopls/doc: add missing doc link
  > 61415be gopls/internal/cache: guard against malformed paths in port.matches
  > 9a89d3a internal/analysisinternal: avoid sub-token spans in TypeErrorEndPos
  > 1115af6 internal/expect: support named arguments f(a, b, c=d, e="f")
  > 0b9e499 go/{expect,packages/packagestest}: mention the tag+delete proposal
  > efcd2bd internal/packagestest: fork go/packages/packagestest
  > 0e9ed3d go/packages: do not mutate Config
  > ca2b41b x/tools: use internal/expect instead of go/expect
  > b22f1ad internal/expect: fork go/expect
  > f1ae722 gopls/internal/semtok: change types.Named to types.Basic for iota, true, and false
  > dba5486 gopls: update x/telemetry to pick up fix for countertest.ReadCounter
  > 9d40727 gopls/internal/server: don't interact with os.UserConfigDir from tests
  > 59933b6 go/packages: create fewer goroutines
  > f1f7c26 gopls/internal/cache: ensure GO111MODULE is unset in GOPATH tests
  > 4f98d3f gopls/internal/golang: run testcases as subtests
  > 6d27bba gopls/internal/golang: add testcase handling for func with error returns
  > e5417d7 gopls/internal/cache: log go env in TestZeroConfigAlgorithm
  > 691997a gopls/internal/golang: consolidate imports from both file in qualifier
  > 0c792f1 gopls/internal/golang: support generating test for functions
  > 27e1a3a go/packages: ensure TypesInfo is set when NeedTypesInfo is enabled
  > 817c7bc gopls/internal/test/integration/workspace: fix TestStdWorkspace
  > e36459f gopls/internal/golang: generate test name for selected function/method
  > 2998e9a go/analysis/passes/lostcancel: add WithCancelCause et al
  > f0379e0 go/packages: add BenchmarkNetHTTP
  > ad28b93 go/packages: minor cleanups to loader.parseFiles
  > cceaf96 internal/imports: carve out a Source interface for index integration
  > f4878ba gopls/internal/golang: use correct imports in HTML pkg doc links
  > 109c5fc gopls/internal/test: fix path to local go in integration tests
  > 99e8fee x/tools: fset.File(file.Pos()) -> fset.File(file.FileStart)
  > 5cd08e2 go/gcexportdata: document 2 releases + tip policy
  > ce03cd6 internal/modindex: parse changed time in local time zone
  > 386503d gopls/internal/golang: add source code action for add test
  > 9d6e1a6 Revert "gopls/internal/analysis: disable ssa/ir analyzers on range-over-func"
  > f153a42 gopls: update honnef.co/go/tools (staticcheck) to v0.5.1
  > 59f79bc go/ssa: speed up TestTypeparamTest by loading tests once
  > 70e82e0 go/analysis/passes/asmdecl: Correct identify writeResult instructions
  > cbd92b1 gopls/internal: stubcalledfunction: improve logic of selecting insert position
  > 45a28e1 all: fix x/tools tests that fail with a go1.23.1 go.work file
  > b0f44d5 copyright: limit copyright checking to .go files
  > 73d6794 gopls/internal/template: fix completion token boundary conditions
  > 91421d7 gopls/internal/cache: share type checking with analysis
  > 36684df go/analysis/passes/unusedwrite: silence if unsafe is imported
  > 17213ba gopls/internal/cache/parsego: support lazy object resolution for Files
  > 7d1d070 go/ssa/interp: disable interp tests on wasm
  > ae56d93 internal/modindex: implement Lookups in the index
  > 044b16f internal/gcimporter: extend markBlack workaround go1.22
  > dabba6a internal/modindex: new API for incremental update
  > 7d196fc go/ssa/interp: fix failing recover2.go test
  > f861377 go/ssa/interp: redirect interpreter std{out,err} to testing.T.Log
  > 9f3c646 gopls/internal/cache: memoize cache keys
  > 1f162c6 gopls/internal/cache: async pull diagnostics and joined analysis
  > dbb8252 gopls/release: remove unused(?) script
  > 6176384 go/types/objectpath: break cycles through interface methods
  > 9e6388a internal/gcimporter: work around go/types data race in 1.23.
  > c457787 gopls/internal/cache: avoid reporting bugs when go/packages has errors
  > 401eca0 gopls/internal/settings: remove "allowImplicitNetworkAccess"
  > 6618569 gopls/internal/cache: refine a bug report related to package metadata
  > 6381f0b gopls/internal/cache: refine bug reports
  > 63e4449 gopls/internal/telemetry/cmd/stacks: print double-claimed stacks
  > f003ff6 gopls/internal/test/marker: rename s/suggestedfix/quickfix/
  > 8128bcf gopls/internal/cache: add tolerance for builtin test variants
  > a199121 gopls: allow for asynchronous request handling
  > 8ecf757 internal/gcimporter: remove test of unsupported "goroot" iimport
  > 7310c72 importgraph: correct typo in graph_test.go
  > ce4cb55 internal/modindex: fix two bugs
  > b3482cc internal/modindex/cmd: Command for maintaining module cache indexes
  > 454be60 x/tools: be defensive after types.Info.Types[expr] lookups
  > dec6bf1 internal/modindex: update module cache index
  > 6c6def2 gopls/internal/telemetry/cmd/stacks: fix bad tmpreaper interaction
  > 1a5fe83 gopls: remove cruft
  > 244a31e gopls/internal: CodeAction:  quickfix to generate missing method
  > 87d6131 internal/typeparams: support parameterized aliases in Free
  > aa87dcf go/analysis/passes: execute gofmt
  > feffeaa go/packages: report an error from Load when GOROOT is misconfigured
  > 50179f2 Revert "internal/aliases: add a function to conditionally enable aliases"
  > 4f6e118 all: set gotypesalias=1 when using >=1.23 toolchain
  > 915132c internal/typesinternal: add NamedOrAlias type
  > bd86f8c gopls/internal/cache/analysis: lazily resolve the import map
  > a4e0a9e cmd/bundle: enable materialized aliases
  > db26c69 cmd/stringer: fix test on android
  > f08b5c1 gopls/internal/test/integration/bench: add a pull diagnostics benchmark
  > bbb979f go/callgraph/vta: use node IDs for type flow graph
  > cf8979b gopls/doc/features: add index of supported Code Actions
  > 8621919 go/ssa/ssautil: disable fmt imports on wasm tests
  > f439874 internal/modindex: add symbol information
  > f21a1dc gopls: add initial support for pull diagnostics
  > c19060b gopls/internal/cache: use packageHandles to hold an active package cache
  > a30b207 internal/versions: remove InitFileVersions
  > de11c55 gopls/doc/codelenses: fix link typo
  > 0b989c8 internal/versions: update test expectations
  > 89a5311 go/analysis/passes/asmdecl: allow syscall write registers implicitly
  > f8f3c13 internal/aliases: add a function to conditionally enable aliases
bumping golang.org/x/mod 46a3137...dec0365:
  > dec0365 sumdb: make data tiles by Server compatible with sum.golang.org
  > c8a7319 x/mod: fix handling of vendored packages with '/vendor' in non-top-level paths
  > 9cd0e4c x/mod: remove vendor/modules.txt from module download
bumping google.golang.org/protobuf 158d2b3...c72053a:
  > c72053a all: release v1.35.2
  > b985635 internal/impl: fix TestMarshalMessageSetLazyRace (was a no-op!)
  > 76135f9 proto: switch messageset_test to use makeMessages() injection point
  > 29947bb internal/testprotos/test: add nested message field with [lazy=true]
  > 5c14d72 encoding/prototext: use testmessages_test.go approach, too
  > 496557b proto: refactor equal_test from explicit table to use makeMessages()
  > 0517e5a testing/protocmp: document behavior when combining Ignore and Sort
  > d14ebce all: implement strip_enum_prefix editions feature
  > fb995f1 encoding/protojson: allow missing value for Any of type Empty
  > d340238 all: start v1.35.1-devel
bumping knative.dev/pkg 47a6f9f...a7fd9b1:
  > a7fd9b1 Bump google.golang.org/protobuf from 1.35.1 to 1.35.2 (# 3117)
  > 215048a Bump golang.org/x/tools from 0.26.0 to 0.27.0 (# 3114)

Signed-off-by: Knative Automation <automation@knative.team>
2024-11-19 12:12:59 +00:00
Matthias Wessendorf f21370a33c
Integration Api moved to versioned common (#8325)
Moving API to a versioned common/integration folder

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2024-11-19 10:31:59 +00:00
Matthias Wessendorf 63d4da59c6
Update Integration API and use custom tags on structs for better readability (#8321)
Update API and use custom tags on structs

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2024-11-19 09:00:00 +00:00
Pierangelo Di Pilato 7abb04d83b
JobSink: Delete secrets associated with jobs when jobs are deleted (#8331)
* JobSink: Delete secrets associated with jobs when jobs are deleted

As reported in https://github.com/knative/eventing/issues/8323 old
JobSink secrets lead to processing old events again while new events
are lost.

Using OwnerReference and k8s garbage collection, now a secret created
for a given event is bound to a given Job lifecycle, so that when a job
is deleted, the associated secret will be deleted.

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

* Fix jobsink name generator + add unit and fuzz tests

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

* Fix e2e test

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

* Lint

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

---------

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2024-11-19 08:00:59 +00:00
Pierangelo Di Pilato 8fed0bebc2
Allow configuring (opt-in) IMC async handler (#8311)
* Allow configuring (opt-in) IMC async handler

We switched to use the sync handler by default, however, it was
reported that in some cases, this is not wanted as it slows down
the source event senders since it needs to wait for all subscribers
to receive events.

While this is the best default behavior since reduces lost events in
InMemoryChannel, we want to allow configuring this behavior, while
documenting the downsides (follow up to docs repo)

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

* Propagate annotations and labels to channel

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

* Add E2E tests

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

* Use constant in tests

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

* Only propagates messaging.knative.dev annotations

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

* Add unit test

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

* Make annotation val explicit string.......

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

* channel impl did not support setting annotations before........

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

* Instead of re-installing the channel_impl, lets update the annotations. Otherwise we loose the channel's Spec.Subscribers

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>
2024-11-18 14:45:47 +00:00
Fabian-K bc6e878f4e
fix: remove duplicated observedGeneration from jobsinks.sinks.knative.dev (#8326) 2024-11-13 14:19:41 +00:00
Knative Automation 6b4ff7ff83
[main] Upgrade to latest dependencies (#8324)
upgrade to latest dependencies

bumping google.golang.org/grpc 3f95b38...acba4d3:
  > acba4d3 Change version to 1.68.0 (# 7743)
  > 5363dca credentials: Apply defaults to TLS configs provided through GetConfigForClient (# 7754) (# 7813)
  > 056dc64 status: Fix status incompatibility introduced by # 6919 and move non-regeneratable proto code into /testdata (# 7724) (# 7793)
  > b79fb61 mem: use slice capacity instead of length, to determine whether to pool buffers or directly allocate them (# 7702) (# 7792)
  > 54841ef  stats/opentelemetry/csm: Get mesh_id local label from "CSM_MESH_ID" environment variable, rather than parsing from bootstrap file (# 7740)
  > ad81c20 pickfirstleaf: minor simplification to reconcileSubConnsLocked method (# 7731)
  > b850ea5 transport : wait for goroutines to exit before transport closes (# 7666)
  > 00b9e14 pickfirst: New pick first policy for dualstack (# 7498)
  > 18a4eac testutils: add couple of log statements to the restartable listener type (# 7716)
  > fdc2ec2 xdsclient: deflake TestADS_ResourcesAreRequestedAfterStreamRestart (# 7720)
  > 4115c21 xds: return all ServerConfig dial options together (# 7718)
  > b8ee37d pickfirst: Move var for mocking the shuffle func from internal/internal to pickfirst/internal (# 7698)
  > d9d8f34 revert xds: return all ServerConfig dial options together (# 7712)
  > 5f178a8 xdsclient: fix test build breakage (# 7710)
  > f17ea7d xds: return all ServerConfig dial options together (# 7680)
  > bdd444d xds: address merge conflict gotcha and missed review comment from previous PRs (# 7705)
  > d365be6 transport: prevent deadlock in transport Close when GoAway write hangs (# 7662)
  > 6c6c9b6 xdsclient: e2e style tests for ads stream restart (5/N) (# 7696)
  > 5e6f4b9 xds: misc test cleanup (4/N) (# 7695)
  > 3adcd41 xdsclient: make load reporting tests e2e style (3/N) (# 7694)
  > 98d1550 xdsclient: switch more transport tests to e2e style (2/N) (# 7693)
  > 9afb232 xdsclient: invoke watch callback when new update matches cached one, but previous update was NACKed (1/N) (# 7692)
  > ab5af45 Revert "protoc-gen-go-grpc: remove `use_generic_streams_experimental`  flag (defaults to true) (# 7654) (# 7703)
  > e8a70c6 vet: add check to ensure terminating newline (# 7645)
  > 5fd9853 examples: improve package comments (# 7658)
  > 859602c vet : add check for tabs in text files (# 7678)
  > 67e47fc xds: Fix flaky test TestUnmarshalListener_WithUpdateValidatorFunc (# 7675)
  > ca4865d balancer: automatically stop producers on subchannel state changes (# 7663)
  > 941102b xds/server: Fix xDS Server leak (# 7664)
  > 7aee163 xds: add xDS transport custom Dialer support (# 7586)
  > 9affdbb internal/credentials/xds: add unit tests for `HandshakeInfo.Equal` (# 7638)
  > 3196f7a protoc-gen-go-grpc: remove `use_generic_streams_experimental` flag (defaults to true) (# 7654)
  > 218811e balancer/rls: Add picker and cache unit tests for RLS Metrics (# 7614)
  > a9ff62d clusterresolver/e2e_test: Avoid making real DNS requests in TestAggregateCluster_BadEDS_BadDNS (# 7669)
  > e7a8097 cleanup: replace grpc.Dial with grpc.NewClient in tests (# 7640)
  > bcf9171 transport: Fix reporting of bytes read while reading headers (# 7660)
  > 8ea3460 balancer: fix logic to prevent producer streams before READY is reported (# 7651)
  > 6c48e47 replace tab with spaces in text files (# 7650)
  > 1418e5e clusterimpl: use gsb.UpdateClientConnState instead of switchTo, on receipt of config update (# 7567)
  > ac41314 .*: Add missing a newline at the end (# 7644)
  > 11c44fb vet: add comment explaining reason for revive lineter disabled rules (# 7634)
  > 3b626a7 *: fix more typos (# 7619)
  > 04e78b0 .*: fix lint issues of not having comments for exported funcs and vars along with any remaining issues and enable remaining disabled rules (# 7575)
  > 31ffeee Deps: Bump Go version in Dockerfiles and test/kokoro/xds.sh (# 7629)
  > 393fbc3 Update dependencies after 1.67 branch cut (# 7624)
  > cf5d541 stubserver: support xds-enabled grpc server (# 7613)
  > b6fde8c vet: add check for trailing spaces (# 7576)
  > 7fb7ac7 mem: replace flate.Reader reference (# 7595)
  > 8f920c6 Change version to 1.68.0-dev (# 7601)
bumping google.golang.org/genproto/googleapis/rpc ddb44da...8af14fe:
  > 8af14fe chore(all): update all (# 1159)
  > 7e3bb23 chore(all): auto-regenerate .pb.go files (# 1158)
  > f6391c0 chore(all): update all (# 1156)
  > 3fd189d chore(googleapis): update cloud/gkeconnect/gateway/v1beta1/alias.go (# 1157)
  > 4ba0660 chore: update datastore and bigtable (# 1155)
  > fc7c04a feat: move SoT for datastore proto definitions (# 1154)
  > 278611b chore(all): update all (# 1153)
bumping golang.org/x/oauth2 6d8340f...3e64809:
  > 3e64809 x/oauth2: add Token.ExpiresIn
  > 16a9973 jwt: rename example to avoid vet error
  > b52af7d endpoints: add GitLab DeviceAuthURL
bumping google.golang.org/genproto/googleapis/api ddb44da...8af14fe:
  > 8af14fe chore(all): update all (# 1159)
  > 7e3bb23 chore(all): auto-regenerate .pb.go files (# 1158)
  > f6391c0 chore(all): update all (# 1156)
  > 3fd189d chore(googleapis): update cloud/gkeconnect/gateway/v1beta1/alias.go (# 1157)
  > 4ba0660 chore: update datastore and bigtable (# 1155)
  > fc7c04a feat: move SoT for datastore proto definitions (# 1154)
  > 278611b chore(all): update all (# 1153)
bumping knative.dev/pkg 7b333a0...47a6f9f:
  > 47a6f9f Bump google.golang.org/grpc from 1.67.1 to 1.68.0 (# 3116)

Signed-off-by: Knative Automation <automation@knative.team>
2024-11-12 15:28:42 +00:00
Knative Automation cd31c1ba98
[main] Upgrade to latest dependencies (#8322)
upgrade to latest dependencies

bumping knative.dev/pkg 25f6002...7b333a0:
  > 7b333a0 Bump golang.org/x/net from 0.30.0 to 0.31.0 (# 3113)
  > 0a99635 Update community files (# 3112)
bumping golang.org/x/sys 23b0dab...e0753d4:
  > e0753d4 Revert "windows/mkwinsyscall: use syscall.SyscallN instead of syscall.Syscall{6,9,12,15}"
  > c29efe3 windows: add iphlpapi functions for change notifications
  > 8f2aa9f cpu: conditionally re-enable AVX512 support on darwin/amd64
  > 054f1fc README: don't recommend go get
  > ca04041 unix: extend z/OS support
  > 18e038c unix: move NETLINK_* consts to own section
  > d045236 windows: implement Ftruncate using a single syscall on Windows
  > cff53d5 unix: gofmt after CL 610296
  > 123459f unix: update z/OS implementation of fcntl and mmap
  > df4a4da unix/linux: adjust Dockerfile ENV key value format
  > 696d342 unix: gofmt after CL 621375
  > 60d7877 unix: add PTP_PF_* constants on Linux
  > 256d1df unix: add PTP IOCTLs on Linux
  > adbb8bb windows/mkwinsyscall: use syscall.SyscallN instead of syscall.Syscall{6,9,12,15}
  > a57fdb8 unix: add IoctlGetHwTstamp/IoctlGetHwTstamp on Linux
  > 3932916 unix: switch to Ubuntu 24.10 in Dockerfile
  > 2dfefb6 all: execute gofmt
  > e5eee7e unix: add IoctlGetEthtoolTsInfo on Linux
  > fe162ba unix: add ClockSettime on Linux
  > 7143f4a windows: manually initialize NewNTUnicodeString
bumping knative.dev/hack ef6e7e9...b799531:
  > b799531 Update community files (# 403)
bumping knative.dev/hack/schema ef6e7e9...b799531:
  > b799531 Update community files (# 403)
bumping golang.org/x/crypto adef4cc...6018723:
  > 6018723 go.mod: update golang.org/x dependencies
  > 71ed71b README: don't recommend go get
  > 750a45f sha3: add MarshalBinary, AppendBinary, and UnmarshalBinary
  > 36b1725 sha3: avoid trailing permutation
  > 80ea76e sha3: fix padding for long cSHAKE parameters
  > c17aa50 sha3: avoid buffer copy
  > 7cfb916 ssh: return unexpected msg error when server fails keyboard-interactive auth early
  > b61b08d chacha20: extend ppc64le support to ppc64
  > 6c21748 internal/poly1305: extend ppc64le support to ppc64
bumping golang.org/x/sync 411f99e...151027e:
  > 151027e README: don't recommend go get
bumping knative.dev/reconciler-test aae114c...0619dc3:
  > 0619dc3 Update community files (# 773)
bumping golang.org/x/term 9d5441a...b725e36:
  > b725e36 go.mod: update golang.org/x dependencies
  > 54df7da README: don't recommend go get
bumping golang.org/x/net 6cc5ac4...334afa0:
  > 334afa0 go.mod: update golang.org/x dependencies
  > d7f220d quic: add LocalAddr and RemoteAddr to quic.Conn
  > 858db1a http2: surface errors occurring very early in a client conn's lifetime
  > 0aa844c http2: support unencrypted HTTP/2 handoff from net/http
  > f35fec9 http2: detect hung client connections by confirming stream resets
  > e883dae README: don't recommend go get
  > 511cc3a html: add Node.{Ancestors,ChildNodes,Descendants}()
  > 4783315 http2: limit 1xx based on size, do not limit when delivered
  > 5716b98 internal/socket: execute gofmt
  > 42b1186 http2: support ResponseController.EnableFullDuplex
bumping golang.org/x/text 3043346...efd25da:
  > efd25da go.mod: update golang.org/x dependencies
  > 8a0e65e README: don't recommend go get
  > fefda1a internal/texttest: remove Run and Bench helpers
  > a457f47 all: normalize subtest names to NFC

Signed-off-by: Knative Automation <automation@knative.team>
2024-11-12 06:07:39 +00:00
Matthias Wessendorf 9d673899ea
[chore] Do not generate SSL env vars for each struct entry, just once per containersource/image (#8315)
💄 Do not generate SSL env vars for each struct entry, just once per containersource/image

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2024-11-08 10:08:01 +00:00
Matthias Wessendorf 35d8c639d6
[chore] Use a generic access/secret key in the secret for AWS connections (#8312)
🔑 Use a generic access/secret key in the secret for AWS connections

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2024-11-07 16:41:00 +00:00
Knative Automation f53d038a4a
[main] Update community files (#8307)
Update community files

Signed-off-by: Knative Automation <automation@knative.team>
2024-11-06 01:34:42 +00:00
Matthias Wessendorf df340286f0
Add missing copyright boilerplate (#8305)
💄 add missing copyright boilerplate

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2024-11-05 13:14:39 +00:00
Martin Gencur 3f2b75b116
Use GetServiceHostname when passing URL to JobSink (#8303)
This allows using Knative Service as the sink simply by adding an option
to enviroment: eventshub.WithKnativeServiceForwarder
2024-11-05 07:42:38 +00:00
Martin Gencur fa6b4c5df0
Add jobsinks-addressable-resolver cluster role (#8298)
This will ensure that alld ServiceAccount that are bound to
"addressable-resolver" ClusterRole can read JobSinks.

Fixes issues like this for SinkBindings:
```
{"level":"error","ts":"2024-11-04T08:06:16.160Z","logger":"eventing-webhook","caller":"sinkbinding/sinkbinding.go:87",
"msg":"Failed to get Addressable from Destination:
%!w(*fmt.wrapError=&{failed to get lister for
sinks.knative.dev/v1alpha1,
Resource=jobsinks: jobsinks.sinks.knative.dev is forbidden:
User \"system:serviceaccount:knative-eventing:eventing-webhook\"
cannot list resource \"jobsinks\" in API group \"sinks.knative.dev\"
```
2024-11-04 11:32:55 +00:00
Pierangelo Di Pilato b4b609a99e
Add observedGeneration in JobSink OpenAPI schema (#8297)
Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2024-11-04 09:35:55 +00:00
Martin Gencur 2e4d353d57
Allow imc-controller to list JobSinks (#8294)
This is required otherwise MTChannelBasedBroker backed by IMC channel
can't forward events to JobSink. The error on ImMemoryChannel is
following:
```
failed to get lister for sinks.knative.dev/v1alpha1, Resource=jobsinks:
jobsinks.sinks.knative.dev is forbidden:
User "system:serviceaccount:knative-eventing:imc-controller" cannot list
resource "jobsinks" in API group "sinks.knative.dev" at the cluster
scope
```
2024-11-04 06:44:55 +00:00
Matthias Wessendorf 7bca81597e
IntegrationSource CRD (#8238)
* Add initial raw API types and controller/reconciler. Levering internally the container source for the handling of the kamelet workloads. the logic for applying the env-vars is a bit verbose, but can be improved.
Tests/lifeccyle and some other improvements are still missing. but this works.

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

* adding reflection to make the mapping less verbose, and more flexible to extend...

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

* Add DDB Streams

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

* polish and add minimal tests

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

* Update pkg/apis/sources/v1alpha1/integration_lifecycle.go

Co-authored-by: Pierangelo Di Pilato <pierangelodipilato@gmail.com>

* Update pkg/apis/sources/v1alpha1/integration_lifecycle.go

Co-authored-by: Pierangelo Di Pilato <pierangelodipilato@gmail.com>

* Fix compiler warnings

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

* use other image coordinates

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

* first test for source

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

* Adding initial rekt test

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

* Adding SSL support and test for IntegrationSource

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

* Formatting fixes

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

* Disable OIDC tests for now

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

* use knative nightly images

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

* Fixing linters

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

* addressing comments, Part1

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

---------

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
Co-authored-by: Pierangelo Di Pilato <pierangelodipilato@gmail.com>
2024-10-31 14:15:51 +00:00
Knative Automation c859efd015
[main] Format Go code (#8289)
Format go code

Signed-off-by: Knative Automation <automation@knative.team>
2024-10-31 09:08:51 +00:00
Pierangelo Di Pilato 7c97e6ff83
Schduler: MAXFILLUP strategy will spread vreplicas across multiple pods (#8263)
* Schduler: MAXFILLUP strategy will spread vreplicas across multiple pods

the MAXFILLUP algorithm was using an affinity strategy, meaning that
it would prioritize adding new vreplicas to pods with the same resources.

However, the downside is that if one pod goes down or gets
re-scheduled the entire resource would be down and not produce
events. By spreading replicas across multiple real replicas we would
guarantee better availability.

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

* Remove configurable HA scheduler, fix reserved replicas logic

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

* Log reserved

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

* Handle unschedulables pods and always start from reserved no matter what is placements

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

* Add reserved + overcommit

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

* Add benchmark + reduce OrdinalFromPodName calls

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

* Handle unschedulable pods

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

---------

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2024-10-29 20:30:49 +00:00
Calum Murray ef6b31a697
fix: et autocreate makes eventtype id required (#8288)
Signed-off-by: Cali0707 <calumramurray@gmail.com>
2024-10-28 08:37:47 +00:00
Knative Automation 4faf9c8b6b
[main] Upgrade to latest dependencies (#8287)
upgrade to latest dependencies

bumping knative.dev/reconciler-test 9d5e1c0...aae114c:
  > aae114c upgrade to latest dependencies (# 771)
bumping knative.dev/hack/schema 2191456...ef6e7e9:
  > ef6e7e9 Export KO_FLAGS for consuming scripts (# 401)
bumping knative.dev/pkg 6af2bf9...25f6002:
  > 25f6002 upgrade to latest dependencies (# 3111)
bumping knative.dev/hack 2191456...ef6e7e9:
  > ef6e7e9 Export KO_FLAGS for consuming scripts (# 401)

Signed-off-by: Knative Automation <automation@knative.team>
2024-10-28 07:36:47 +00:00
Knative Automation 65aeab55d6
[main] Upgrade to latest dependencies (#8275)
upgrade to latest dependencies

bumping knative.dev/reconciler-test 09111f0...9d5e1c0:
  > 9d5e1c0 Update community files (# 770)
  > 22c241b upgrade to latest dependencies (# 769)
  > 3e8ae56 Update community files (# 768)
bumping knative.dev/hack 05b2fb3...2191456:
  > 2191456 Update community files (# 400)
bumping knative.dev/hack/schema 05b2fb3...2191456:
  > 2191456 Update community files (# 400)
bumping knative.dev/pkg 9b9d535...6af2bf9:
  > 6af2bf9 upgrade to latest dependencies (# 3110)
  > 76cfa12 Fix `WEBHOOK_DISABLE_NAMESPACE_OWNERSHIP` env-var (# 3107)
  > 6d10851 Add `WEBHOOK_DISABLE_NAMESPACE_OWNERSHIP` env-var (# 3103)
  > 6eb75e8 Update community files (# 3105)

Signed-off-by: Knative Automation <automation@knative.team>
2024-10-25 10:58:02 +00:00
Calum Murray 03ba8f449c
feat: autocreate v1beta3 eventtypes (#8276)
* feat: eventtype autocreate creates v1beta3 ets

Signed-off-by: Cali0707 <calumramurray@gmail.com>

* fix(test): et tests pass with v1beta3 autocreate

Signed-off-by: Cali0707 <calumramurray@gmail.com>

* fix(build): components use correct v1beta3 interfaces when making the et autocreate handler

Signed-off-by: Cali0707 <calumramurray@gmail.com>

---------

Signed-off-by: Cali0707 <calumramurray@gmail.com>
2024-10-25 06:07:03 +00:00
Knative Automation 291c0a83bf
[main] Upgrade to latest dependencies (#8262)
upgrade to latest dependencies

bumping knative.dev/reconciler-test 1678877...09111f0:
  > 09111f0 upgrade to latest dependencies (# 764)
bumping knative.dev/pkg 59c22a1...9b9d535:
  > 9b9d535 Fix `WEBHOOK_DISABLE_NAMESPACE_OWNERSHIP` env-var (# 3108)
  > 4af9a0d Add `WEBHOOK_DISABLE_NAMESPACE_OWNERSHIP` env-var (# 3106)
  > 95b4b97 upgrade to latest dependencies (# 3104)

Signed-off-by: Knative Automation <automation@knative.team>
2024-10-22 08:42:00 +00:00
Knative Automation 6aa49dc1db
[main] Update community files (#8256)
Update community files

Signed-off-by: Knative Automation <automation@knative.team>
2024-10-16 01:35:36 +00:00
Calum Murray 33a9027623
feat: make oidc discovery url configurable (#8145)
* feat: make oidc discovery url configurable

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

* Use Trustbundles and public CAs, when issuer URL is not kubernetes.default.svc

* refactor: pass configmap watcher to auth verifier constructor instead of feature flags

Signed-off-by: Cali0707 <calumramurray@gmail.com>

* feat: add rw lock for provider access

Signed-off-by: Cali0707 <calumramurray@gmail.com>

* Fix verifier rwmutex

---------

Signed-off-by: Calum Murray <cmurray@redhat.com>
Signed-off-by: Cali0707 <calumramurray@gmail.com>
Co-authored-by: Christoph Stäbler <cstabler@redhat.com>
2024-10-15 09:32:32 +00:00
Knative Automation eff84655cf
[main] Upgrade to latest dependencies (#8255)
upgrade to latest dependencies

bumping knative.dev/reconciler-test 5e05cb3...1678877:
  > 1678877 Update community files (# 767)
  > 060f096 Update community files (# 766)
bumping knative.dev/hack/schema fc6a845...05b2fb3:
  > 05b2fb3 Update community files (# 399)
bumping google.golang.org/protobuf c33baa8...158d2b3:
  > 158d2b3 all: release v1.35.1
  > 94e26c9 all: start v1.35.0-devel
  > ac98177 all: release v1.35.0
  > 03df6c1 proto: Implement proto.Equal fast-path
  > 013dd17 all: drop unnecessary import renames for consistency
  > 1531843 internal/testprotos: declare the extension
  > 9e047b8 internal/impl: skip unnecessary requiredField checks for oneofs
  > ed7b51f proto: extend documentation of GetExtension, SetExtension
  > af06170 all: set Go language version to Go 1.21
  > cf4f382 encoding/prototext: capture current reserved field behavior
  > 5c1f700 internal/encoding/json: remove duplicate test
  > 66faac0 compiler/protogen: remove now-unnecessary UnsafeEnabled checks
  > 21d187a compiler/protogen: support -experimental_strip_nonfunctional_codegen
  > e8b6855 internal/descopts,internal/impl: remove shorthand import aliases
  > 0946f97 all: remove unused purego support
  > b643888 encoding/protojson: use fd.HasPresence() for editions compatibility
  > 94ecbc2 internal/impl: remove unused ExtensionField.SetLazy method
  > b36f8e0 types/known/structpb: add support for more types and json.Number
  > 75479a3 internal: generate extension numbers, fix editions parsing
  > 2a82025 internal/cmd/generate-protos: fix pkg check for editions features
  > 219bda2 internal/conformance: update failing tests list, add comments
  > b46f280 all: plumb the lazy option into filedesc.Field and .Extension
  > df3bd63 compiler/protogen: always report editions support level of the plugin
  > eea33cd protobuf: fix handling of delimited extensions in editions
  > d462176 protojson: changes error message returned by unmarshal
  > 61c6075 all: start v1.34.2-devel
bumping knative.dev/pkg 952269c...59c22a1:
  > 59c22a1 Bump google.golang.org/protobuf from 1.34.2 to 1.35.1 (# 3102)
  > e0f65ce Update community files (# 3101)
bumping knative.dev/hack fc6a845...05b2fb3:
  > 05b2fb3 Update community files (# 399)

Signed-off-by: Knative Automation <automation@knative.team>
2024-10-15 07:27:32 +00:00
Knative Automation aa6f73b8ed
[main] Upgrade to latest dependencies (#8236)
upgrade to latest dependencies

bumping google.golang.org/grpc 6f50403...3f95b38:
  > 3f95b38 Update version to 1.67.1 (# 7682)
  > 4f6c5f2 xds/server: Fix xDS Server leak (# 7664) (# 7681)
  > 935f8cb transport: Fix reporting of bytes read while reading headers (# 7660) (# 7667)
  > 02bbb65 Change version to 1.67.1-dev (# 7605)
bumping knative.dev/pkg 5031733...952269c:
  > 952269c Bump golang.org/x/net from 0.29.0 to 0.30.0 (# 3100)
  > e52e2e4 Bump google.golang.org/grpc from 1.67.0 to 1.67.1 (# 3099)
  > 4e357ed Bump golang.org/x/tools from 0.25.0 to 0.26.0 (# 3098)
bumping golang.org/x/term 2f7b0dd...9d5441a:
  > 9d5441a go.mod: update golang.org/x dependencies
bumping golang.org/x/tools 7398f36...2ab3b51:
  > 2ab3b51 go.mod: update golang.org/x dependencies
  > 2683c79 gopls/internal/golang/stubmethods: rename analysis/stubmethods
  > efd951d gopls/internal/analysis/stubmethods: merge into CodeAction
  > d0d0d9e gopls/internal/cache: memoize dependent hash on analysisNode
  > a19eef6 gopls/internal/cache: express packageHandle as a state machine
  > dd745ec gopls/internal/test/marker: update regression test issue68918.txt
  > a02ee35 go/analysis/passes/stdversion: reenable tests
  > a24facf all: set gotypesalias=0 explicitly
  > ce2a33e gopls/internal: fix extract refactor for cases with anonymous functions
  > a2ff832 go/ssa: remove references to GOEXPERIMENT range
  > a7552bc go/ast/inspector: add PreorderSeq and All iterators
  > d2e4621 gopls/internal/server: CodeAction: interpret Only=[] as [QuickFix]
  > 4e80b32 cmd/stringer: support types declared in test files
  > 60b6bcd gopls/rename: include filename in error message
  > 2848ab8 internal/gcimporter: clean up test expectations
  > ee66134 go/ssa/ssautil: isolate deprecated CreateProgram
  > 6ded0c4 internal/gcexporter: cleanup test skipping in TestImportTypeparamTests
  > 66afc1a gopls/completion: tweak fuzz handling to make its own MethodSet
  > 7d92dd6 go/ssa/ssautil: use go/packages to load packages in switch_test.go
  > 18bc032 gopls: update x/telemetry to pick up fix for golang/go# 69681
  > 6c47868 internal/gcimporter: run larger tests with and without aliases
  > c6f2f8e refactor/eg: rewrite test without go/loader
  > 8b6849d go/ssa/interp: reenable lifetime tests.
  > edfeacf internal/golang: fix panic in signatureHelp over builtin name
  > ab64376 go/types/objectpath: skip package tests with wasip1
  > e55961d internal/gcimporter: use types.NewInterfaceType
  > c59bc30 internal/gcimporter: vary the value of any in predeclared
  > 4fc0d79 internal/gcimporter: remove goexperiment.unified tags
  > f05b5f4 go/packages: document the role of PWD
  > 3483a5e go/packages: use link notation in comments for godoc rendering
  > 75350b9 go/ssa: remove import of loader from builder_test.go
  > 1c9ca8b go/types/objectpath,internal/aliases: miscellaneous clean up of tests that set gotypesalias
  > 23e1af6 go/ssa: migrate TestGenericFunctionSelector away from loader
  > 8adb6e8 go/ssa: migrate TestTypeparamTest away from loader
  > 7bb384d gopls/internal/test/integration/bench: add an IWL test that opens files
  > faf6e28 go/ssa: migrate TestGenericAliases away from loader
  > 81a4242 internal/gcimporter: update TestIssueAliases expectation
  > 54110aa internal/modindex: package for indexing GOMODCACHE
  > b577f77 gopls/internal/cache: remove unnecessary active package check
  > 06b986b gopls/internal/cache: add a few checks for context cancellation
  > 83326b7 gopls/internal/cache: join concurrent package batch operations
  > 34638fc cmd/{callgraph,ssadump}, gopackages: make -tags flags work
  > d911e4a gopls: disable ast.Object resolution wherever possible
  > eb774f6 go/packages: fix LoadMode.String
  > 31fdc78 gopls/internal/server: allow suppression of showDocument
  > 752860b gopls/internal/protocol/command: simplify ApplyFix
  > fadcea5 gopls/internal/golang: CodeAction: split into producers
  > f70550d go/ssa: migrate some tests in build_test.go away from loader
  > 01bd772 go/callgraph: rewrite tests to use go/packages not go/loader
  > f8ce005 go/types/objectpath: use go/packages instead of go/loader in tests
  > d2c1642 internal/gcimporter: rewrite TestIExportData_stdlib using go/packages
  > af67b9d go/ssa: migrate source_test.go away from loader
  > 3bb0ed7 x/tools: assume go1.22 and simplify
  > 1d5e334 internal/aliases: remove Alias and Unalias
  > 0b6abe3 go/ssa: remove loader utility functions
  > 6a0cacb go/ssa: add test utility for building a single file
  > 1204c80 cmd/gorename: delete
  > 1c37166 go/ssa: move build tag guarded tests
  > dfc41b5 go/ssa: use ast.RangeStmt.Range position directly
  > 3921b59 cmd/gorename: remove replace directive
  > d09d36b x/tools: remove refs to cmd/gorename
  > 8517dc9 cmd/gorename: create submodule
  > cd349f3 go/ssa: Move instantiation tests off of unexported API
  > 45851d3 gopls/internal/telemetry/cmd/stacks: show build failure stderr
  > c8d229c all: fix spelling errors
  > 8db9562 go/ssa: update public doc of CreatePackage
  > bea7373 gopls/internal/protocol/command: remove nuisance error handling
  > 18a3f05 go/ssa: remove outdated any normalizer setting up in test
  > 0355013 go/ssa: sanity check for package transient fields
  > 2aabc4f go/analysis/passes/printf: return when suppressing a non-constant diagnostic
  > 5cb6eeb txtar: use slices.Clone instead of copy
  > e603756 gopls/internal/cache: add telemetry counter for GOPACKAGESDRIVER
  > 42b921c gopls/internal/test/integration: skip BenchmarkPackages with -short
  > a58d83b gopls/internal/cache: build the import map lazily during type checking
  > 765ea95 go/analysis/passes/printf: add global to disable new diagnostics
  > a319a85 gopls/internal/telemetry/cmd/stacks: display closed issues white
  > 5aac53c gopls/internal/golang: Definition: jump to assembly
  > 8fcd92f gopls/internal/telemetry/cmd/stacks: predicate de-duplication
  > 7891473 gopls/internal/telemetry/cmd/stacks: fix two bugs
  > 91d4bdb gopls: rm GofumptFormat from internal/settings
  > 198986d go/ssa: go/ssa: disable TestTypeparamTest on wasm
  > 3e49191 gopls/internal/telemetry/cmd/stacks: generate CodeSearch links
  > beed481 gopls/internal/settings: use CodeActionKind hierarchy
  > 15b8886 SignatureHelp: report signature of Ident if no enclosing CallExpr
  > 4e8d5c8 gopls: bump gofumpt to 0.7.0
  > 6a387a4 go/ssa: require 1.23 for TestCycles
  > 42a6477 go/ssa: disable TestTypeparamTest/chan.go on wasm
  > 5157118 gopls/internal/lsp/source: put testing.T/B first when extracting
  > 94ac686 go/ssa: pop targets stack on range-over-func
  > 2884375 gopls/internal/golang: Definitions: support renaming imports in doc links
  > b0f680c go/ssa: reenable TestStdlib
  > b7af269 go/ssa: improve sanity checking
  > fd7ab2d gopls/internal/server: fix build following semantic merge conflict
  > dc4c525 gopls/internal: test discovery
  > 8ba9169 gopls/internal/golang: Highlight: work around go/types bug
  > bfc94c9 go/ssa: extract type recursion into a helper package
  > 1dc949f internal/settings: simplify linking now that we only build with 1.23
  > c055e89 x/tools: deprecate astutil.Unparen
  > c2e057b gopls: use Func.Signature everywhere
  > 6b0cfff internal/test/marker: support multi-line locations
  > 9d7d14e x/tools/gopls: delete code obsoleted by go1.23
  > 4bcf6a3 internal/golang: add a fast path for FormatVarType with gopls at 1.23
bumping golang.org/x/net 35b4aba...6cc5ac4:
  > 6cc5ac4 go.mod: update golang.org/x dependencies
  > f88258d websocket: update nhooyr.io/websocket to github.com/coder/websocket
  > 7191757 http2: add support for net/http HTTP2 config field
  > 4790dc7 http2: add support for server-originated pings
  > 541dbe5 http2: add Server.WriteByteTimeout
  > 3c333c0 route: fix address parsing of messages on Darwin
bumping knative.dev/reconciler-test 87d8570...5e05cb3:
  > 5e05cb3 Fix WithLabels and WithPodLabels to append to eventually existing labels (# 765)
bumping golang.org/x/text 1e3e9fd...3043346:
  > 3043346 x/text: Correct examples in number/doc
  > 38a95c2 all: fix some comments
  > 20097e4 all: fix printf(var) mistakes detected by latest printf checker
bumping golang.org/x/sys a43b625...23b0dab:
  > 23b0dab unix: mark vgetrandom as non-escaping
  > cbf0eb6 unix: fix grep syntax to work on non-GNU greps
  > e7397b9 unix: update to Linux 6.11
  > 981de40 unix: use vDSO for getrandom() on linux
  > 48aad76 linux: add tcp_cc_info and its related types
  > d58f986 all: fix some typos in comment
  > 30de352 unix: fix Test{Fd,}Xattr failure on NetBSD
  > 68ed59b windows/svc: fix printf(var) mistake detected by latest printf checker
  > c08bc6e unix: update Go to 1.23.0
bumping golang.org/x/crypto c9da6b9...adef4cc:
  > adef4cc go.mod: update golang.org/x dependencies
  > a0819fb sha3: fix cSHAKE initialization for extremely large N and or S
  > 42ee18b ssh: return ServerAuthError after too many auth failures
  > 9e92970 bn256: add missing symbols in comment

Signed-off-by: Knative Automation <automation@knative.team>
2024-10-10 15:11:08 +00:00
Knative Automation db729bc943
[main] Update community files (#8237)
Update community files

Signed-off-by: Knative Automation <automation@knative.team>
2024-10-10 13:14:43 +00:00
Marek Schmidt 67af70be52
workaround DeepDerivative CreationTimestamp comparison (#8233) 2024-10-08 06:10:00 +00:00
Matthias Wessendorf e6490c3039
Add Convertible interface to job sink (#8214)
Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2024-10-02 13:17:22 +00:00
Matthias Wessendorf b3b29f09e3
update jobsink TLS comments (#8215)
Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2024-10-02 11:20:22 +00:00
Knative Automation c8c1f41abf
[main] Upgrade to latest dependencies (#8201)
upgrade to latest dependencies

bumping google.golang.org/genproto/googleapis/rpc 573a115...ddb44da:
  > ddb44da chore: update to 1.21 (# 1152)
  > 8ffd90a chore(all): auto-regenerate .pb.go files (# 1150)
bumping github.com/gobuffalo/flect 6ae7779...cbe6b82:
  > cbe6b82 Merge pull request # 75 from khayyamsaleem/bugfix/74
  > 784c899 fix for panics when humanize called on whitespace
bumping google.golang.org/genproto/googleapis/api 573a115...ddb44da:
  > ddb44da chore: update to 1.21 (# 1152)
  > 8ffd90a chore(all): auto-regenerate .pb.go files (# 1150)
bumping knative.dev/pkg aaab500...5031733:
  > 5031733 Bump go.uber.org/automaxprocs from 1.5.3 to 1.6.0 (# 3097)
  > c4843b7 Give users the ability to disable namespace ownership of webhook configurations (# 3095)
  > 28b58b8 Use istio.sidecar.inject label instead of annotation (# 3096)
  > aabe552 Bump google.golang.org/grpc from 1.66.2 to 1.67.0 (# 3094)
  > a4774ed Bump github.com/gobuffalo/flect from 1.0.2 to 1.0.3 (# 3093)
bumping go.uber.org/automaxprocs e83e959...1ea14c3:
  > 1ea14c3 Release v1.6.0 (# 90)
  > 144f5c1 Remove glide.yaml (# 89)
  > 8553d3b Add option to round up CPU quota (# 79)
  > c9adbb9 Use Go 1.21 (# 82)
bumping google.golang.org/grpc d0bf90a...6f50403:
  > 6f50403 Change version to 1.67.0 (# 7604)
  > 3c3a025 mem: replace flate.Reader reference (# 7595) (# 7637)
  > 3ffb98b .*: fix revive lints `redefines-builtin-id` (# 7552)
  > 5666049 vet: enforce revive linter (# 7589)
  > c6ad07f protoc: regenerate protos (# 7590)
  > 70f19ee credentials/tls: default GRPC_ENFORCE_ALPN_ENABLED to true (# 7535)
  > 92111dc xds: keep ads flow control local to xdsclient/transport package (# 7578)
  > 535bdce estats: remove dependency on testing package (# 7579)
  > 0f03c74 .*: fix revive lint issues `unused-parameter` (# 7580)
  > 6147c81 stats/opentelemetry: Optimize slice allocations (# 7525)
  > cd05c9e .*: fix revive package-comments lint issues (# 7574)
  > 00514a7 xds/clusterimpl: update UpdateClientConnState to handle updates synchronously (# 7533)
  > 093e099 grpc: fix regression by freeing request bufferslice after processing unary (# 7571)
  > 8320224 .*: revive from unused_parameters (# 7577)
  > 845f62c stats/otel: upgrade grpc version that contains the experimental/stats package (# 7545)
  > 55d820d clusterresolver/e2e_test: Avoid making DNS requests (# 7561)
  > 52961f7 grpc: add docs for generic stream interfaces  (# 7470)
  > 005b092 examples/advancedtls: example code for different security configurations for grpc-go using `advancedtls` (# 7474)
  > 0b6f354 xdsclient: Populate total_issued_requests count in LRS load reports (# 7544)
  > c535946 grpc: Fix flaky picker_wrapper tests (# 7560)
  > 9feed00 balancer/wrr: prefer calling Equal() method of time.Time (# 7529)
  > a8e6e11 .*: Use `strings.ReplaceAll(.....)` (# 7554)
  > 6d97688 xds/xdsclient: Fix flaky test TestLRSClient  (# 7559)
  > cfd14ba encoding: delete v1 proto codec and use one map for registry (# 7557)
  > 3d95421 Fix revive identified linter issues: var-declaration, indent-error-flow, increment-decrement, superfluous-else (# 7528)
  > e4b09f1 Remove trailing whitespace in testing.yml (# 7551)
  > 0a5b8f7 balancer: disallow producer streams until SubConn has reported READY (# 7523)
  > 9ab8b62 Implement new Codec that uses `mem.BufferSlice` instead of `[]byte` (# 7356)
  > 7e12068 bootstrap: add `String` method to ServerConfigs type (# 7537)
  > ee5cbce ringhash: fix bug where ring hash can be stuck in transient failure despite having available endpoints (# 7364)
  > 1e2bb71 doc: update keepalive ClientParameters doc about doubling the interval upon GOAWAY (# 7469)
  > 6a5a283 Use builtin min and max functions (# 7478)
  > 90caeb3 deps: update dependencies for all modules (# 7531)
  > f8d98a4 rbac: fix usage of AuthInfo (# 7522)
  > 4e29cc6 transport: add timeout for writing GOAWAY on http2Client.Close() (# 7371)
  > b45fc41 Change version to 1.67.0-dev (# 7520)
bumping knative.dev/reconciler-test 6372b7a...87d8570:
  > 87d8570 Use istio inject label (# 762)
  > 1fee6ba upgrade to latest dependencies (# 758)
  > 13c0118 Handle resource already exists in Apply (# 759)
  > 0cb8938 upgrade to latest dependencies (# 757)

Signed-off-by: Knative Automation <automation@knative.team>
2024-09-30 15:18:02 +00:00
Pierangelo Di Pilato e7fca7646f
Add Istio inject label (#8205)
Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2024-09-26 12:34:47 +00:00
Pierangelo Di Pilato 641cbb7dff
Remove scheduler `wait`s to speed up recovery time (#8200)
Currently, the scheduler and autoscaler are single threads and use
a lock to prevent multiple scheduling and autoscaling decision
from happening in parallel; this is not a problem for our use
cases, however, the multiple `wait` currently present are slowing
down recovery time.

From my testing, if I delete and recreate the Kafka control plane
and data plane, without this patch it takes 1h to recover when there
are 400 triggers or 20 minutes when there are 100 triggers; with the
patch it is immediate (only a 2/3 minutes with 400 triggers).

- Remove `wait`s from state builder and autoscaler
- Add additional debug logs
- Use logger provided through the context as opposed to gloabal loggers
  in each individual component to preserve `knative/pkg` resource aware
  log keys.

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2024-09-23 13:50:23 +00:00
Matthias Wessendorf 2869c6c677
Enhance tests for v1b3 event type, new attrs (#8197)
* 💄 Enhance tests for v1b3 event type, new attrs

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

* Update eventtype_validation_test.go

---------

Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2024-09-20 10:14:14 +00:00
Knative Automation 17088813b4
[main] Upgrade to latest dependencies (#8191)
upgrade to latest dependencies

bumping google.golang.org/grpc 2da9769...d0bf90a:
  > d0bf90a Change version to 1.66.2 (# 7620)
  > c84da66 Cherry pick # 7595 to v1.66.x release branch (# 7621)
  > 12487c8 Cherry pick # 7571 and # 7579 to v1.66.x release branch (# 7616)
  > 7185cf4 Change to version 1.66.2-dev (# 7615)
  > cb81df6 Change to patch release 1.66.1 (# 7603)
  > ecb3e1a Change version to 1.66.1-dev (# 7519)
  > 00d3ec8 Change version to 1.66.0 (# 7518)
  > 973e3dc xdsclient: Populate total_issued_requests count in LRS load reports (# 7544) (# 7565)
  > 8e3596c cherry-pick # 7557 to v1.66.x branch (# 7564)
  > 62baa5f cherry-pick # 7356 to v1.66.x branch (# 7546)
  > f857020 cherry-pick # 7523 to v1.66.x branch (# 7547)
  > 35e915e cherry-pick: transport: add timeout for writing GOAWAY on http2Client.Close() # 7371 (# 7540)
  > 63853fd rls: update picker synchronously on configuration update (# 7412)
  > 86135c3 csds: unskip e2e test (# 7502)
  > 5d07b63 transport: change `*http2Client` to interface `ClientTransport` (# 7512)
  > c98235b grpclog: refactor to move implementation to grpclog/internal (# 7465)
  > 7ec3fd2 balancer/rls: Fix RLS Cache metrics (# 7511)
  > 6d7f07c test/tools: update staticcheck version to latest (# 7509)
  > 9706bf8 balancer/rls: Add cache metrics (# 7495)
  > c8951ab *: fix minor typos (# 7487)
  > 3cb3342 .*: fix comments (# 7504)
  > eece43b latency: don't wrap when all the latencies are zero (# 7506)
  > 366decf transport/grpchttp2: add http2.Framer bridge (# 7453)
  > 5c4da09 grpc: fix a bug introduced in # 7461 (# 7505)
  > 1008562 benchmark: wire in new gzip compressor (# 7486)
  > ced812e xds: implement ADS stream flow control mechanism (# 7458)
  > 54b48f7 balancer/weightedroundrobin: Add recording point for endpoint weight not yet usable and add metrics tests (# 7466)
  > 7b9e012 balancer/rls: Add picker metrics (# 7484)
  > 3ee837c *.pb.go: regenerate protos (# 7493)
  > f9b96b8 internal/transport: Unlock mutex before panic (# 7488)
  > d00dd8f xds: env var protection for xds fallback (# 7483)
  > ffaa81e transport/bufWriter: fast-fail on error returned from flushKeepBuffer() (# 7394)
  > 1490d60 transport/grpchttp2: revert # 7477 usage of mem package (# 7485)
  > e6b6318 transport/grpchttp2: change types to include `mem` package (# 7477)
  > 6d0aaae grpc: make client report `Internal` status when server response contains unsupported encoding (# 7461)
  > 338595c balancergroup: remove mentions of locality from comments (# 7476)
  > c8716e5 mem: fix comment typo (# 7482)
  > e524655 tools: Add github.com/mgechev/revive (# 7472)
  > 4a26a49 balancer/leastrequest: Add verbosity check around build log (# 7467)
  > 887d908 mem: introduce `mem` package to facilitate memory reuse (# 7432)
  > 6fa393c transport/grpchttp2: add doc to methods and values (# 7445)
  > 1013847 cmd/protoc-gen-go-grpc: fix typo pancis -> panics (# 7456)
  > 1b1230b resolver_wrapper: add early return in addChannelzTraceEvent (# 7437)
  > 5520cff experimental/stats/metricregistry: Add comments on enum consts for Metrics Type (# 7457)
  > 0b33bfe transport: Discard the buffer when empty after http connect handshake (# 7424)
  > 566aad1 examples/retry: remove waitForReady from service config (# 7450)
  > ec9dff7 cmd/protoc-gen-go-grpc: update version to 1.5.1 (# 7452)
  > 245323c cmd/protoc-gen-go-grpc: remove replace and skip test that requires it for now (# 7451)
  > 3eb0145 balancer/weightedroundrobin: Add emissions of metrics through metrics registry (# 7439)
  > bc03420 cmd/protoc-gen-go-grpc: update version for release
  > 84a4ef1 internal/stats: Add metrics recorder list and usage in ClientConn  (# 7428)
  > 47be8a6 Remove trailing spaces (# 7426)
  > 1feeaec stats: Add optional locality label in cluster_impl picker (# 7434)
  > 9671c4a cmd/protoc-gen-go-grpc: test the embedded struct at registration time for proper usage (# 7438)
  > 40f3998 client: Stabilize WaitForStateChange API (# 7425)
  > aae9e64 docs: fix and improve anti-patterns.md (# 7418)
  > ac5a7fe xds: Fix flaky test Test/ServerSideXDS_WithValidAndInvalidSecurityConfiguration (# 7411)
  > 0231b0d transport/grpcframer: create grpcframer package (# 7397)
  > 2bcbcab stats/opentelemetry: Add usage of metrics registry (# 7410)
  > 64adc81 scripts: regenerate pbs with caching deps to a fixed tmp folder (# 7409)
  > 4ed8180 ringhash: more e2e tests from c-core (# 7334)
  > 61aa949 vet: fix option order when invoking grep (# 7421)
  > b1979b6 vet: remove trailing whitespace (# 7420)
  > 700ca74 xds/balancer/priority: Unlock mutex before returning (# 7417)
  > d27ddb5 internal/grpcsync: support two ways to schedule a callback with the serializer (# 7408)
  > ecbb837 experimental/stats: Add metrics registry (# 7349)
  > c5c0e18 scripts: minor refactor to scripts (# 7403)
  > e7d8822 protoc-gen-go-grpc: add period to end of generated comment (# 7392)
  > ee62e56 xds: fix typos (# 7405)
  > 48b7581 security/advancedtls: remove Go1.19 build constraints (# 7404)
  > eff3e67 *.pb.go: regenerate (# 7402)
  > e54f441 xds: make fallback bootstrap configuration per-process (# 7401)
  > 9c5b31d xds: use locality from the connected address for load reporting (# 7378)
  > 45d44a7 grpc: hold ac.mu while calling resetTransport to prevent concurrent connection attempts (# 7390)
  > f64a6a3 test/channelz: change channelz_test to use write data (# 7396)
  > daab563 examples: Add OpenTelemetry example (# 7296)
  > bb49a88 cmd/protoc-gen-go-grpc: default use_generic_streams_experimental to true (# 7387)
  > 53a5c41 interop/lb: Increase Go PSM LB test timeout to 300min (# 7393)
  > bdd707e scripts: add linter rule for using context.WithTimeout on tests (# 7342)
  > 4e9b596 xds: add support for multiple xDS clients, for fallback (# 7347)
  > 5ac73ac documentation: Update proxy docs to point to `WithContextDialer` (# 7361)
  > d382d84 metadata: stabilize ValueFromIncomingContext (# 7368)
  > c9caa9e metadata: remove String method (# 7372)
  > f199062 xds: Add a test for incorrect load reporting when using pickfirst with servers in multiple localities (# 7357)
  > 6126383 metadata: make Stringer implementation consistent (# 7355)
  > 98e5dee cmd/protoc-gen-go-grpc: enable edition 2023 support (# 7351)
  > 5f5d4d2 doc: fix link to error_details example (# 7345)
  > 1811c6f github: update codecov with token and fail_ci_if_error (# 7348)
  > 3e78e9b MAINTAINERS.md: add new members and move ex-members to emeritus (# 7284)
  > 8c80220 grpclog: remove Debugf method to avoid unnecessary evaluation (# 7330)
  > c8568c9 grpc: Readd pick first name (# 7336)
  > cd7e282 go.mod: update go-control-plane dependency for xDS fallback (# 7340)
  > a0311cd golint fix: context.Context should be the first parameter of a function (# 7338)
  > b8ca292 examples/features/retry: Improve docstring (# 7331)
  > f1b7f41 xds/bootstrap: add testing support to generate config (# 7326)
  > c441d42 github: use latest release of qemu emulator (# 7337)
  > 970f390 test: fix typo in pickfirst_test.go (# 7332)
  > c04b085 internal/transport: minor cleanup of controlBuffer code (# 7319)
  > 07078c4 github: add cache-dependency-path to setup-go (# 7323)
  > 24a6b48 credentials/alts: fix defer in TestDial (# 7301)
  > e37c6e8 fix testclient type in ringhash_balancer_test checkRPCSendOK (# 7324)
  > 8075dd3  stats/opentelemetry: Fix protobuf import (# 7320)
  > 4dd7f55 ringhash: port e2e tests from c-core (# 7271)
  > de51a63 examples: Add CSM Observability example (# 7302)
  > 3267089 stats/opentelemetry: Add e2e testing for CSM Observability (# 7279)
  > c4753c3 scripts: improve regenerate.sh to use the correct proto compiler version (# 7064)
  > e2e7a51 xds/internal/xdsclient: Emit unknown for CSM Labels if not present in CDS (# 7309)
  > e40eb2e deps: update dependencies for all modules (# 7310)
  > dfcabe0 xds: cleanup bootstrap processing functionality (# 7299)
  > dbd24a9 [advancedTLS] Removed deprecated APIs in advancedTLS (# 7303)
  > 30c0cdd vet: remove --quiet from git grep when output is expected (# 7305)
  > 5a289d9 dns: fix constant 30s backoff for re-resolution (# 7262)
  > 9bdf335 Change version to 1.66.0-dev (# 7308)
bumping golang.org/x/tools 3057be8...7398f36:
  > 7398f36 all: fix some symbols error in comment
  > f111c72 go/callgraph/rta: skip test on js platform
  > 9f9b7e3 gopls/internal/settings: add missing deep cloning in Options.Clone
  > ce7eed4 doc/generate: minor cleanup
  > 075ae7d go/callgraph/vta: add basic tests for range-over-func
  > 2c7aaab go/ssa: skip failing test
  > 1b5663f go/callgraph/vta: perform minor cleanups
  > 0a49883 gopls/go.mod: update the go directive to 1.23.1
  > ad366a8 go.mod: update golang.org/x dependencies
  > 4fb36d1 go/callgraph/rta: add rta analysis test case for multiple go packages
  > dc4d64c gopls: fix non-constant format strings
  > c758e54 cmd/callgraph: make vta use internal version of CHA
  > 94b564c go.mod: for consistency with other repos, use 1.22.0 in go.mod
  > 70f5626 all: with 1.23 out, update Go directive to Go 1.22
  > 5a3171b internal/typesinternal: correct spec anchors in comments
  > c538e2c go/callgraph/static: avoid ssautil.AllFunctions
  > 2db563b internal/gcimporter: copy over ureader changes
  > 09886e0 go/callgraph/vta: allow nil initial call graph
  > e5ae0a9 internal/pkgbits: cleanup pre-Go 1.17 workaround
  > 264b4b5 go/callgraph/vta: add return parameter nodes for functions
  > 063360f gopls: update x/telemetry dependency
  > 28f3bc0 internal/pkgbits: copy over changes for V2
  > fd2067f go/callgraph/vta: use struct{} instead of bool in sets
  > ce02ccd gopls/internal/test/marker: simplify completion markers
  > 4ead70c gopls: report semantic tokens of top-level type constructor modifiers
  > 826d8d9 gopls/internal/cache: add a note about GOMEMLIMIT and ballasts
  > aaf49f1 gopls/internal/cache: add a 100MB ballast to reduce GC CPU
  > 12307aa gopls/internal/util/lru: make lru.Cache generic
  > 594cdab gopls: increment the telemetryprompt acceptance counter for each session
  > adb7301 internal/versions: disable a test case incompatible with CL 607955
  > 0734f62 internal/gcimporter: support type parameterized aliases in indexed format
  > b5f24ec internal/aliases: add type parameters argument to NewAliases
  > f5c7449 gopls/internal: implement Packages command
  > e5e8aa8 gopls/internal: implement Modules command
  > 9ef0547 internal/gcimporter: move indexed format docs
  > c7adb63 go/analysis/passes/fieldalignment: fix doc
  > 66adacf internal/pkgbits: improve ureader panic message
  > e104dc8 gopls/internal/settings: rename goTest code action to source.test
  > dfcdf50 go/analysis/passes/copylock: add support for ForStmt
  > 136c165 gopls/internal/cache: remove spurious assertions
  > 7cc3be7 internal/imports: use a clean GOMODCACHE for the scan root directory
  > d47b4fb internal/testfiles: adjust test so all modules are after 1.21
  > c1241b9 internal/stdlib: update stdlib index for Go 1.23.0
  > e6bef92 gopls/internal/golang: downgrade assertion in methodsets index
  > 7f262d6 all: disable tests incompatible with CL 603895
  > a76f882 gopls: enhance read/write access distinction in document highlighting for symbols
  > 4dc9194 go/callgraph/vta: fix test under GODEBUG=gotypesalias=1
  > 28ba991 go/analysis/passes/printf: add missing Unalias call
bumping knative.dev/pkg fdbc0b5...aaab500:
  > aaab500 Bump golang.org/x/tools from 0.24.0 to 0.25.0 (# 3091)
  > de0796c Bump google.golang.org/grpc from 1.66.0 to 1.66.2 (# 3092)
  > 3002873 Bump google.golang.org/grpc from 1.65.0 to 1.66.0 (# 3087)
bumping golang.org/x/mod bc151c4...46a3137:
  > 46a3137 zip: set GIT_DIR in test when using bare repositories
  > 3afcd4e go.mod: set go version to 1.22.0
  > b1d336c go.mod: update required go version to go1.22
bumping knative.dev/reconciler-test bb4bca0...6372b7a:
  > 6372b7a upgrade to latest dependencies (# 756)

Signed-off-by: Knative Automation <automation@knative.team>
2024-09-18 14:13:38 +00:00
Calum Murray b48b6642da
feat: add constructor for full event lineage graph (#7921)
* feat: add constructor for full graph

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

* fix: tests build again

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

* fix: handle fetching sources properly

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

* fix: don't return early for auth errors

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

* feat: added config for graph constructor

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

* feat: add logging when unauthorized/forbidden to list resources

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

* Fix vertices fn creating nil pointers

for 3 entries, it was creating an array of 6

Signed-off-by: Ali Ok <aliok@redhat.com>

* fix review comments from @aliok

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

* Add stringer impl to types

Signed-off-by: Ali Ok <aliok@redhat.com>

* No panic if source filter is not specified

Signed-off-by: Ali Ok <aliok@redhat.com>

* Replace some hardcoded strings

Signed-off-by: Ali Ok <aliok@redhat.com>

---------

Signed-off-by: Calum Murray <cmurray@redhat.com>
Signed-off-by: Ali Ok <aliok@redhat.com>
Co-authored-by: Ali Ok <aliok@redhat.com>
2024-09-18 11:29:45 +00:00
Christoph Stäbler e79f3b6589
Make auth package indepent from eventpolicy informer (#8195)
* Make pkg/auth independent from eventpolicy informer

* Rename TokenVerifier into Verifier

* Run goimports
2024-09-17 08:22:47 +00:00
Christoph Stäbler ae6ed99f7b
Fix JobSink to support AuthZ on GET too (#8196)
* Fix JobSink to support AuthZ on GET too

* Remove deprecated auth.VerifyJWTFromRequest() method.
2024-09-16 16:54:17 +00:00
Martin Gencur 608e76cfa3
Add broker transformation test to upgrade tests (#8190)
* Add broker transformation test to upgrade tests

* Fix test names that are reported
2024-09-16 06:04:56 +00:00
Knative Automation c91a9d8a47
[main] Upgrade to latest dependencies (#8189)
upgrade to latest dependencies

bumping golang.org/x/text b2bec85...1e3e9fd:
  > 1e3e9fd all: rename Example test functions to prevent vet errors
bumping golang.org/x/sys 914deed...a43b625:
  > a43b625 windows: add SIO_UDP_NETRESET constant
  > ed67b15 windows: add console codepage api
  > 9cb830b unix: add missing import to syscall_hurd.go
  > 71132f5 unix: add POLLRDHUP to FreeBSD
  > 3283fc3 cpu: add support for detecting RISC-V extensions
  > 29e55b2 unix: use os.Executable rather than os.Args[0] in tests
  > a8c5219 unix: rename XDPUmemReg field back to Size
  > 59665e5 unix: add Connectx for darwin
  > a0c72ef unix: add f_flag member flags on z/OS
  > c64c51d unix: update riscv64 hwprobe to Linux kernel 6.10
  > da77c6b unix: sync minimum Linux Kernel version with requirements page
bumping golang.org/x/term d598954...2f7b0dd:
  > 2f7b0dd go.mod: update golang.org/x dependencies
  > f867b76 x/term: set missing VIRTUAL_TERMINAL_INPUT flag on Windows
bumping knative.dev/hack/schema 9724320...fc6a845:
  > fc6a845 Update community files (# 398)
bumping knative.dev/reconciler-test 036ce14...bb4bca0:
  > bb4bca0 upgrade to latest dependencies (# 754)
  > 15e86a5 Update community files (# 755)
bumping knative.dev/hack 9724320...fc6a845:
  > fc6a845 Update community files (# 398)
bumping golang.org/x/net 4542a42...35b4aba:
  > 35b4aba go.mod: update golang.org/x dependencies
  > 9bf379f websocket: fix printf(var) mistake detected by latest printf checker
bumping knative.dev/pkg a1469cf...fdbc0b5:
  > fdbc0b5 Bump golang.org/x/net from 0.28.0 to 0.29.0 (# 3090)
  > 7c0ad27 Update community files (# 3089)
bumping golang.org/x/crypto 5bcd010...c9da6b9:
  > c9da6b9 all: fix printf(var) mistakes detected by latest printf checker
  > b35ab4f go.mod: update golang.org/x dependencies
  > bcb0f91 internal/poly1305: Port sum_amd64.s to Avo
  > 7eace71 chacha20poly1305: Avo port of chacha20poly1305_amd64.s
  > 620dfbc salsa20/salsa: Port salsa20_amd64.s to Avo
  > 82942cf blake2b: port blake2b_amd64.s to Avo
  > 0484c26 blake2b: port blake2bAVX2_amd64.s to Avo
  > 38ed1bc blake2s: port blake2s_amd64.s to Avo
  > 38a0b5d argon2: Avo port of blamka_amd64.s
  > bf5f14f x509roots/fallback: update bundle
  > b2d3a6a ssh/agent: ensure to not add duplicated keys

Signed-off-by: Knative Automation <automation@knative.team>
2024-09-11 14:10:24 +00:00
Martin Gencur 229446dd03
Create paired upgrade tests (#8158)
* Re-use channel.ChannelChain reconciler-test feature in upgrade tests

* Fix glob -> global

* Remove redundant feature name from test name

* Remove Setup/Verify from test name

* Use slices.Concat from Golang 1.22

* Include setupEnv and setupCtx in DurableFeature

* Remove most pointers

* Refactor and use FeatureGroupWithUpgradeTests

* Try workaround for issues/8161

* Renames

* Expose EnvOpts and make DurableFeature more configurable
2024-09-10 15:34:51 +00:00
Knative Automation 04c42dc09e
[main] Update community files (#8187)
Update community files

Signed-off-by: Knative Automation <automation@knative.team>
2024-09-09 01:36:30 +00:00
Knative Automation 8c22bf55ee
[main] Upgrade to latest dependencies (#8186)
upgrade to latest dependencies

bumping knative.dev/hack 06f7aff...9724320:
  > 9724320 Fix premature codegen cleanup exit on 1 (# 397)
bumping knative.dev/hack/schema 06f7aff...9724320:
  > 9724320 Fix premature codegen cleanup exit on 1 (# 397)
bumping knative.dev/pkg 89743d9...a1469cf:
  > a1469cf upgrade to latest dependencies (# 3088)

Signed-off-by: Knative Automation <automation@knative.team>
2024-09-06 12:18:36 +00:00
Pierangelo Di Pilato 07d379056b
SinkBinding wrongly enqueues namespaces (#8184)
Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2024-09-02 13:39:26 +00:00
Pierangelo Di Pilato 902f9d3c9d
Migrate to kube_codegen.sh (#8183)
Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2024-08-30 06:10:19 +00:00
Pierangelo Di Pilato 34f9cd384d
Disable controller default health probes in the IMC dispatcher (#8125)
The IMC dispatcher is using the same server receiving events
for k8s readiness and liveness probes, so we don't need the
controller internal health server to be running.

The controller internal health server is using the same port
which leads to this error:

```
2024-07-31T15:58:53.582Z	error	inmemorychannel-dispatcher	sharedmain/main.go:334	Error while running server	{"commit": "b7bfc92", "knative.dev/pod": "imc-dispatcher-696d94588d-j7fr5", "error": "listen tcp :8080: bind: address already in use"}
knative.dev/pkg/injection/sharedmain.MainWithConfig
	knative.dev/pkg@v0.0.0-20240716082220-4355f0c73608/injection/sharedmain/main.go:334
knative.dev/pkg/injection/sharedmain.MainWithContext
	knative.dev/pkg@v0.0.0-20240716082220-4355f0c73608/injection/sharedmain/main.go:209
main.main
	knative.dev/eventing/cmd/in_memory/channel_dispatcher/main.go:47
runtime.main
	runtime/proc.go:271
```

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2024-08-28 13:44:50 +00:00
Christoph Stäbler ecae8953ff
AuthZ: Provide function to update AppliedEventPoliciesStatus based on a given list of applying policies (#8173) 2024-08-27 09:05:32 +00:00
Christoph Stäbler 833f4aa120
Split AuthZ e2e tests (#8181) 2024-08-26 16:56:23 +00:00
Leo Li 36e0721b38
Broker class based defaults (#7631)
* First draft of the default broker class code

Signed-off-by: Leo Li <leoli@redhat.com>

* Change the default broker class config

Signed-off-by: Leo Li <leoli@redhat.com>

* Run codegen

Signed-off-by: Leo Li <leoli@redhat.com>

* Refactor the code

Signed-off-by: Leo Li <leoli@redhat.com>

* Codegen

Signed-off-by: Leo Li <leoli@redhat.com>

* Fix the build error and run code gen

Signed-off-by: Leo Li <leoli@redhat.com>

* Fix the build error in the tests

Signed-off-by: Leo Li <leoli@redhat.com>

* Fix the build error in the tests

Signed-off-by: Leo Li <leoli@redhat.com>

* Modify the current existing test, and add more test cases

Signed-off-by: Leo Li <leoli@redhat.com>

* Modify the current existing test, and add more test cases

Signed-off-by: Leo Li <leoli@redhat.com>

* Pass in the actual broker name instead of leaving it empty

Signed-off-by: Leo Li <leoli@redhat.com>

* Modify the condition to check whether Different Namespace is allowed according to the default configs

Signed-off-by: Leo Li <leoli@redhat.com>

* Revert the brokerSpec.Name change.

Signed-off-by: Leo Li <leoli@redhat.com>

* Fix the failing unit tests by adding the default config for the defaults

Signed-off-by: Leo Li <leoli@redhat.com>

* Fix the failing unit tests

Signed-off-by: Leo Li <leoli@redhat.com>

* Fix the review comments

Signed-off-by: Leo Li <leoli@redhat.com>

* Update pkg/apis/config/defaults.go

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

* Change the tests to be table form

Signed-off-by: Leo Li <leoli@redhat.com>

* Check if the brokerClassName is the default broker class for the whole cluster

Signed-off-by: Leo Li <leoli@redhat.com>

* Fixed the build error

Signed-off-by: Leo Li <leoli@redhat.com>

* fix: instead of always passing the empty className, pass in the variable instead

Signed-off-by: Leo Li <leoli@redhat.com>

* fix: brokerClass is a string pointer. If the value is null but pointer has value, it will pass. So this commit fix that problem.

Signed-off-by: Leo Li <leoli@redhat.com>

* feat: adding some temporary test cases for testing purposes

Signed-off-by: Leo Li <leoli@redhat.com>

* feat: adding some temporary test cases for testing purposes

Signed-off-by: Leo Li <leoli@redhat.com>

* fix: fix the failing tests

Signed-off-by: Leo Li <leoli@redhat.com>

* fix: fix FIXME, the issue that can potentially cause SegFault

Signed-off-by: Leo Li <leoli@redhat.com>

* fix: fix the failing rabbitmq issue

Signed-off-by: Leo Li <leoli@redhat.com>

* fix: remove the trailing whitespace

Signed-off-by: Leo Li <leoli@redhat.com>

* fix: update the comments

Signed-off-by: Leo Li <leoli@redhat.com>

* feat: add the high level summary for the code

Signed-off-by: Leo Li <leoli@redhat.com>

* fix: fix the review comments

Signed-off-by: Leo Li <leoli@redhat.com>

* fix: fix the review comments

Signed-off-by: Leo Li <leoli@redhat.com>

* fix: fix Calum's review comments

Signed-off-by: Leo Li <leoli@redhat.com>

* fix: fix failed unit test caused by the latest review comment fix

Signed-off-by: Leo Li <leoli@redhat.com>

* fix: fix failed unit test caused by the latest review comment fix

Signed-off-by: Leo Li <leoli@redhat.com>

* feat: add the test for the deprecating default broker config feature

Signed-off-by: Leo Li <leoli@redhat.com>

---------

Signed-off-by: Leo Li <leoli@redhat.com>
Co-authored-by: Christoph Stäbler <cstabler@redhat.com>
2024-08-22 17:13:11 +00:00
Knative Automation e4b6d6861c
[main] Upgrade to latest dependencies (#8172)
upgrade to latest dependencies

bumping knative.dev/reconciler-test 22954a2...036ce14:
  > 036ce14 Actually use provided namesapce in `secret.IsPresentInNamespace` (# 753)

Signed-off-by: Knative Automation <automation@knative.team>
2024-08-22 15:11:09 +00:00
Calum Murray 24a43e8b82
chore: refactor cross namespace test to make it reusable (#8157)
* chore: refactor cross namespace test to make it reusable

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

* cleanup: use broker.WithEnvConfig

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

* fix(build): remove unnecessary import

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

---------

Signed-off-by: Calum Murray <cmurray@redhat.com>
2024-08-22 15:11:00 +00:00
Calum Murray da10b71a2f
Support dispatcher format for triggers (#8151)
* feat: added delivery format to trigger crd

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

* feat: support delivery format in filter handler

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

* test: add e2e test to verify trigger delivers events with the correct format

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

---------

Signed-off-by: Calum Murray <cmurray@redhat.com>
2024-08-22 13:33:44 +00:00
Christoph Stäbler 477588c347
JobSink: Reject unauthorized requests (#8169)
* Reject unauthorized requests in JobSink

* Add e2e test
2024-08-22 12:31:02 +00:00
Christoph Stäbler 5fc4c0fcd1
Fix JobSink to have ObservedGeneration in status (#8168) 2024-08-20 13:22:24 +00:00
Christoph Stäbler ed71838e3a
Fix: Use correct readyness check in AuthZ conformance tests (#8167)
Use correct ready check in AuthZ conformance tests
2024-08-20 11:34:33 +00:00
Christoph Stäbler bf945f909e
Support authorization in Channel ingress (#8162)
* Add AuthZ check in channel ingress

* Add e2e test
2024-08-16 18:55:24 +00:00
Christoph Stäbler b57ac3ac42
Fix: propagate EventPolicy filter to underlying Channels EventPolicy (#8163) 2024-08-16 15:46:11 +00:00
Calum Murray 2b922992c8
Add filters to event policy (#8122)
* feat: add filters to eventpolicy type

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

* feat: add filters to eventpolicy crd

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

* feat: updated auth package to handle filters as well

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

* fix build issues, add unit tests

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

* address review comments

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

* test: added rekt test for eventpolicy with filters

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

* fix(test): event policy resources work

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

* small fixes to rekt test

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

* fix: tests ran in correct order

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

---------

Signed-off-by: Calum Murray <cmurray@redhat.com>
2024-08-16 05:59:41 +00:00
Knative Automation 90a88fc70f
[main] Upgrade to latest dependencies (#8159)
upgrade to latest dependencies

bumping knative.dev/hack/schema 452e340...06f7aff:
  > 06f7aff tag images using ko (# 393)
bumping knative.dev/reconciler-test fc8ca94...22954a2:
  > 22954a2 upgrade to latest dependencies (# 751)
  > b29c70c upgrade to latest dependencies (# 748)
bumping knative.dev/pkg cd3311c...89743d9:
  > 89743d9 upgrade to latest dependencies (# 3085)
bumping knative.dev/hack 452e340...06f7aff:
  > 06f7aff tag images using ko (# 393)

Signed-off-by: Knative Automation <automation@knative.team>
2024-08-15 14:13:11 +00:00
Calum Murray 1123cfa0a4
feat: reduced unnecessary creation of filters (#8118)
Signed-off-by: Calum Murray <cmurray@redhat.com>
2024-08-14 15:10:25 +00:00
Christoph Stäbler 71d5d5f0bb
Add AuthZ conformance e2e test suite (#8150)
* Add authz test suite for addressables

* Run ./hack/update-deps.sh --upgrade to get latest reconciler-test changes

* Use eventshub.OIDCSubject(sub)

* Fix Broker EventPolicy status condition set

* Enable NotReady checks again

* Fix style issues

* Update test/rekt/features/authz/addressable_authz_conformance.go

Co-authored-by: Calum Murray <cmurray@redhat.com>

* Update test/rekt/features/authz/addressable_authz_conformance.go

Co-authored-by: Calum Murray <cmurray@redhat.com>

---------

Co-authored-by: Calum Murray <cmurray@redhat.com>
2024-08-13 16:03:31 +00:00
Knative Automation e41da982cb
[main] Upgrade to latest dependencies (#8153)
upgrade to latest dependencies

Signed-off-by: Knative Automation <automation@knative.team>
2024-08-13 14:43:38 +00:00
Knative Automation 7a90257edb
[main] Upgrade to latest dependencies (#8126)
upgrade to latest dependencies

Signed-off-by: Knative Automation <automation@knative.team>
2024-08-12 17:54:35 +00:00
Christoph Stäbler f0ccedc046
mt-broker-filter: Allow only requests from Triggers Subscriptions OIDC ID (#8147)
mt-broker-filter: Allow only requests from Subscriptions OIDC ID
2024-08-12 16:10:20 +00:00
Calum Murray 941a9e1b88
fix: tracker can track resources in different ns (#8110)
* fix: tracker can track resources in different ns

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

* cleanup: fix function comments

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

---------

Signed-off-by: Calum Murray <cmurray@redhat.com>
2024-08-12 14:34:04 +00:00
Tejas Kumar a4e5a0ee39
added event format to dispatcher (#8096)
* added event format to dispatcher

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* improved tests

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* fixed tests

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* fixed tests

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* reused v1 format type

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* reused v1 format type

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

---------

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>
2024-08-12 14:33:58 +00:00
Rahul Sawra c521efb66d
Add EventPolicy reconciliation for Parallel (#8112)
* create eventpolicies for parallel channel

Signed-off-by: rahulii <r.sawra@gmail.com>

* reconcile event policies for parallel

Signed-off-by: rahulii <r.sawra@gmail.com>

* add unit test cases

Signed-off-by: rahulii <r.sawra@gmail.com>

* add more unit test cases

Signed-off-by: rahulii <r.sawra@gmail.com>

* remove unused function

Signed-off-by: rahulii <r.sawra@gmail.com>

* add more unit test cases

Signed-off-by: rahulii <r.sawra@gmail.com>

* add more unit test case - with multiple event policies

Signed-off-by: rahulii <r.sawra@gmail.com>

* fix gofmt

Signed-off-by: rahulii <r.sawra@gmail.com>

* add more test cases

Signed-off-by: rahulii <r.sawra@gmail.com>

* sort the slice for deterministic order in unit tests

Signed-off-by: rahulii <r.sawra@gmail.com>

* minor fix

Signed-off-by: rahulii <r.sawra@gmail.com>

* add more test cases

Signed-off-by: rahulii <r.sawra@gmail.com>

* uid in ownerref

Signed-off-by: rahulii <r.sawra@gmail.com>

* fix review comments from Chris

Signed-off-by: rahulii <r.sawra@gmail.com>

* add parallel policy as owner references

Signed-off-by: rahulii <r.sawra@gmail.com>

* fix e2e test

Signed-off-by: rahulii <r.sawra@gmail.com>

* remove sorting of eventpolicies

Signed-off-by: rahulii <r.sawra@gmail.com>

---------

Signed-off-by: rahulii <r.sawra@gmail.com>
2024-08-09 14:06:31 +00:00
Pierangelo Di Pilato d69b8b46e9
Improve scheduler memory usage (#8144)
* Improve scheduler memory usage

- Create a namespaced-scoped statefulset lister instead of being
  cluster-wide
- Accept a PodLister rather than creating a cluster-wide one

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

* Update codegen

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

---------

Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2024-08-09 13:06:04 +00:00
Leo Li 5c81d76058
Add EventPolicy reconciliation for Sequence (#8106)
* feat: initial commit

Signed-off-by: Leo Li <leoli@redhat.com>

* feat: add the test for eventpolicy in sequence reconciler

Signed-off-by: Leo Li <leoli@redhat.com>

* fix: fix the typo and remove the unused helper function

Signed-off-by: Leo Li <leoli@redhat.com>

* fix: trying to fix the git diff issue

Signed-off-by: Leo Li <leoli@redhat.com>

* fix: trying to fix the git diff issue

Signed-off-by: Leo Li <leoli@redhat.com>

* fix: fix the nit minor comments

Signed-off-by: Leo Li <leoli@redhat.com>

* fix: update the reconcilation mechanism

Signed-off-by: Leo Li <leoli@redhat.com>

* fix: fix the goimports and remove unused helper functions and input parameters

Signed-off-by: Leo Li <leoli@redhat.com>

* fix: add more unit tests to test out remove steps from the sequence

Signed-off-by: Leo Li <leoli@redhat.com>

* Update pkg/reconciler/sequence/sequence.go

Co-authored-by: Pierangelo Di Pilato <pierangelodipilato@gmail.com>

* Update pkg/reconciler/sequence/sequence.go

Co-authored-by: Pierangelo Di Pilato <pierangelodipilato@gmail.com>

* Apply suggestions from code review

Co-authored-by: Pierangelo Di Pilato <pierangelodipilato@gmail.com>

* fix: fix the nit review comments from pierdipi and rahul

Signed-off-by: Leo Li <leoli@redhat.com>

* fix: using auth.GetEventPoliciesForResource when trying to list all Sequence's eventPolicy (not for the immediate channels)

Signed-off-by: Leo Li <leoli@redhat.com>

* feat: add the sorting to avoid flaky test when there are multiple eventplocies per sequence

Signed-off-by: Leo Li <leoli@redhat.com>

* feat: remove the nil condition for channel name when creating the sequence policy name

Signed-off-by: Leo Li <leoli@redhat.com>

* feat: add more unit tests

Signed-off-by: Leo Li <leoli@redhat.com>

* fix: lint & goimports

Signed-off-by: Leo Li <leoli@redhat.com>

* fix: fix the review comments

* fix: fix Christoph's review comments

Signed-off-by: Leo Li <leoli@redhat.com>

* feat: adding a test for sequence with existing intermediate eventpolicies requiring update and cleanup.

Signed-off-by: Leo Li <leoli@redhat.com>

* fix: the deepDerivative failed to compare the eventpolicy's From.Spec, change to reflect.DeepEqual

Signed-off-by: Leo Li <leoli@redhat.com>

* fix: change back to use DeepDerivative

Signed-off-by: Leo Li <leoli@redhat.com>

* fix: fix the test case to make the eventpolicy has a valid spec

Signed-off-by: Leo Li <leoli@redhat.com>

* fix: fix the flaky issue by soring the policies

Signed-off-by: Leo Li <leoli@redhat.com>

* fix: change input channel's ownerref to sequence's eventpolicy

---------

Signed-off-by: Leo Li <leoli@redhat.com>
Co-authored-by: Pierangelo Di Pilato <pierangelodipilato@gmail.com>
2024-08-09 11:11:19 +00:00
Christoph Stäbler ecb6c016d5
Set UID in Brokers backing channels EventPolicies OwnerReference (#8143)
Fix: set UID in Brokers backing channels EventPolicies OwnerReference
2024-08-09 07:55:20 +00:00
Christoph Stäbler b58b30d96a
Add e2e test for Broker authorization (#8132)
* Enable AuthZ tests

* Refactor eventpolicy test rekt resource for easier usage

* Add authorization e2e test for Broker

* Fix style issues

* Don't pass test env namespace and use default

* Run OIDC and AuthZ e2e tests together
2024-08-08 21:19:56 +00:00
Knative Automation 20a64a14d4
[main] Update community files (#8134)
Update community files

Signed-off-by: Knative Automation <automation@knative.team>
2024-08-08 01:41:59 +00:00
Christoph Stäbler 7237233ad4
Default EventPolicy `.spec.from[].namespace` to EventPolicies namespace (#8133)
Default EventPolicy .spec.from[].namespace to event policy namespace
2024-08-07 14:18:30 +00:00
Dilip Gowda Bhagavan 32f849105c
update trust-manager to version 0.12.0 (#8130)
update trust-manager to latest
2024-08-06 14:35:55 +00:00
Pierangelo Di Pilato ff37e4e2fc
Sequence reconciler reads and watch the config-features configmap (#8124)
Signed-off-by: Pierangelo Di Pilato <pierdipi@redhat.com>
2024-08-01 18:31:38 +00:00
Knative Automation a9abf3ce46
[main] Upgrade to latest dependencies (#8119)
upgrade to latest dependencies

bumping knative.dev/hack b979959...9c9eed6:
  > 9c9eed6 💝 Vendorless codegen via shell scripting (# 386)
bumping knative.dev/hack/schema b979959...9c9eed6:
  > 9c9eed6 💝 Vendorless codegen via shell scripting (# 386)
bumping github.com/prometheus/procfs ff0ad85...51919fd:
  > 51919fd enable testifylint linter (# 643)
  > d9caa8e Return support for Go 1.20 (# 645)
  > faf06ce Update common Prometheus files
  > d9448e6 ignore NODEV errors when parsing powersupply files
  > 513f259 Bump golang.org/x/sys from 0.19.0 to 0.20.0 (# 639)
  > dbe3261 Update class_thermal.go (# 634)
  > ae2937e Fixup sysfs/system_cpu.go lint errors (# 638)
  > 51f7d13 feat: Add support for `CONFIG_CPU_FREQ_STAT` (# 627)
  > 5a801c6 Parse recovery line to be synced blocks (# 637)
  > 1adce6b bugfix: `s/TrimRight/TrimSuffix` for certain cases (# 618)
  > 2085b8f bugfix: Allow multiple `xprt` fields for NFS stats (# 619)
  > 68fb3df enhancement: Use pointer fields for `FibreChannel*` (# 623)
  > 5cca38b Update common Prometheus files (# 635)
  > 6bec248 Revert "fix: same TCP connection appears twice (# 631)" (# 633)
  > 987bedc fix: same TCP connection appears twice (# 631)
  > ee70db2 Merge pull request # 632 from prometheus/superq/1.22
  > 0fdebd3 chore: Use kernel-compliant types for `{U,G}IDs` (# 620)
  > faa3526 Update Go versions
  > 69fc8f6 *: `s/(%v|%s)/%w` and use `go1.20` (# 617)
  > eac8540 update MAINTAINERS.md (# 629)
  > 3387ec6 style: returns procfs build-in error like other parsing methods (# 630)
  > 5819c81 Revert add avgRTT to nfs mountstats # 487 (# 625)
  > c5ada8d Update common Prometheus files
  > 6bba74b Update common Prometheus files
  > f7c2619 Update common Prometheus files (# 615)
  > aa18116 Update common Prometheus files (# 613)
  > 72170b5 Bump golang.org/x/sys from 0.17.0 to 0.18.0 (# 611)
  > b5cb3d2 Update common Prometheus files (# 610)
  > 6ae6f98 Update common Prometheus files (# 609)
  > 7b6eccc chore: class_fibrechannel: support optional attributes (# 607)
  > da53333 Update common Prometheus files (# 608)
  > 4b77c68 Bump golang.org/x/sys from 0.16.0 to 0.17.0 (# 606)
  > 6d8714c Add support for for /proc/net/tls_stat kTLS stats (# 579)
  > 0f527e6 Add `/sys/class/watchdog` statistics (# 594)
  > d254b01 Add support for gtime and cgtime stats. (# 597)
  > f5f033b feat: Add `/sys/fs/btrfs/<FSID>/commit_stats` statistics (# 580)
  > 51a293e golint: redundant type from array, slice, or map composite literal (# 601)
  > d735b08 Update common Prometheus files (# 604)
  > 868112d infiniband: support Intel irdma devices (# 605)
  > dd493f4 Bump golang.org/x/sys from 0.15.0 to 0.16.0 (# 603)
  > f06ab8f Bump golang.org/x/sync from 0.5.0 to 0.6.0 (# 602)
  > 495e483 Update common Prometheus files
  > 8a3ea46 Update common Prometheus files (# 598)
  > a45c08c Update common Prometheus files (# 596)
  > 534069e Bump golang.org/x/sys from 0.13.0 to 0.15.0 (# 593)
  > 8f660d1 meminfo: add Percpu field (# 588)
  > 732ca0f Update common Prometheus files (# 595)
  > feff289 Update common Prometheus files (# 590)
  > 9fdfbe8 Add udp drops (# 538)
  > f11f6e4 Update crypto.go, fix incorrect spelling (# 591)
  > 6990574 Bump golang.org/x/sync from 0.3.0 to 0.5.0
  > e9c69c6 Update common Prometheus files
  > 43bf323 Bump golang.org/x/sys from 0.12.0 to 0.13.0
  > f78f919 Bump github.com/google/go-cmp from 0.5.9 to 0.6.0
  > 2cfca8d fix(meminfo): remove `bytes` versions of fields that aren't bytes
  > f75eb9f ref(meminfo): simplify variable assignment
  > 18260ef fix(meminfo): account for optional unit field so values are accurate
  > 894a5e8 Update common Prometheus files (# 578)
bumping google.golang.org/protobuf 4a76e11...c33baa8:
  > c33baa8 all: release v1.34.2
  > 971c712 gofeatures: allow setting legacy_unmarshal_json_enum feature at file level
  > 3b8611b reflect/protoreflect: FieldDescriptor.Kind should never be GroupKind for maps or fields of map entry
  > ca837e5 types/descriptorpb: regenerate using latest protobuf v27.0 release
  > 1d4293e internal/impl: fix size cache semantics with lazy decoding
  > ef74188 all: set Go language version to Go 1.20
  > b3f1c7a reflect/protodesc: remove obsolete JSON name check from desc validator
  > cbc3dd6 all: replace interface{} by any now that we are on Go 1.21
  > 0e93293 internal/impl: enable fully lazy extensions (over Size and Marshal)
  > 15d7b13 all: remove Go 1.17 build tags / workarounds
  > f7dca67 all: set Go language version to Go 1.21
  > 09393c1 all: start v1.34.1-devel
bumping knative.dev/pkg 4355f0c...330b271:
  > 330b271 Bump github.com/tsenart/vegeta/v12 from 12.11.1 to 12.11.3 (# 3077)
  > 3561487 upgrade to latest dependencies (# 3078)
bumping github.com/prometheus/common 789222a...0c7b585:
  > 0c7b585 Merge pull request # 649 from rajagopalanand/13364
  > 804fbbe Update common Prometheus files (# 660)
  > 77ec85c Add SigV4 FIPS STS  endpoint config
  > 3f20456 Bump golang.org/x/net from 0.25.0 to 0.26.0 (# 657)
  > d726751 Merge pull request # 625 from mikelolasagasti/replace-goautoneg
  > e31eeaa Bump google.golang.org/protobuf from 1.34.1 to 1.34.2 (# 658)
  > c97390a Add a `RELEASE.md` and add @gotjosh as a mantainer (# 644)
  > 2d5ba4a Move goautoneg to external dependency
  > 3236a12 Bump golang.org/x/oauth2 from 0.20.0 to 0.21.0 (# 656)
  > ef08658 enable errcheck linter (# 637)
  > 1cfb464 Bump github.com/aws/aws-sdk-go from 1.53.14 to 1.54.7 in /sigv4 (# 659)
  > cecfdc4 Update Go modules (# 643)
  > ab322ea chore: add HumanizeTimestamp; make ConvertToFloat exportable (# 654)
  > 04635d2 Merge pull request # 655 from yeya24/change-omit-empty
  > e5fa530 Merge pull request # 646 from prometheus/repo_sync
  > c4974e5 fix test
  > 1c9da35 Merge pull request # 653 from alanprot/expose/FileSecret
  > 8839f2c Update common Prometheus files
  > 43f0db5 set http_headers to be omit empty
  > 3183099 Merge pull request # 651 from pracucci/show-http-header-issues
  > 2c133cf Exposing FileSecret
  > 92fc65e Merge pull request # 650 from pracucci/export-secret
  > d310c4a Fix JSON marshalling
  > 43e45c3 Fixed erronous mentions to SecretReader in comments
  > 0f4f649 Show HTTPClientConfig JSON marshalling issue
  > fbd2317 Expose secret as SecretReader and InlineSecret from config package

Signed-off-by: Knative Automation <automation@knative.team>
2024-07-30 18:49:29 +00:00
Knative Automation d56d9ea198
[main] Update community files (#8120)
Update community files

Signed-off-by: Knative Automation <automation@knative.team>
2024-07-30 13:10:16 +00:00
Calum Murray 1aa34076f9
fix: workflow syntax for weekly reminder (#8115)
fix: workflow syntax

Signed-off-by: Calum Murray <cmurray@redhat.com>
2024-07-26 16:23:05 +00:00
Calum Murray d7708f95f1
feat: add github workflow to send slack reminder for office hours (#8113)
Signed-off-by: Calum Murray <cmurray@redhat.com>
2024-07-25 17:25:46 +00:00
4343 changed files with 413088 additions and 130355 deletions

View File

@ -17,25 +17,15 @@ jobs:
fail-fast: false # Keep running if one leg fails.
matrix:
k8s-version:
- v1.28.7
- v1.29.0
- 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.28.7
kind-version: v0.21.0
kind-image-sha: sha256:9bc6c451a289cf96ad0bbaf33d416901de6fd632415b076ab05f5fa7e4f65c58
- k8s-version: v1.29.0
kind-version: v0.21.0
kind-image-sha: sha256:eaa1450915475849a73a9227b8f201df25e55e268e5d619312131292e324d570
# 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

@ -0,0 +1,36 @@
# Copyright 2024 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.
name: 'Weekly Eventing WG Office Hours Slack Reminder'
on:
workflow_dispatch:
schedule:
- cron: 0 14 * * 4 # 1 hour before the meeting time
jobs:
remind:
name: weekly-eventing-office-hours-reminder
runs-on: 'ubuntu-latest'
steps:
- name: Post reminder to Slack
uses: rtCamp/action-slack-notify@v2.2.1
env:
SLACK_ICON: http://github.com/knative.png?size=48
SLACK_USERNAME: github-actions
SLACK_TITLE: Knative Eventing Office Hours Reminder
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
MSG_MINIMAL: 'true'
SLACK_CHANNEL: 'knative-eventing'
SLACK_MESSAGE: "This is a friendly reminder that the Knative Eventing Office Hours start in 1 hour. We hope to see you there! Please join the zoom meeting: https://zoom.us/j/92717482035?pwd=SnBiWnl6MXRvcUNFWHZ4Wkt5Z0FYZz09"

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,19 +6,14 @@ aliases:
- itsmurugappan
client-wg-leads:
- dsimansk
- rhuss
client-writers:
- dsimansk
- maximilien
- rhuss
- vyasgun
docs-reviewers:
- nainaz
- retocode
- skonto
docs-writers:
- csantanapr
- retocode
- skonto
eventing-reviewers:
- Leo6Leo
@ -26,8 +21,10 @@ aliases:
- cali0707
- creydr
eventing-wg-leads:
- creydr
- pierDipi
eventing-writers:
- Leo6Leo
- aliok
- cali0707
- creydr
@ -49,30 +46,25 @@ aliases:
- lkingland
- salaboy
knative-admin:
- Cali0707
- Leo6Leo
- ReToCode
- 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:
- Cali0707
- Leo6Leo
- ReToCode
- dprotaso
- dsimansk
- gauron99
- skonto
knative-robots:
- knative-automation
@ -84,14 +76,12 @@ aliases:
- aliok
- houshengbo
- matzew
- maximilien
operations-wg-leads:
- houshengbo
operations-writers:
- aliok
- houshengbo
- matzew
- maximilien
productivity-leads:
- cardil
- upodroid
@ -111,39 +101,31 @@ aliases:
- davidhadas
- evankanderson
serving-approvers:
- ReToCode
- dsimansk
- skonto
serving-reviewers:
- izabelacg
- retocode
- skonto
serving-triage:
- izabelacg
- retocode
- skonto
serving-wg-leads:
- dprotaso
serving-writers:
- ReToCode
- dprotaso
- dsimansk
- skonto
steering-committee:
- aliok
- evankanderson
- nainaz
- salaboy
technical-oversight-committee:
- davidhadas
- dprotaso
- dsimansk
- psschwei
- evankanderson
- matzew
- nrrso
ux-wg-leads:
- Leo6Leo
- cali0707
- leo6leo
- mmejia02
- zainabhusain227
ux-writers:
- Leo6Leo
- cali0707
- leo6leo
- mmejia02
- zainabhusain227

View File

@ -21,6 +21,8 @@ import (
"fmt"
"log"
eventpolicyinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1alpha1/eventpolicy"
"github.com/google/uuid"
"github.com/kelseyhightower/envconfig"
"go.uber.org/zap"
@ -45,7 +47,8 @@ import (
eventingclient "knative.dev/eventing/pkg/client/injection/client"
brokerinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1/broker"
triggerinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1/trigger"
eventtypeinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta2/eventtype"
eventtypeinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta3/eventtype"
subscriptioninformer "knative.dev/eventing/pkg/client/injection/informers/messaging/v1/subscription"
"knative.dev/eventing/pkg/eventingtls"
"knative.dev/eventing/pkg/eventtype"
"knative.dev/eventing/pkg/reconciler/names"
@ -117,6 +120,8 @@ func main() {
// Watch the observability config map and dynamically update request logs.
configMapWatcher.Watch(logging.ConfigMapName(), logging.UpdateLevelFromConfigMap(sl, atomicLevel, component))
trustBundleConfigMapLister := configmapinformer.Get(ctx, eventingtls.TrustBundleLabelSelector).Lister().ConfigMaps(system.Namespace())
var featureStore *feature.Store
var handler *filter.Handler
@ -125,13 +130,12 @@ func main() {
if featureFlags.IsEnabled(feature.EvenTypeAutoCreate) && featureStore != nil && handler != nil {
autoCreate := &eventtype.EventTypeAutoHandler{
EventTypeLister: eventtypeinformer.Get(ctx).Lister(),
EventingClient: eventingclient.Get(ctx).EventingV1beta2(),
EventingClient: eventingclient.Get(ctx).EventingV1beta3(),
FeatureStore: featureStore,
Logger: logger,
}
handler.EventTypeCreator = autoCreate
}
})
featureStore.WatchConfigs(configMapWatcher)
@ -151,9 +155,8 @@ func main() {
oidcTokenProvider := auth.NewOIDCTokenProvider(ctx)
// We are running both the receiver (takes messages in from the Broker) and the dispatcher (send
// the messages to the triggers' subscribers) in this binary.
oidcTokenVerifier := auth.NewOIDCTokenVerifier(ctx)
trustBundleConfigMapInformer := configmapinformer.Get(ctx, eventingtls.TrustBundleLabelSelector).Lister().ConfigMaps(system.Namespace())
handler, err = filter.NewHandler(logger, oidcTokenVerifier, oidcTokenProvider, triggerinformer.Get(ctx), brokerinformer.Get(ctx), reporter, trustBundleConfigMapInformer, ctxFunc)
authVerifier := auth.NewVerifier(ctx, eventpolicyinformer.Get(ctx).Lister(), trustBundleConfigMapLister, configMapWatcher)
handler, err = filter.NewHandler(logger, authVerifier, oidcTokenProvider, triggerinformer.Get(ctx), brokerinformer.Get(ctx), subscriptioninformer.Get(ctx), reporter, trustBundleConfigMapLister, ctxFunc)
if err != nil {
logger.Fatal("Error creating Handler", zap.Error(err))
}

View File

@ -49,7 +49,8 @@ import (
"knative.dev/eventing/pkg/broker/ingress"
eventingclient "knative.dev/eventing/pkg/client/injection/client"
brokerinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1/broker"
eventtypeinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta2/eventtype"
eventpolicyinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1alpha1/eventpolicy"
eventtypeinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1beta3/eventtype"
"knative.dev/eventing/pkg/eventingtls"
"knative.dev/eventing/pkg/eventtype"
"knative.dev/eventing/pkg/reconciler/names"
@ -74,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"`
}
@ -142,6 +143,8 @@ func main() {
logger.Fatal("Error setting up trace publishing", zap.Error(err))
}
trustBundleConfigMapLister := configmapinformer.Get(ctx, eventingtls.TrustBundleLabelSelector).Lister().ConfigMaps(system.Namespace())
var featureStore *feature.Store
var handler *ingress.Handler
@ -150,7 +153,7 @@ func main() {
if featureFlags.IsEnabled(feature.EvenTypeAutoCreate) && featureStore != nil && handler != nil {
autoCreate := &eventtype.EventTypeAutoHandler{
EventTypeLister: eventtypeinformer.Get(ctx).Lister(),
EventingClient: eventingclient.Get(ctx).EventingV1beta2(),
EventingClient: eventingclient.Get(ctx).EventingV1beta3(),
FeatureStore: featureStore,
Logger: logger,
}
@ -167,9 +170,8 @@ func main() {
reporter := ingress.NewStatsReporter(env.ContainerName, kmeta.ChildName(env.PodName, uuid.New().String()))
oidcTokenProvider := auth.NewOIDCTokenProvider(ctx)
oidcTokenVerifier := auth.NewOIDCTokenVerifier(ctx)
trustBundleConfigMapInformer := configmapinformer.Get(ctx, eventingtls.TrustBundleLabelSelector).Lister().ConfigMaps(system.Namespace())
handler, err = ingress.NewHandler(logger, reporter, broker.TTLDefaulter(logger, int32(env.MaxTTL)), brokerInformer, oidcTokenVerifier, oidcTokenProvider, trustBundleConfigMapInformer, ctxFunc)
authVerifier := auth.NewVerifier(ctx, eventpolicyinformer.Get(ctx).Lister(), trustBundleConfigMapLister, configMapWatcher)
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))
}
@ -188,7 +190,7 @@ func main() {
if featureStore.IsEnabled(feature.EvenTypeAutoCreate) {
autoCreate := &eventtype.EventTypeAutoHandler{
EventTypeLister: eventtypeinformer.Get(ctx).Lister(),
EventingClient: eventingclient.Get(ctx).EventingV1beta2(),
EventingClient: eventingclient.Get(ctx).EventingV1beta3(),
FeatureStore: featureStore,
Logger: logger,
}

View File

@ -20,27 +20,27 @@ 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"
"errors"
"log"
"net/http"
"os"
"time"
"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"
"knative.dev/eventing/pkg/reconciler/channel"
"knative.dev/eventing/pkg/reconciler/containersource"
"knative.dev/eventing/pkg/reconciler/eventtype"
integrationsink "knative.dev/eventing/pkg/reconciler/integration/sink"
integrationsource "knative.dev/eventing/pkg/reconciler/integration/source"
"knative.dev/eventing/pkg/reconciler/parallel"
"knative.dev/eventing/pkg/reconciler/pingsource"
"knative.dev/eventing/pkg/reconciler/sequence"
@ -51,40 +51,18 @@ import (
)
func main() {
ctx := signals.NewContext()
port := os.Getenv("PROBES_PORT")
if port == "" {
port = "8080"
}
// sets up liveness and readiness probes.
server := http.Server{
ReadTimeout: 5 * time.Second,
Handler: http.HandlerFunc(handler),
Addr: ":" + port,
}
go func() {
go func() {
<-ctx.Done()
_ = server.Shutdown(ctx)
}()
// start the web server on port and accept requests
log.Printf("Readiness and health check server listening on port %s", port)
if err := server.ListenAndServe(); err != nil && !errors.Is(err, http.ErrServerClosed) {
log.Fatal(err)
}
}()
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",
@ -104,18 +82,20 @@ func main() {
apiserversource.NewController,
pingsource.NewController,
containersource.NewController,
integrationsource.NewController,
// Sources CRD
sourcecrd.NewController,
// Sinks
jobsink.NewController,
integrationsink.NewController,
// Sugar
sugarnamespace.NewController,
sugartrigger.NewController,
// Transform
eventtransform.NewController,
)
}
func handler(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
}

View File

@ -44,6 +44,8 @@ func main() {
eventingtls.TrustBundleLabelSelector,
)
ctx = sharedmain.WithHealthProbesDisabled(ctx)
sharedmain.MainWithContext(ctx, "inmemorychannel-dispatcher",
inmemorychannel.NewController,
)

View File

@ -20,11 +20,15 @@ import (
"context"
"crypto/md5" //nolint:gosec
"crypto/tls"
"encoding/hex"
"fmt"
"log"
"net/http"
"strings"
configmapinformer "knative.dev/pkg/client/injection/kube/informers/core/v1/configmap/filtered"
filteredFactory "knative.dev/pkg/client/injection/kube/informers/factory/filtered"
"github.com/cloudevents/sdk-go/v2/binding"
cehttp "github.com/cloudevents/sdk-go/v2/protocol/http"
"go.uber.org/zap"
@ -54,6 +58,7 @@ import (
"knative.dev/eventing/pkg/apis/sinks"
sinksv "knative.dev/eventing/pkg/apis/sinks/v1alpha1"
"knative.dev/eventing/pkg/auth"
eventpolicyinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1alpha1/eventpolicy"
"knative.dev/eventing/pkg/client/injection/informers/sinks/v1alpha1/jobsink"
sinkslister "knative.dev/eventing/pkg/client/listers/sinks/v1alpha1"
"knative.dev/eventing/pkg/eventingtls"
@ -61,7 +66,7 @@ import (
"knative.dev/eventing/pkg/utils"
)
const component = "job-sink"
const component = "job_sink"
func main() {
@ -69,9 +74,13 @@ func main() {
cfg := injection.ParseAndGetRESTConfigOrDie()
ctx = injection.WithConfig(ctx, cfg)
ctx = filteredFactory.WithSelectors(ctx,
eventingtls.TrustBundleLabelSelector,
)
ctx, informers := injection.Default.SetupInformers(ctx, cfg)
ctx = injection.WithConfig(ctx, cfg)
loggingConfig, err := cmdbroker.GetLoggingConfig(ctx, system.Namespace(), logging.ConfigMapName())
if err != nil {
log.Fatal("Error loading/parsing logging configuration:", err)
@ -103,9 +112,10 @@ func main() {
logger.Info("Starting the JobSink Ingress")
featureStore := feature.NewStore(logging.FromContext(ctx).Named("feature-config-store"), func(name string, value interface{}) {
logger.Info("Updated", zap.String("name", name), zap.Any("value", value))
})
trustBundleConfigMapLister := configmapinformer.Get(ctx, eventingtls.TrustBundleLabelSelector).Lister().ConfigMaps(system.Namespace())
var h *Handler
featureStore := feature.NewStore(logging.FromContext(ctx).Named("feature-config-store"))
featureStore.WatchConfigs(configMapWatcher)
// Decorate contexts with the current state of the feature config.
@ -113,11 +123,11 @@ func main() {
return logging.WithLogger(featureStore.ToContext(ctx), sl)
}
h := &Handler{
k8s: kubeclient.Get(ctx),
lister: jobsink.Get(ctx).Lister(),
withContext: ctxFunc,
oidcTokenVerifier: auth.NewOIDCTokenVerifier(ctx),
h = &Handler{
k8s: kubeclient.Get(ctx),
lister: jobsink.Get(ctx).Lister(),
withContext: ctxFunc,
authVerifier: auth.NewVerifier(ctx, eventpolicyinformer.Get(ctx).Lister(), trustBundleConfigMapLister, configMapWatcher),
}
tlsConfig, err := getServerTLSConfig(ctx)
@ -158,10 +168,10 @@ func main() {
}
type Handler struct {
k8s kubernetes.Interface
lister sinkslister.JobSinkLister
withContext func(ctx context.Context) context.Context
oidcTokenVerifier *auth.OIDCTokenVerifier
k8s kubernetes.Interface
lister sinkslister.JobSinkLister
withContext func(ctx context.Context) context.Context
authVerifier *auth.Verifier
}
func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
@ -191,22 +201,19 @@ func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
Name: parts[2],
}
js, err := h.lister.JobSinks(ref.Namespace).Get(ref.Name)
if err != nil {
logger.Warn("Failed to retrieve jobsink", zap.String("ref", ref.String()), zap.Error(err))
w.WriteHeader(http.StatusBadRequest)
return
}
logger.Debug("Handling POST request", zap.String("URI", r.RequestURI))
features := feature.FromContext(ctx)
logger.Debug("features", zap.Any("features", features))
if features.IsOIDCAuthentication() {
logger.Debug("OIDC authentication is enabled")
audience := auth.GetAudienceDirect(sinksv.SchemeGroupVersion.WithKind("JobSink"), ref.Namespace, ref.Name)
err := h.oidcTokenVerifier.VerifyJWTFromRequest(ctx, r, &audience, w)
if err != nil {
logger.Warn("Error when validating the JWT token in the request", zap.Error(err))
return
}
logger.Debug("Request contained a valid JWT. Continuing...")
err = h.authVerifier.VerifyRequest(ctx, feature.FromContext(ctx), js.Status.Address.Audience, js.Namespace, js.Status.Policies, r, w)
if err != nil {
logger.Warn("Failed to verify AuthN and AuthZ.", zap.Error(err))
return
}
message := cehttp.NewMessageFromHttpRequest(r)
@ -225,18 +232,11 @@ func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
return
}
js, err := h.lister.JobSinks(ref.Namespace).Get(ref.Name)
if err != nil {
logger.Warn("Failed to retrieve jobsink", zap.String("ref", ref.String()), zap.Error(err))
w.WriteHeader(http.StatusBadRequest)
return
}
id := toIdHashLabelValue(event.Source(), event.ID())
logger.Debug("Getting job for event", zap.String("URI", r.RequestURI), zap.String("id", id))
jobName := toJobName(ref.Name, event.Source(), event.ID())
logger.Debug("Getting job for event", zap.String("URI", r.RequestURI), zap.String("jobName", jobName))
jobs, err := h.k8s.BatchV1().Jobs(js.GetNamespace()).List(r.Context(), metav1.ListOptions{
LabelSelector: jobLabelSelector(ref, id),
LabelSelector: jobLabelSelector(ref, jobName),
Limit: 1,
})
if err != nil {
@ -257,56 +257,24 @@ func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
return
}
jobName := kmeta.ChildName(ref.Name, id)
logger.Debug("Creating secret for event", zap.String("URI", r.RequestURI), zap.String("jobName", jobName))
jobSinkUID := js.GetUID()
or := metav1.OwnerReference{
APIVersion: sinksv.SchemeGroupVersion.String(),
Kind: sinks.JobSinkResource.Resource,
Name: js.GetName(),
UID: jobSinkUID,
Controller: ptr.Bool(true),
BlockOwnerDeletion: ptr.Bool(false),
}
secret := &corev1.Secret{
TypeMeta: metav1.TypeMeta{},
ObjectMeta: metav1.ObjectMeta{
Name: jobName,
Namespace: ref.Namespace,
Labels: map[string]string{
sinks.JobSinkIDLabel: id,
sinks.JobSinkNameLabel: ref.Name,
},
OwnerReferences: []metav1.OwnerReference{or},
},
Immutable: ptr.Bool(true),
Data: map[string][]byte{"event": eventBytes},
Type: corev1.SecretTypeOpaque,
}
_, err = h.k8s.CoreV1().Secrets(ref.Namespace).Create(r.Context(), secret, metav1.CreateOptions{})
if err != nil && !apierrors.IsAlreadyExists(err) {
logger.Warn("Failed to create secret", zap.Error(err))
w.Header().Add("Reason", err.Error())
w.WriteHeader(http.StatusInternalServerError)
return
}
logger.Debug("Creating job for event", zap.String("URI", r.RequestURI), zap.String("jobName", jobName))
js = js.DeepCopy() // Do not modify informer copy.
js.SetDefaults(ctx)
job := js.Spec.Job.DeepCopy()
job.Name = jobName
if job.Labels == nil {
job.Labels = make(map[string]string, 4)
}
job.Labels[sinks.JobSinkIDLabel] = id
job.Labels[sinks.JobSinkIDLabel] = jobName
job.Labels[sinks.JobSinkNameLabel] = ref.Name
job.OwnerReferences = append(job.OwnerReferences, or)
job.OwnerReferences = append(job.OwnerReferences, metav1.OwnerReference{
APIVersion: sinksv.SchemeGroupVersion.String(),
Kind: sinks.JobSinkResource.Resource,
Name: js.GetName(),
UID: js.GetUID(),
Controller: ptr.Bool(true),
BlockOwnerDeletion: ptr.Bool(false),
})
var mountPathName string
for i := range job.Spec.Template.Spec.Containers {
found := false
@ -347,14 +315,66 @@ func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
})
}
_, err = h.k8s.BatchV1().Jobs(ref.Namespace).Create(r.Context(), job, metav1.CreateOptions{})
if err != nil {
logger.Debug("Creating job for event",
zap.String("URI", r.RequestURI),
zap.String("jobName", jobName),
zap.Any("job", job),
)
createdJob, err := h.k8s.BatchV1().Jobs(ref.Namespace).Create(r.Context(), job, metav1.CreateOptions{})
if err != nil && !apierrors.IsAlreadyExists(err) {
logger.Warn("Failed to create job", zap.Error(err))
w.Header().Add("Reason", err.Error())
w.WriteHeader(http.StatusInternalServerError)
return
}
if apierrors.IsAlreadyExists(err) {
logger.Debug("Job already exists", zap.String("URI", r.RequestURI), zap.String("jobName", jobName))
}
secret := &corev1.Secret{
TypeMeta: metav1.TypeMeta{},
ObjectMeta: metav1.ObjectMeta{
Name: jobName,
Namespace: ref.Namespace,
Labels: map[string]string{
sinks.JobSinkIDLabel: jobName,
sinks.JobSinkNameLabel: ref.Name,
},
OwnerReferences: []metav1.OwnerReference{
{
APIVersion: "batch/v1",
Kind: "Job",
Name: createdJob.Name,
UID: createdJob.UID,
Controller: ptr.Bool(true),
BlockOwnerDeletion: ptr.Bool(false),
},
},
},
Immutable: ptr.Bool(true),
Data: map[string][]byte{"event": eventBytes},
Type: corev1.SecretTypeOpaque,
}
logger.Debug("Creating secret for event",
zap.String("URI", r.RequestURI),
zap.String("jobName", jobName),
zap.Any("secret.metadata", secret.ObjectMeta),
)
_, err = h.k8s.CoreV1().Secrets(ref.Namespace).Create(r.Context(), secret, metav1.CreateOptions{})
if err != nil && !apierrors.IsAlreadyExists(err) {
logger.Warn("Failed to create secret", zap.Error(err))
w.Header().Add("Reason", err.Error())
w.WriteHeader(http.StatusInternalServerError)
return
}
if apierrors.IsAlreadyExists(err) {
logger.Debug("Secret already exists", zap.String("URI", r.RequestURI), zap.String("jobName", jobName))
}
w.Header().Add("Location", locationHeader(ref, event.Source(), event.ID()))
w.WriteHeader(http.StatusAccepted)
@ -374,27 +394,25 @@ func (h *Handler) handleGet(ctx context.Context, w http.ResponseWriter, r *http.
Name: parts[4],
}
js, err := h.lister.JobSinks(ref.Namespace).Get(ref.Name)
if err != nil {
logger.Warn("Failed to retrieve jobsink", zap.String("ref", ref.String()), zap.Error(err))
w.WriteHeader(http.StatusBadRequest)
return
}
logger.Debug("Handling GET request", zap.String("URI", r.RequestURI))
features := feature.FromContext(ctx)
if features.IsOIDCAuthentication() {
logger.Debug("OIDC authentication is enabled")
audience := auth.GetAudienceDirect(sinksv.SchemeGroupVersion.WithKind("JobSink"), ref.Namespace, ref.Name)
err := h.oidcTokenVerifier.VerifyJWTFromRequest(ctx, r, &audience, w)
if err != nil {
logger.Warn("Error when validating the JWT token in the request", zap.Error(err))
return
}
logger.Debug("Request contained a valid JWT. Continuing...")
err = h.authVerifier.VerifyRequest(ctx, feature.FromContext(ctx), js.Status.Address.Audience, js.Namespace, js.Status.Policies, r, w)
if err != nil {
logger.Warn("Failed to verify AuthN and AuthZ.", zap.Error(err))
return
}
eventSource := parts[6]
eventID := parts[8]
id := toIdHashLabelValue(eventSource, eventID)
jobName := kmeta.ChildName(ref.Name, id)
jobName := toJobName(ref.Name, eventSource, eventID)
job, err := h.k8s.BatchV1().Jobs(ref.Namespace).Get(r.Context(), jobName, metav1.GetOptions{})
if err != nil {
@ -447,6 +465,7 @@ func jobLabelSelector(ref types.NamespacedName, id string) string {
return fmt.Sprintf("%s=%s,%s=%s", sinks.JobSinkIDLabel, id, sinks.JobSinkNameLabel, ref.Name)
}
func toIdHashLabelValue(source, id string) string {
return utils.ToDNS1123Subdomain(fmt.Sprintf("%s", md5.Sum([]byte(fmt.Sprintf("%s-%s", source, id))))) //nolint:gosec
func toJobName(js string, source, id string) string {
h := md5.Sum([]byte(source + id)) //nolint:gosec
return kmeta.ChildName(js+"-", utils.ToDNS1123Subdomain(hex.EncodeToString(h[:])))
}

106
cmd/jobsink/main_test.go Normal file
View File

@ -0,0 +1,106 @@
/*
Copyright 2024 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 main
import (
"testing"
"k8s.io/apimachinery/pkg/api/validation"
"knative.dev/eventing/pkg/utils"
)
type testCase struct {
JobSinkName string
Source string
Id string
}
func TestToJobName(t *testing.T) {
testcases := []testCase{
{
JobSinkName: "job-sink-success",
Source: "mysource3/myservice",
Id: "2234-5678",
},
{
JobSinkName: "a",
Source: "0",
Id: "0",
},
}
for _, tc := range testcases {
t.Run(tc.JobSinkName+"_"+tc.Source+"_"+tc.Id, func(t *testing.T) {
if errs := validation.NameIsDNS1035Label(tc.JobSinkName, false); len(errs) != 0 {
t.Errorf("Invalid JobSinkName: %v", errs)
}
name := toJobName(tc.JobSinkName, tc.Source, tc.Id)
doubleName := toJobName(tc.JobSinkName, tc.Source, tc.Id)
if name != doubleName {
t.Errorf("Before: %q, after: %q", name, doubleName)
}
if got := utils.ToDNS1123Subdomain(name); got != name {
t.Errorf("ToDNS1123Subdomain(Want) returns a different result, Want: %q, Got: %q", name, got)
}
if errs := validation.NameIsDNS1035Label(name, false); len(errs) != 0 {
t.Errorf("toJobName produced invalid name %q given %q, %q, %q: errors: %#v", name, tc.JobSinkName, tc.Source, tc.Id, errs)
}
})
}
}
func FuzzToJobName(f *testing.F) {
testcases := []testCase{
{
JobSinkName: "job-sink-success",
Source: "mysource3/myservice",
Id: "2234-5678",
},
{
JobSinkName: "a",
Source: "0",
Id: "0",
},
}
for _, tc := range testcases {
f.Add(tc.JobSinkName, tc.Source, tc.Id) // Use f.Add to provide a seed corpus
}
f.Fuzz(func(t *testing.T, js, source, id string) {
if errs := validation.NameIsDNSLabel(js, false); len(errs) != 0 {
t.Skip("Prerequisite: invalid jobsink name")
}
name := toJobName(js, source, id)
doubleName := toJobName(js, source, id)
if name != doubleName {
t.Errorf("Before: %q, after: %q", name, doubleName)
}
if got := utils.ToDNS1123Subdomain(name); got != name {
t.Errorf("ToDNS1123Subdomain(Want) returns a different result, Want: %q, Got: %q", name, got)
}
if errs := validation.NameIsDNSLabel(name, false); len(errs) != 0 {
t.Errorf("toJobName produced invalid name %q given %q, %q, %q: errors: %#v", name, js, source, id, errs)
}
})
}

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

@ -20,6 +20,8 @@ import (
"context"
"os"
sourcesv1alpha1 "knative.dev/eventing/pkg/apis/sources/v1alpha1"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/types"
"k8s.io/client-go/kubernetes/scheme"
@ -77,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
@ -92,6 +95,8 @@ var ourTypes = map[schema.GroupVersionKind]resourcesemantics.GenericCRD{
messagingv1.SchemeGroupVersion.WithKind("Subscription"): &messagingv1.Subscription{},
// For group sources.knative.dev.
// v1alpha1
sourcesv1alpha1.SchemeGroupVersion.WithKind("IntegrationSource"): &sourcesv1alpha1.IntegrationSource{},
// v1beta2
sourcesv1beta2.SchemeGroupVersion.WithKind("PingSource"): &sourcesv1beta2.PingSource{},
// v1
@ -102,7 +107,8 @@ var ourTypes = map[schema.GroupVersionKind]resourcesemantics.GenericCRD{
// For group sinks.knative.dev.
// v1alpha1
sinksv1alpha1.SchemeGroupVersion.WithKind("JobSink"): &sinksv1alpha1.JobSink{},
sinksv1alpha1.SchemeGroupVersion.WithKind("JobSink"): &sinksv1alpha1.JobSink{},
sinksv1alpha1.SchemeGroupVersion.WithKind("IntegrationSink"): &sinksv1alpha1.IntegrationSink{},
// For group flows.knative.dev
// v1

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 @@
core/resources/integrationsink.yaml

View File

@ -0,0 +1 @@
core/resources/integrationsource.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

@ -83,8 +83,27 @@ spec:
seccompProfile:
type: RuntimeDefault
livenessProbe:
httpGet:
path: /health
port: probes
scheme: HTTP
initialDelaySeconds: 20
periodSeconds: 10
timeoutSeconds: 5
readinessProbe:
httpGet:
path: /readiness
port: probes
scheme: HTTP
initialDelaySeconds: 20
periodSeconds: 10
timeoutSeconds: 5
ports:
- name: metrics
containerPort: 9090
- name: profiling
containerPort: 8008
- name: probes
containerPort: 8080

View File

@ -31,6 +31,15 @@ rules:
- get
- list
- watch
# get subscription of trigger for AuthZ
- apiGroups:
- messaging.knative.dev
resources:
- subscriptions
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:

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

@ -87,6 +87,8 @@ spec:
- containerPort: 9090
name: metrics
protocol: TCP
- name: probes
containerPort: 8080
resources:
requests:
cpu: 125m
@ -104,4 +106,21 @@ spec:
seccompProfile:
type: RuntimeDefault
livenessProbe:
httpGet:
path: /health
port: probes
scheme: HTTP
initialDelaySeconds: 20
periodSeconds: 10
timeoutSeconds: 5
readinessProbe:
httpGet:
path: /readiness
port: probes
scheme: HTTP
initialDelaySeconds: 20
periodSeconds: 10
timeoutSeconds: 5
serviceAccountName: pingsource-mt-adapter

View File

@ -110,6 +110,44 @@ spec:
description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
type: object
x-kubernetes-preserve-unknown-fields: true
filters:
description: 'Filters is an array of SubscriptionsAPIFilters that evaluate to true or false. If any filter expression in the array evaluates to false, the event will not continue pass the ingress of the target resources of the policy'
type: array
items:
type: object
properties:
all:
description: 'All evaluates to true if all the nested expressions evaluate to true. It must contain at least one filter expression'
type: array
items:
type: object
x-kubernetes-preserve-unknown-fields: true
any:
description: 'Any evaluates to true if any of the nested expressions evaluate to true. It must contain at least one filter expression'
type: array
items:
type: object
x-kubernetes-preserve-unknown-fields: true
cesql:
description: 'CESQL is a CloudEvents SQL v1 expression that will evaluate to true or false for each CloudEvent.'
type: string
exact:
description: 'Exact evaluates to true if the values of the matching CloudEvents attributes all exactly match with the associated value string specified (case sensitive)'
type: object
x-kubernetes-preserve-unknown-fields: true
not:
description: 'Not evaluates to true if the nested expression evaluates to false.'
type: object
x-kubernetes-preserve-unknown-fields: true
prefix:
description: 'Prefix evaluates to true if the values of the matching CloudEvents attributes all start with the associated value string specified (case sensitive)'
type: object
x-kubernetes-preserve-unknown-fields: true
suffix:
description: 'Exact evaluates to true if the values of the matching CloudEvents attributes all end with the associated value string specified (case sensitive)'
type: object
x-kubernetes-preserve-unknown-fields: true
status:
description: Status represents the current state of the EventPolicy. This data may be out of date.
type: object
@ -171,11 +209,3 @@ spec:
- knative
- eventing
scope: Namespaced
conversion:
strategy: Webhook
webhook:
conversionReviewVersions: ["v1", "v1beta1"]
clientConfig:
service:
name: eventing-webhook
namespace: knative-eventing

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

@ -0,0 +1,425 @@
# Copyright 2020 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: integrationsinks.sinks.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: sinks.knative.dev
versions:
- name: v1alpha1
served: true
storage: true
subresources:
status: { }
schema:
openAPIV3Schema:
description: 'IntegrationSink sends events to generic event sink'
type: object
properties:
spec:
description: Spec defines the desired state of the IntegrationSink.
type: object
properties:
log:
type: object
properties:
loggerName:
type: string
title: Logger Name
description: Name of the logging category to use
default: log-sink
level:
type: string
title: Log Level
description: Logging level to use
default: INFO
logMask:
type: boolean
title: Log Mask
description: Mask sensitive information like password or passphrase in the
log
default: false
marker:
type: string
title: Marker
description: An optional Marker name to use
multiline:
type: boolean
title: Multiline
description: If enabled then each information is outputted on a newline
default: false
showAllProperties:
type: boolean
title: Show All Properties
description: Show all of the exchange properties (both internal and custom)
default: false
showBody:
type: boolean
title: Show Body
description: Show the message body
default: true
showBodyType:
type: boolean
title: Show Body Type
description: Show the body Java type
default: true
showExchangePattern:
type: boolean
title: Show Exchange Pattern
description: Shows the Message Exchange Pattern (or MEP for short)
default: true
showHeaders:
type: boolean
title: Show Headers
description: Show the headers received
default: false
showProperties:
type: boolean
title: Show Properties
description: Show the exchange properties (only custom). Use showAllProperties
to show both internal and custom properties.
default: false
showStreams:
type: boolean
title: Show Streams
description: Show the stream bodies (they may not be available in following
steps)
default: false
showCachedStreams:
type: boolean
title: Show Cached Streams
description: Whether Camel should show cached stream bodies or not.
default: true
aws:
type: object
properties:
s3:
type: object
properties:
arn:
type: string
title: Bucket Name
description: The S3 Bucket name or Amazon Resource Name (ARN).
deleteAfterRead:
type: boolean
title: Auto-delete Objects
description: Specifies to delete objects after consuming them.
default: true
moveAfterRead:
type: boolean
title: Move Objects After Delete
description: Move objects from S3 bucket to a different bucket after
they have been retrieved.
default: false
destinationBucket:
type: string
title: Destination Bucket
description: Define the destination bucket where an object must be moved
when moveAfterRead is set to true.
destinationBucketPrefix:
type: string
title: Destination Bucket Prefix
description: Define the destination bucket prefix to use when an object
must be moved, and moveAfterRead is set to true.
destinationBucketSuffix:
type: string
title: Destination Bucket Suffix
description: Define the destination bucket suffix to use when an object
must be moved, and moveAfterRead is set to true.
region:
type: string
title: AWS Region
description: The AWS region to access.
autoCreateBucket:
type: boolean
title: Autocreate Bucket
description: Specifies to automatically create the S3 bucket.
default: false
prefix:
type: string
title: Prefix
description: The AWS S3 bucket prefix to consider while searching.
example: folder/
ignoreBody:
type: boolean
title: Ignore Body
description: If true, the S3 Object body is ignored. Setting this to
true overrides any behavior defined by the `includeBody` option. If
false, the S3 object is put in the body.
default: false
uriEndpointOverride:
type: string
title: Overwrite Endpoint URI
description: The overriding endpoint URI. To use this option, you must
also select the `overrideEndpoint` option.
overrideEndpoint:
type: boolean
title: Endpoint Overwrite
description: Select this option to override the endpoint URI. To use
this option, you must also provide a URI for the `uriEndpointOverride`
option.
default: false
forcePathStyle:
type: boolean
title: Force Path Style
description: Forces path style when accessing AWS S3 buckets.
default: false
delay:
type: integer
title: Delay
description: The number of milliseconds before the next poll of the
selected bucket.
default: 500
maxMessagesPerPoll:
type: integer
title: Max Messages Per Poll
description: Gets the maximum number of messages as a limit to poll
at each polling. Gets the maximum number of messages as a limit to
poll at each polling. The default value is 10. Use 0 or a negative
number to set it as unlimited.
default: 10
sqs:
type: object
properties:
arn:
type: string
title: Queue Name
description: The SQS Queue Name or ARN
deleteAfterRead:
type: boolean
title: Auto-delete Messages
description: Delete messages after consuming them
default: true
region:
type: string
title: AWS Region
description: The AWS region to access.
autoCreateQueue:
type: boolean
title: Autocreate Queue
description: Setting the autocreation of the SQS queue.
default: false
host:
type: string
title: AWS Host
description: The hostname of the Amazon AWS cloud.
default: amazonaws.com
protocol:
type: string
title: Protocol
description: The underlying protocol used to communicate with SQS
default: https
example: http or https
queueURL:
type: string
title: Queue URL
description: The full SQS Queue URL (required if using KEDA)
uriEndpointOverride:
type: string
title: Overwrite Endpoint URI
description: The overriding endpoint URI. To use this option, you must
also select the `overrideEndpoint` option.
overrideEndpoint:
type: boolean
title: Endpoint Overwrite
description: Select this option to override the endpoint URI. To use
this option, you must also provide a URI for the `uriEndpointOverride`
option.
default: false
delay:
type: integer
title: Delay
description: The number of milliseconds before the next poll of the
selected stream
default: 500
greedy:
type: boolean
title: Greedy Scheduler
description: If greedy is enabled, then the polling will happen immediately
again, if the previous run polled 1 or more messages.
default: false
maxMessagesPerPoll:
type: integer
title: Max Messages Per Poll
description: The maximum number of messages to return. Amazon SQS never
returns more messages than this value (however, fewer messages might
be returned). Valid values 1 to 10. Default 1.
default: 1
waitTimeSeconds:
type: integer
title: Wait Time Seconds
description: The duration (in seconds) for which the call waits for
a message to arrive in the queue before returning. If a message is
available, the call returns sooner than WaitTimeSeconds. If no messages
are available and the wait time expires, the call does not return
a message list.
visibilityTimeout:
type: integer
title: Visibility Timeout
description: The duration (in seconds) that the received messages are
hidden from subsequent retrieve requests after being retrieved by
a ReceiveMessage request.
sns:
type: object
properties:
arn:
type: string
title: Topic Name
description: The SNS topic name name or Amazon Resource Name (ARN).
region:
type: string
title: AWS Region
description: The AWS region to access.
autoCreateTopic:
type: boolean
title: Autocreate Topic
description: Setting the autocreation of the SNS topic.
default: false
uriEndpointOverride:
type: string
title: Overwrite Endpoint URI
description: The overriding endpoint URI. To use this option, you must
also select the `overrideEndpoint` option.
overrideEndpoint:
type: boolean
title: Endpoint Overwrite
description: Select this option to override the endpoint URI. To use
this option, you must also provide a URI for the `uriEndpointOverride`
option.
default: false
auth:
description: 'Auth configurations'
type: object
properties:
secret:
description: 'Auth secret'
type: object
properties:
ref:
description: |
Secret reference.
type: object
required:
- name
properties:
name:
description: 'Secret name'
type: string
status:
description: Status represents the current state of the IntegrationSink. This data may be out of date.
type: object
properties:
address:
description: IntegrationSink is Addressable. It exposes the endpoints as URIs to get events delivered into the used Kamelet.
type: object
properties:
name:
type: string
url:
type: string
CACerts:
type: string
audience:
type: string
addresses:
description: IntegrationSink is Addressable. It exposes the endpoints as URIs to get events delivered into the used Kamelet.
type: array
items:
type: object
properties:
name:
type: string
url:
type: string
CACerts:
type: string
audience:
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
policies:
description: List of applied EventPolicies
type: array
items:
type: object
properties:
apiVersion:
description: The API version of the applied EventPolicy. This indicates, which version of EventPolicy is supported by the resource.
type: string
name:
description: The name of the applied EventPolicy
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
observedGeneration:
description: ObservedGeneration is the 'Generation' of the Service that was last processed by the controller.
type: integer
format: int64
additionalPrinterColumns:
- name: URL
type: string
jsonPath: .status.address.url
- name: Age
type: date
jsonPath: .metadata.creationTimestamp
- name: Ready
type: string
jsonPath: ".status.conditions[?(@.type==\"Ready\")].status"
- name: Reason
type: string
jsonPath: ".status.conditions[?(@.type==\"Ready\")].reason"
names:
kind: IntegrationSink
plural: integrationsinks
singular: integrationsink
categories:
- all
- knative
- eventing
- sink
scope: Namespaced

View File

@ -0,0 +1,421 @@
# Copyright 2020 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:
labels:
eventing.knative.dev/source: "true"
duck.knative.dev/source: "true"
knative.dev/crd-install: "true"
app.kubernetes.io/version: devel
app.kubernetes.io/name: knative-eventing
name: integrationsources.sources.knative.dev
spec:
group: sources.knative.dev
versions:
- name: v1alpha1
served: true
storage: true
subresources:
status: {}
schema:
openAPIV3Schema:
description: 'IntegrationSource is an event source that starts a container image which generates events under certain situations and sends messages to a sink URI'
type: object
properties:
spec:
type: object
properties:
ceOverrides:
description: CloudEventOverrides defines overrides to control the output format and modifications of the event sent to the sink.
type: object
properties:
extensions:
description: Extensions specify what attribute are added or overridden on the outbound event. Each `Extensions` key-value pair are set on the event as an attribute extension independently.
type: object
x-kubernetes-preserve-unknown-fields: true
sink:
description: Sink is a reference to an object that will resolve to a uri to use as the sink.
type: object
properties:
ref:
description: Ref points to an Addressable.
type: object
properties:
apiVersion:
description: API version of the referent.
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
CACerts:
description: CACerts is the Certification Authority (CA) certificates in PEM format that the source trusts when sending events to the sink.
type: string
audience:
description: Audience is the OIDC audience. This only needs to be set if the target is not an Addressable and thus the Audience can't be received from the target itself. If specified, it takes precedence over the target's Audience.
type: string
timer:
type: object
properties:
period:
type: integer
title: Period
description: The interval (in milliseconds) to wait between producing the
next message.
default: 1000
message:
type: string
title: Message
description: The message to generate.
example: hello world
contentType:
type: string
title: Content Type
description: The content type of the generated message.
default: text/plain
repeatCount:
type: integer
title: Repeat Count
description: Specifies a maximum limit of number of fires
aws:
type: object
properties:
s3:
type: object
properties:
arn:
type: string
title: Bucket Name
description: The S3 Bucket name or Amazon Resource Name (ARN).
deleteAfterRead:
type: boolean
title: Auto-delete Objects
description: Specifies to delete objects after consuming them.
default: true
moveAfterRead:
type: boolean
title: Move Objects After Delete
description: Move objects from S3 bucket to a different bucket after
they have been retrieved.
default: false
destinationBucket:
type: string
title: Destination Bucket
description: Define the destination bucket where an object must be moved
when moveAfterRead is set to true.
destinationBucketPrefix:
type: string
title: Destination Bucket Prefix
description: Define the destination bucket prefix to use when an object
must be moved, and moveAfterRead is set to true.
destinationBucketSuffix:
type: string
title: Destination Bucket Suffix
description: Define the destination bucket suffix to use when an object
must be moved, and moveAfterRead is set to true.
region:
type: string
title: AWS Region
description: The AWS region to access.
autoCreateBucket:
type: boolean
title: Autocreate Bucket
description: Specifies to automatically create the S3 bucket.
default: false
prefix:
type: string
title: Prefix
description: The AWS S3 bucket prefix to consider while searching.
example: folder/
ignoreBody:
type: boolean
title: Ignore Body
description: If true, the S3 Object body is ignored. Setting this to
true overrides any behavior defined by the `includeBody` option. If
false, the S3 object is put in the body.
default: false
uriEndpointOverride:
type: string
title: Overwrite Endpoint URI
description: The overriding endpoint URI. To use this option, you must
also select the `overrideEndpoint` option.
overrideEndpoint:
type: boolean
title: Endpoint Overwrite
description: Select this option to override the endpoint URI. To use
this option, you must also provide a URI for the `uriEndpointOverride`
option.
default: false
forcePathStyle:
type: boolean
title: Force Path Style
description: Forces path style when accessing AWS S3 buckets.
default: false
delay:
type: integer
title: Delay
description: The number of milliseconds before the next poll of the
selected bucket.
default: 500
maxMessagesPerPoll:
type: integer
title: Max Messages Per Poll
description: Gets the maximum number of messages as a limit to poll
at each polling. Gets the maximum number of messages as a limit to
poll at each polling. The default value is 10. Use 0 or a negative
number to set it as unlimited.
default: 10
sqs:
type: object
properties:
arn:
type: string
title: Queue Name
description: The SQS Queue Name or ARN
deleteAfterRead:
type: boolean
title: Auto-delete Messages
description: Delete messages after consuming them
default: true
region:
type: string
title: AWS Region
description: The AWS region to access.
autoCreateQueue:
type: boolean
title: Autocreate Queue
description: Setting the autocreation of the SQS queue.
default: false
host:
type: string
title: AWS Host
description: The hostname of the Amazon AWS cloud.
default: amazonaws.com
protocol:
type: string
title: Protocol
description: The underlying protocol used to communicate with SQS
default: https
example: http or https
queueURL:
type: string
title: Queue URL
description: The full SQS Queue URL (required if using KEDA)
uriEndpointOverride:
type: string
title: Overwrite Endpoint URI
description: The overriding endpoint URI. To use this option, you must
also select the `overrideEndpoint` option.
overrideEndpoint:
type: boolean
title: Endpoint Overwrite
description: Select this option to override the endpoint URI. To use
this option, you must also provide a URI for the `uriEndpointOverride`
option.
default: false
delay:
type: integer
title: Delay
description: The number of milliseconds before the next poll of the
selected stream
default: 500
greedy:
type: boolean
title: Greedy Scheduler
description: If greedy is enabled, then the polling will happen immediately
again, if the previous run polled 1 or more messages.
default: false
maxMessagesPerPoll:
type: integer
title: Max Messages Per Poll
description: The maximum number of messages to return. Amazon SQS never
returns more messages than this value (however, fewer messages might
be returned). Valid values 1 to 10. Default 1.
default: 1
waitTimeSeconds:
type: integer
title: Wait Time Seconds
description: The duration (in seconds) for which the call waits for
a message to arrive in the queue before returning. If a message is
available, the call returns sooner than WaitTimeSeconds. If no messages
are available and the wait time expires, the call does not return
a message list.
visibilityTimeout:
type: integer
title: Visibility Timeout
description: The duration (in seconds) that the received messages are
hidden from subsequent retrieve requests after being retrieved by
a ReceiveMessage request.
ddbStreams:
type: object
properties:
table:
type: string
title: Table
description: The name of the DynamoDB table.
region:
type: string
title: AWS Region
description: The AWS region to access.
streamIteratorType:
type: string
title: Stream Iterator Type
description: Defines where in the DynamoDB stream to start getting records.
There are two enums and the value can be one of FROM_LATEST and FROM_START.
Note that using FROM_START can cause a significant delay before the stream
has caught up to real-time.
default: FROM_LATEST
uriEndpointOverride:
type: string
title: Overwrite Endpoint URI
description: The overriding endpoint URI. To use this option, you must
also select the `overrideEndpoint` option.
overrideEndpoint:
type: boolean
title: Endpoint Overwrite
description: Select this option to override the endpoint URI. To use
this option, you must also provide a URI for the `uriEndpointOverride`
option.
default: false
delay:
type: integer
title: Delay
description: The number of milliseconds before the next poll from the
database.
default: 500
auth:
description: 'Auth configurations'
type: object
properties:
secret:
description: 'Auth secret'
type: object
properties:
ref:
description: |
Secret reference.
type: object
required:
- name
properties:
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:
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 provides the relevant information for OIDC authentication.
type: object
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.
type: array
items:
type: string
ceAttributes:
description: CloudEventAttributes are the specific attributes that the Source uses as part of its CloudEvents.
type: array
items:
type: object
properties:
source:
description: Source is the CloudEvents source attribute.
type: string
type:
description: Type refers to the CloudEvent type attribute.
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
observedGeneration:
description: ObservedGeneration is the 'Generation' of the Service that was last processed by the controller.
type: integer
format: int64
sinkUri:
description: SinkURI is the current active sink URI that has been configured for the Source.
type: string
sinkCACerts:
description: CACerts is the Certification Authority (CA) certificates in PEM format that the source trusts when sending events to the sink.
type: string
sinkAudience:
description: Audience is the OIDC audience of the sink.
type: string
additionalPrinterColumns:
- name: Sink
type: string
jsonPath: ".status.sinkUri"
- name: Age
type: date
jsonPath: ".metadata.creationTimestamp"
- name: Ready
type: string
jsonPath: ".status.conditions[?(@.type=='Ready')].status"
- name: Reason
type: string
jsonPath: ".status.conditions[?(@.type=='Ready')].reason"
names:
categories:
- all
- knative
- sources
kind: IntegrationSource
plural: integrationsources
singular: integrationsource
scope: Namespaced

View File

@ -121,6 +121,10 @@ spec:
type:
description: 'Type of condition.'
type: string
observedGeneration:
description: ObservedGeneration is the 'Generation' of the Service that was last processed by the controller.
type: integer
format: int64
additionalPrinterColumns:
- name: URL
type: string

View File

@ -0,0 +1,213 @@
# Copyright 2024 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: requestreplies.eventing.knative.dev
labels:
knative.dev/crd-install: "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 RequestReply.
type: object
properties:
brokerRef:
description: A KReference referring to the broker this RequestReply forwards events to. CrossNamespace references are not allowed.
type: object
properties:
apiVersion:
description: API Version of the broker.
type: string
kind:
description: 'Kind of the broker. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
name:
description: 'Name of the broker. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
correlationAttribute:
description: The name of the cloudevent attribute where the correlation id will be set on new events.
type: string
replyAttribute:
description: The name of the cloudevents attribute which will hold the correlation id for an event which will be treated as a reply.
type: string
secrets:
description: A list of the names of one or more secrets used to sign the correlation ids and reply ids. The secrets must be in the same namespace as the requestreply resource.
type: array
items:
type: string
timeout:
description: A ISO8601 string representing how long RequestReply holds onto an incoming request before it times out without a reply.
type: string
delivery:
description: Delivery contains the delivery spec for each trigger to this Broker. Each trigger delivery spec, if any, overrides this global delivery spec.
type: object
properties:
backoffDelay:
description: 'BackoffDelay is the delay before retrying. More information on Duration format: - https://www.iso.org/iso-8601-date-and-time-format.html - https://en.wikipedia.org/wiki/ISO_8601 For linear policy, backoff delay is backoffDelay*<numberOfRetries>. For exponential policy, backoff delay is backoffDelay*2^<numberOfRetries>.'
type: string
backoffPolicy:
description: BackoffPolicy is the retry backoff policy (linear, exponential).
type: string
deadLetterSink:
description: DeadLetterSink is the sink receiving event that could not be sent to a destination.
type: object
properties:
ref:
description: Ref points to an Addressable.
type: object
properties:
apiVersion:
description: API version of the referent.
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
CACerts:
description: Certification Authority (CA) certificates in PEM format that the source trusts when sending events to the sink.
type: string
audience:
description: Audience is the OIDC audience. This only needs to be set if the target is not an Addressable and thus the Audience can't be received from the target itself. If specified, it takes precedence over the target's Audience.
type: string
retry:
description: Retry is the minimum number of retries the sender should attempt when sending an event before moving it to the dead letter sink.
type: integer
format: int32
x-kubernetes-preserve-unknown-fields: true # This is necessary to enable the experimental feature delivery-timeout
status:
description: Status represents the current state of the RequestReply. This data may be out of date.
type: object
properties:
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
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
address:
description: RequestReply is Addressable. It exposes the endpoint as an URI to get events delivered.
type: object
properties:
name:
type: string
url:
type: string
CACerts:
type: string
audience:
type: string
addresses:
description: RequestReply is Addressable. It exposes the endpoints as URIs to get events delivered.
type: array
items:
type: object
properties:
name:
type: string
url:
type: string
CACerts:
type: string
audience:
type: string
policies:
description: List of applied EventPolicies
type: array
items:
type: object
properties:
apiVersion:
description: The API version of the applied EventPolicy. This indicates whichversion of EventPolicy is supported by the resource.
type: string
name:
description: The name of the applied EventPolicy
type: string
observedGeneration:
description: ObservedGeneration is the 'Generation' of the Service that was last processed by the controller.
type: integer
format: int64
additionalPrinterColumns:
- name: URL
type: string
jsonPath: ".status.address.url"
- name: Ready
type: string
jsonPath: ".status.conditions[?(@.type==\"Ready\")].status"
- name: Reason
type: string
jsonPath: ".status.conditions[?(@.type==\"Ready\")].reason"
names:
kind: RequestReply
plural: requestreplies
singular: requestreply
categories:
- all
- knative
- eventing
scope: Namespaced
conversion:
strategy: Webhook
webhook:
conversionReviewVersions: ["v1", "v1beta1"]
clientConfig:
service:
name: eventing-webhook
namespace: knative-eventing

View File

@ -117,6 +117,9 @@ spec:
description: Retry is the minimum number of retries the sender should attempt when sending an event before moving it to the dead letter sink.
type: integer
format: int32
format:
description: Format is the format used to serialize the event into a http request when delivering the event. It can be json (for structured events), binary (for binary events), or unset.
type: string
filter:
description: 'Filter is the filter to apply against all events from the Broker. Only events that pass this filter will be sent to the Subscriber. If not specified, will default to allowing all events.'
type: object

View File

@ -144,3 +144,69 @@ rules:
- get
- list
- watch
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: jobsinks-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:
- sinks.knative.dev
resources:
- jobsinks
- jobsinks/status
verbs:
- get
- list
- watch
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: integrationsinks-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:
- sinks.knative.dev
resources:
- integrationsinks
- integrationsinks/status
verbs:
- 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"
@ -113,6 +117,8 @@ rules:
resources:
- "jobsinks"
- "jobsinks/status"
- "integrationsinks"
- "integrationsinks/status"
verbs:
- "get"
- "list"
@ -128,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"
@ -135,6 +158,7 @@ rules:
- "sinks.knative.dev"
resources:
- "jobsinks/finalizers"
- "integrationsinks/finalizers"
verbs:
- "update"
@ -218,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

@ -45,6 +45,7 @@ rules:
- pingsources
- sinkbindings
- containersources
- integrationsources
verbs:
- get
- list

View File

@ -66,6 +66,9 @@ rules:
- "containersources"
- "containersources/status"
- "containersources/finalizers"
- "integrationsources"
- "integrationsources/status"
- "integrationsources/finalizers"
verbs:
- "get"
- "list"

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

@ -32,6 +32,7 @@ spec:
app.kubernetes.io/name: knative-eventing
app.kubernetes.io/component: storage-version-migration-job
app.kubernetes.io/version: devel
sidecar.istio.io/inject: "false"
annotations:
sidecar.istio.io/inject: "false"
spec:
@ -40,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"
@ -54,6 +58,9 @@ spec:
- "subscriptions.messaging.knative.dev"
- "triggers.eventing.knative.dev"
- "jobsinks.sinks.knative.dev"
- "eventpolicies.eventing.knative.dev"
- "integrationsources.sources.knative.dev"
- "integrationsinks.sinks.knative.dev"
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true

File diff suppressed because it is too large Load Diff

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.:

149
go.mod
View File

@ -1,21 +1,21 @@
module knative.dev/eventing
go 1.22
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.24.0
go.opentelemetry.io/otel/trace v1.24.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.27.0
golang.org/x/sync v0.7.0
k8s.io/api v0.29.2
k8s.io/apiextensions-apiserver v0.29.2
k8s.io/apimachinery v0.29.2
k8s.io/apiserver v0.29.2
k8s.io/client-go v0.29.2
k8s.io/utils v0.0.0-20240102154912-e7106e64919e
knative.dev/hack v0.0.0-20240704013904-b9799599afcf
knative.dev/hack/schema v0.0.0-20240704013904-b9799599afcf
knative.dev/pkg v0.0.0-20240716082220-4355f0c73608
knative.dev/reconciler-test v0.0.0-20240716134925-00d94f40c470
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,66 +63,84 @@ 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.1 // indirect
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
github.com/evanphx/json-patch v4.12.0+incompatible // indirect
github.com/evanphx/json-patch/v5 v5.9.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.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.1 // indirect
github.com/go-openapi/jsonpointer v0.19.6 // indirect
github.com/go-openapi/jsonreference v0.20.2 // indirect
github.com/go-openapi/swag v0.22.3 // indirect
github.com/gobuffalo/flect v1.0.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
github.com/gobuffalo/flect v1.0.3 // indirect
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.16.0 // indirect
github.com/imdario/mergo v0.3.9 // 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.0 // indirect
github.com/prometheus/client_golang v1.19.1 // indirect
github.com/prometheus/client_model v0.6.1 // indirect
github.com/prometheus/common v0.54.0 // indirect
github.com/prometheus/procfs v0.12.0 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // 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.7.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/spf13/cobra v1.8.1 // indirect
github.com/spf13/pflag v1.0.6 // indirect
github.com/valyala/bytebufferpool v1.0.0 // indirect
go.uber.org/automaxprocs v1.5.3 // indirect
golang.org/x/crypto v0.25.0 // indirect
golang.org/x/mod v0.19.0 // indirect
golang.org/x/oauth2 v0.21.0 // indirect
golang.org/x/sys v0.22.0 // indirect
golang.org/x/term v0.22.0 // indirect
golang.org/x/text v0.16.0 // indirect
golang.org/x/time v0.5.0 // indirect
golang.org/x/tools v0.23.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-20240604185151-ef581f913117 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 // indirect
google.golang.org/grpc v1.65.0 // indirect
google.golang.org/protobuf v1.34.1 // 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
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.29.2 // indirect
k8s.io/gengo v0.0.0-20240129211411-f967bbeff4b4 // indirect
k8s.io/gengo v0.0.0-20240404160639-a0386bf69313 // indirect
k8s.io/gengo/v2 v2.0.0-20250207200755-1244d31929d7 // indirect
k8s.io/klog v1.0.0 // indirect
k8s.io/klog/v2 v2.120.1 // indirect
k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 // indirect
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
k8s.io/klog/v2 v2.130.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
)

641
go.sum

File diff suppressed because it is too large Load Diff

View File

@ -20,8 +20,8 @@ set -o nounset
set -o pipefail
CLUSTER_SUFFIX=${CLUSTER_SUFFIX:-"cluster.local"}
NODE_VERSION=${NODE_VERSION:-"v1.28.7"}
NODE_SHA=${NODE_SHA:-"sha256:9bc6c451a289cf96ad0bbaf33d416901de6fd632415b076ab05f5fa7e4f65c58"}
NODE_VERSION=${NODE_VERSION:-"v1.31.4"}
NODE_SHA=${NODE_SHA:-"sha256:2cb39f7295fe7eafee0842b1052a599a4fb0f8bcf3f83d96c7f4864c357c6c30"}
cat <<EOF | kind create cluster --config=-
apiVersion: kind.x-k8s.io/v1alpha4

View File

@ -35,4 +35,4 @@ wait_until_pods_running knative-eventing || fail_test "Pods in knative-eventing
header "Running tests"
go test -tags=e2e -v -timeout=30m -run="${test_name}" "${test_dir}" || fail_test "Test(s) failed"
go test -tags=e2e -v -timeout=30m -parallel=12 -run="${test_name}" "${test_dir}" || fail_test "Test(s) failed"

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

@ -21,7 +21,7 @@ metadata:
EOF
helm template -n cert-manager cert-manager jetstack/cert-manager --create-namespace --version "${cert_manager_version}" --set installCRDs=true > third_party/cert-manager/01-cert-manager.yaml
helm template -n cert-manager cert-manager jetstack/trust-manager --create-namespace --version "${trust_manager_version}" --set installCRDs=true > third_party/cert-manager/02-trust-manager.yaml
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.7.1"
update_cert_manager "v1.16.3" "v0.12.0"

View File

@ -19,6 +19,7 @@ set -o nounset
set -o pipefail
source $(dirname $0)/../vendor/knative.dev/hack/codegen-library.sh
source "${CODEGEN_PKG}/kube_codegen.sh"
# If we run with -mod=vendor here, then generate-groups.sh looks for vendor files in the wrong place.
export GOFLAGS=-mod=
@ -32,34 +33,30 @@ ${REPO_ROOT_DIR}/hack/update-checksums.sh
group "Kubernetes Codegen"
# generate the code with:
# --output-base because this script should also be able to run inside the vendor dir of
# k8s.io/kubernetes. The output-base is needed for the generators to output into the vendor dir
# instead of the $GOPATH directly. For normal projects this can be dropped.
${CODEGEN_PKG}/generate-groups.sh "deepcopy,client,informer,lister" \
knative.dev/eventing/pkg/client knative.dev/eventing/pkg/apis \
"sinks:v1alpha1 eventing:v1alpha1 eventing:v1beta1 eventing:v1beta2 eventing:v1beta3 eventing:v1 messaging:v1 flows:v1 sources:v1beta2 sources:v1" \
--go-header-file ${REPO_ROOT_DIR}/hack/boilerplate/boilerplate.go.txt
kube::codegen::gen_helpers \
--boilerplate "${REPO_ROOT_DIR}/hack/boilerplate/boilerplate.go.txt" \
"${REPO_ROOT_DIR}/pkg/apis"
# Deep copy config
${GOPATH}/bin/deepcopy-gen \
-O zz_generated.deepcopy \
--go-header-file ${REPO_ROOT_DIR}/hack/boilerplate/boilerplate.go.txt \
-i knative.dev/eventing/pkg/apis/config \
-i knative.dev/eventing/pkg/apis/messaging/config \
# Only deepcopy the Duck types, as they are not real resources.
${CODEGEN_PKG}/generate-groups.sh "deepcopy" \
knative.dev/eventing/pkg/client knative.dev/eventing/pkg/apis \
"duck:v1beta1 duck:v1alpha1 duck:v1" \
--go-header-file ${REPO_ROOT_DIR}/hack/boilerplate/boilerplate.go.txt
kube::codegen::gen_client \
--boilerplate "${REPO_ROOT_DIR}/hack/boilerplate/boilerplate.go.txt" \
--output-dir "${REPO_ROOT_DIR}/pkg/client" \
--output-pkg "knative.dev/eventing/pkg/client" \
--with-watch \
"${REPO_ROOT_DIR}/pkg/apis"
group "Knative Codegen"
# Knative Injection
${KNATIVE_CODEGEN_PKG}/hack/generate-knative.sh "injection" \
knative.dev/eventing/pkg/client knative.dev/eventing/pkg/apis \
"sinks:v1alpha1 eventing:v1alpha1 eventing:v1beta1 eventing:v1beta2 eventing:v1beta3 eventing:v1 messaging:v1 flows:v1 sources:v1beta2 sources:v1 duck:v1beta1 duck:v1" \
"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"

View File

@ -19,7 +19,6 @@ package apiserver
import (
"context"
"fmt"
"net/http"
"time"
cloudevents "github.com/cloudevents/sdk-go/v2"
@ -34,7 +33,6 @@ import (
"knative.dev/eventing/pkg/adapter/v2"
v1 "knative.dev/eventing/pkg/apis/sources/v1"
brokerfilter "knative.dev/eventing/pkg/broker/filter"
"knative.dev/eventing/pkg/eventfilter/subscriptionsapi"
)
@ -73,7 +71,7 @@ func (a *apiServerAdapter) start(ctx context.Context, stopCh <-chan struct{}) er
logger: a.logger,
ref: a.config.EventMode == v1.ReferenceMode,
apiServerSourceName: a.name,
filter: subscriptionsapi.NewAllFilter(brokerfilter.MaterializeFiltersList(a.logger.Desugar(), a.config.Filters)...),
filter: subscriptionsapi.NewAllFilter(subscriptionsapi.MaterializeFiltersList(a.logger.Desugar(), a.config.Filters)...),
}
if a.config.ResourceOwner != nil {
a.logger.Infow("will be filtered",
@ -127,20 +125,8 @@ func (a *apiServerAdapter) start(ctx context.Context, stopCh <-chan struct{}) er
}
}
srv := &http.Server{
Addr: ":8080",
// Configure read header timeout to overcome potential Slowloris Attack because ReadHeaderTimeout is not
// configured in the http.Server.
ReadHeaderTimeout: 10 * time.Second,
Handler: http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
}),
}
go srv.ListenAndServe()
<-stopCh
stop <- struct{}{}
srv.Shutdown(ctx)
close(stop)
return nil
}

View File

@ -35,7 +35,6 @@ import (
kubetesting "k8s.io/client-go/testing"
adaptertest "knative.dev/eventing/pkg/adapter/v2/test"
eventingv1 "knative.dev/eventing/pkg/apis/eventing/v1"
brokerfilter "knative.dev/eventing/pkg/broker/filter"
"knative.dev/eventing/pkg/eventfilter/subscriptionsapi"
rectesting "knative.dev/eventing/pkg/reconciler/testing"
"knative.dev/pkg/logging"
@ -299,7 +298,7 @@ func makeResourceAndTestingClient() (*resourceDelegate, *adaptertest.TestCloudEv
source: "unit-test",
apiServerSourceName: apiServerSourceNameTest,
logger: logger,
filter: subscriptionsapi.NewAllFilter(brokerfilter.MaterializeFiltersList(logger.Desugar(), []eventingv1.SubscriptionsAPIFilter{})...),
filter: subscriptionsapi.NewAllFilter(subscriptionsapi.MaterializeFiltersList(logger.Desugar(), []eventingv1.SubscriptionsAPIFilter{})...),
}, ce
}
@ -313,6 +312,6 @@ func makeRefAndTestingClient() (*resourceDelegate, *adaptertest.TestCloudEventsC
apiServerSourceName: apiServerSourceNameTest,
logger: zap.NewExample().Sugar(),
ref: true,
filter: subscriptionsapi.NewAllFilter(brokerfilter.MaterializeFiltersList(logger.Desugar(), []eventingv1.SubscriptionsAPIFilter{})...),
filter: subscriptionsapi.NewAllFilter(subscriptionsapi.MaterializeFiltersList(logger.Desugar(), []eventingv1.SubscriptionsAPIFilter{})...),
}, ce
}

View File

@ -22,7 +22,6 @@ import (
adaptertest "knative.dev/eventing/pkg/adapter/v2/test"
eventingv1 "knative.dev/eventing/pkg/apis/eventing/v1"
"knative.dev/eventing/pkg/apis/sources"
brokerfilter "knative.dev/eventing/pkg/broker/filter"
"knative.dev/eventing/pkg/eventfilter/subscriptionsapi"
)
@ -87,7 +86,7 @@ func TestFilterFails(t *testing.T) {
source: "unit-test",
apiServerSourceName: apiServerSourceNameTest,
logger: logger,
filter: subscriptionsapi.NewAllFilter(brokerfilter.MaterializeFiltersList(logger.Desugar(), filters)...),
filter: subscriptionsapi.NewAllFilter(subscriptionsapi.MaterializeFiltersList(logger.Desugar(), filters)...),
}
delegate.Update(simplePod("unit", "test"))
@ -104,7 +103,7 @@ func TestEmptyFiltersList(t *testing.T) {
source: "unit-test",
apiServerSourceName: apiServerSourceNameTest,
logger: logger,
filter: subscriptionsapi.NewAllFilter(brokerfilter.MaterializeFiltersList(logger.Desugar(), filters)...),
filter: subscriptionsapi.NewAllFilter(subscriptionsapi.MaterializeFiltersList(logger.Desugar(), filters)...),
}
delegate.Update(simplePod("unit", "test"))

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

@ -124,3 +124,14 @@ func ConfiguratorOptionsFromContext(ctx context.Context) []ConfiguratorOption {
}
return value.([]ConfiguratorOption)
}
type healthProbesDisabledKey struct{}
// WithHealthProbesDisabled signals to MainWithContext that it should disable default probes (readiness and liveness).
func WithHealthProbesDisabled(ctx context.Context) context.Context {
return context.WithValue(ctx, healthProbesDisabledKey{}, struct{}{})
}
func HealthProbesDisabled(ctx context.Context) bool {
return ctx.Value(healthProbesDisabledKey{}) != nil
}

View File

@ -306,6 +306,14 @@ func MainWithInformers(ctx context.Context, component string, env EnvConfigAcces
}()
}
if !HealthProbesDisabled(ctx) {
wg.Add(1)
go func() {
defer wg.Done()
injection.ServeHealthProbes(ctx, injection.HealthCheckDefaultPort)
}()
}
// Finally start the adapter (blocking)
if err := adapter.Start(ctx); err != nil {
logger.Fatalw("Start returned an error", zap.Error(err))

View File

@ -67,6 +67,7 @@ func TestMainWithContext(t *testing.T) {
}()
ctx := context.TODO()
ctx = WithHealthProbesDisabled(ctx)
ctx, _ = fakekubeclient.With(ctx)
MainWithContext(ctx, "mycomponent",

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

@ -0,0 +1,43 @@
/*
Copyright 2024 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
type Auth struct {
// Auth Secret
Secret *Secret `json:"secret,omitempty"`
// AccessKey is the AWS access key ID.
AccessKey string `json:"accessKey,omitempty"`
// SecretKey is the AWS secret access key.
SecretKey string `json:"secretKey,omitempty"`
}
func (a *Auth) HasAuth() bool {
return a != nil && a.Secret != nil &&
a.Secret.Ref != nil && a.Secret.Ref.Name != ""
}
type Secret struct {
// Secret reference for SASL and SSL configurations.
Ref *SecretReference `json:"ref,omitempty"`
}
type SecretReference struct {
// Secret name.
Name string `json:"name"`
}

View File

@ -0,0 +1,76 @@
/*
Copyright 2024 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
const (
// AwsAccessKey is the name of the expected key on the secret for accessing the actual AWS access key value.
AwsAccessKey = "aws.accessKey"
// AwsSecretKey is the name of the expected key on the secret for accessing the actual AWS secret key value.
AwsSecretKey = "aws.secretKey"
)
type AWSCommon struct {
// Auth is the S3 authentication (accessKey/secretKey) configuration.
Region string `json:"region,omitempty"` // AWS region
URIEndpointOverride string `json:"uriEndpointOverride,omitempty"` // Override endpoint URI
OverrideEndpoint bool `json:"overrideEndpoint" default:"false"` // Override endpoint flag
}
type AWSS3 struct {
AWSCommon `json:",inline"` // Embeds AWSCommon to inherit its fields in JSON
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:"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 {
AWSCommon `json:",inline"` // Embeds AWSCommon to inherit its fields in JSON
Table string `json:"table,omitempty"` // The name of the DynamoDB table
StreamIteratorType string `json:"streamIteratorType,omitempty" default:"FROM_LATEST"` // Defines where in the DynamoDB stream to start getting records
Delay int `json:"delay,omitempty" default:"500"` // Delay in milliseconds before the next poll from the database
}
type AWSSNS struct {
AWSCommon `json:",inline"` // Embeds AWSCommon to inherit its fields in JSON
Arn string `json:"arn,omitempty" camel:"TOPIC_NAME_OR_ARN"` // SNS ARN
AutoCreateTopic bool `json:"autoCreateTopic" default:"false"` // Auto-create SNS topic
}

View File

@ -0,0 +1,19 @@
/*
Copyright 2024 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.
*/
// +k8s:deepcopy-gen=package
package v1alpha1

View File

@ -0,0 +1,164 @@
//go:build !ignore_autogenerated
// +build !ignore_autogenerated
/*
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 deepcopy-gen. DO NOT EDIT.
package v1alpha1
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *AWSCommon) DeepCopyInto(out *AWSCommon) {
*out = *in
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSCommon.
func (in *AWSCommon) DeepCopy() *AWSCommon {
if in == nil {
return nil
}
out := new(AWSCommon)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *AWSDDBStreams) DeepCopyInto(out *AWSDDBStreams) {
*out = *in
out.AWSCommon = in.AWSCommon
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSDDBStreams.
func (in *AWSDDBStreams) DeepCopy() *AWSDDBStreams {
if in == nil {
return nil
}
out := new(AWSDDBStreams)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *AWSS3) DeepCopyInto(out *AWSS3) {
*out = *in
out.AWSCommon = in.AWSCommon
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSS3.
func (in *AWSS3) DeepCopy() *AWSS3 {
if in == nil {
return nil
}
out := new(AWSS3)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *AWSSNS) DeepCopyInto(out *AWSSNS) {
*out = *in
out.AWSCommon = in.AWSCommon
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSSNS.
func (in *AWSSNS) DeepCopy() *AWSSNS {
if in == nil {
return nil
}
out := new(AWSSNS)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *AWSSQS) DeepCopyInto(out *AWSSQS) {
*out = *in
out.AWSCommon = in.AWSCommon
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSSQS.
func (in *AWSSQS) DeepCopy() *AWSSQS {
if in == nil {
return nil
}
out := new(AWSSQS)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Auth) DeepCopyInto(out *Auth) {
*out = *in
if in.Secret != nil {
in, out := &in.Secret, &out.Secret
*out = new(Secret)
(*in).DeepCopyInto(*out)
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Auth.
func (in *Auth) DeepCopy() *Auth {
if in == nil {
return nil
}
out := new(Auth)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Secret) DeepCopyInto(out *Secret) {
*out = *in
if in.Ref != nil {
in, out := &in.Ref, &out.Ref
*out = new(SecretReference)
**out = **in
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Secret.
func (in *Secret) DeepCopy() *Secret {
if in == nil {
return nil
}
out := new(Secret)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SecretReference) DeepCopyInto(out *SecretReference) {
*out = *in
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretReference.
func (in *SecretReference) DeepCopy() *SecretReference {
if in == nil {
return nil
}
out := new(SecretReference)
in.DeepCopyInto(out)
return out
}

View File

@ -68,28 +68,88 @@ func NewDefaultsConfigFromConfigMap(config *corev1.ConfigMap) (*Defaults, error)
return NewDefaultsConfigFromMap(config.Data)
}
/*
The priority precedence for determining the broker class and configuration is as follows:
1. If a specific broker class is provided:
a. Check namespace-specific configuration for the given broker class
b. If not found, check cluster-wide configuration for the given broker class
c. If still not found, use the cluster-wide default configuration
2. If no specific broker class is provided:
a. Check namespace-specific default broker class
b. If found, use its configuration (following step 1)
c. If not found, use cluster-wide default broker class and configuration
3. If no default cluster configuration is set, return an error
4. If no default namespace configuration is set, will use the cluster-wide default configuration.
This can be represented as a flow chart:
Start
|
v
Is broker class provided?
/ \
Yes No
/ \
Check namespace config Check namespace
for provided class default class
| |
v v
Found? Found?
/ \ / \
Yes No Yes No
| | | |
| | | |
| v | v
| Check cluster | Use cluster
| config for class | default class
| | | and config
| v |
| Found? |
| / \ |
| Yes No |
| | | |
| | v |
| | Use cluster |
| | default config |
v v v
Use found configuration
The system prioritizes namespace-specific configurations over cluster-wide defaults,
and explicitly provided broker classes over default classes.
*/
// Defaults includes the default values to be populated by the webhook.
type Defaults struct {
// NamespaceDefaultsConfig are the default Broker Configs for each namespace.
// Namespace is the key, the value is the KReference to the config.
NamespaceDefaultsConfig map[string]*ClassAndBrokerConfig `json:"namespaceDefaults,omitempty"`
// Namespace is the key, the value is the NamespaceDefaultConfig
NamespaceDefaultsConfig map[string]*DefaultConfig `json:"namespaceDefaults,omitempty"`
// ClusterDefaultBrokerConfig is the default broker config for all the namespaces that
// are not in NamespaceDefaultBrokerConfigs.
ClusterDefault *ClassAndBrokerConfig `json:"clusterDefault,omitempty"`
// ClusterDefaultConfig is the default broker config for all the namespaces that
// are not in NamespaceDefaultBrokerConfigs. Different broker class could have
// different default config.
ClusterDefaultConfig *DefaultConfig `json:"clusterDefault,omitempty"`
}
// ClassAndBrokerConfig contains configuration for a given namespace for broker. Allows
// configuring the Class of the Broker, the reference to the
// config it should use and it's delivery.
type ClassAndBrokerConfig struct {
BrokerClass string `json:"brokerClass,omitempty"`
// DefaultConfig struct contains the default configuration for the cluster and namespace.
type DefaultConfig struct {
// DefaultBrokerClass and DefaultBrokerClassConfig are the default broker class for the whole cluster/namespace.
// Users have to specify both of them
DefaultBrokerClass string `json:"brokerClass,omitempty"`
//Deprecated: Use the config in BrokerClasses instead
*BrokerConfig `json:",inline"`
// Optional: BrokerClasses are the default broker classes' config. The key is the broker class name, and the value is the config for that broker class.
BrokerClasses map[string]*BrokerConfig `json:"brokerClasses,omitempty"`
DisallowDifferentNamespaceConfig *bool `json:"disallowDifferentNamespaceConfig,omitempty"`
}
// BrokerConfig contains configuration for a given namespace for broker. Allows
// BrokerConfig contains configuration for a given broker. Allows
// configuring the reference to the
// config it should use and it's delivery.
type BrokerConfig struct {
@ -97,36 +157,115 @@ type BrokerConfig struct {
Delivery *eventingduckv1.DeliverySpec `json:"delivery,omitempty"`
}
// GetBrokerConfig returns a namespace specific Broker Configuration, and if
// that doesn't exist, return a Cluster Default and if that doesn't exist
// return an error.
func (d *Defaults) GetBrokerConfig(ns string) (*BrokerConfig, error) {
// GetBrokerConfig returns a namespace specific Broker Config, and if
// that doesn't exist, return a Cluster Default and if that doesn't exist return an error.
func (d *Defaults) GetBrokerConfig(ns string, brokerClassName *string) (*BrokerConfig, error) {
if d == nil {
return nil, errors.New("Defaults are nil")
return nil, errors.New("Defaults for Broker Configurations for cluster have not been set up. You can set them via ConfigMap config-br-defaults.")
}
value, present := d.NamespaceDefaultsConfig[ns]
if present && value.BrokerConfig != nil {
return value.BrokerConfig, nil
// Early return if brokerClassName is provided and valid
if brokerClassName != nil && *brokerClassName != "" {
return d.getBrokerConfigByClassName(ns, *brokerClassName)
}
if d.ClusterDefault != nil && d.ClusterDefault.BrokerConfig != nil {
return d.ClusterDefault.BrokerConfig, nil
// Handling empty brokerClassName
return d.getBrokerConfigForEmptyClassName(ns)
}
// getBrokerConfigByClassName returns the BrokerConfig for the given brokerClassName.
// It first checks the namespace specific configuration, then the cluster default configuration.
func (d *Defaults) getBrokerConfigByClassName(ns string, brokerClassName string) (*BrokerConfig, error) {
// Check namespace specific configuration
if nsConfig, ok := d.NamespaceDefaultsConfig[ns]; ok && nsConfig != nil {
// check if the brokerClassName is the default broker class for this namespace
if nsConfig.DefaultBrokerClass == brokerClassName {
if nsConfig.BrokerConfig == nil {
// as no default broker class config is set for this namespace, check whether nsconfig's brokerClasses map has the config for this broker class
if config, ok := nsConfig.BrokerClasses[brokerClassName]; ok && config != nil {
return config, nil
}
// if not found, return the cluster default config
return d.getClusterDefaultBrokerConfig(brokerClassName)
} else {
// If the brokerClassName exists in the BrokerClasses, return the config in the BrokerClasses
if config, ok := nsConfig.BrokerClasses[brokerClassName]; ok && config != nil {
return config, nil
} else {
// If the brokerClassName is the default broker class for the namespace, return the BrokerConfig
return nsConfig.BrokerConfig, nil
}
}
} else {
// if the brokerClassName is not the default broker class for the namespace, check whether nsconfig's brokerClasses map has the config for this broker class
if config, ok := nsConfig.BrokerClasses[brokerClassName]; ok && config != nil {
return config, nil
}
}
}
return nil, errors.New("Defaults for Broker Configurations have not been set up.")
// Check cluster default configuration
return d.getClusterDefaultBrokerConfig(brokerClassName)
}
// getBrokerConfigForEmptyClassName returns the BrokerConfig for the given namespace when brokerClassName is empty.
// It first checks the namespace specific configuration, then the cluster default configuration.
func (d *Defaults) getBrokerConfigForEmptyClassName(ns string) (*BrokerConfig, error) {
// Check if namespace has a default broker class
if nsConfig, ok := d.NamespaceDefaultsConfig[ns]; ok && nsConfig != nil {
if nsConfig.DefaultBrokerClass != "" {
return d.getBrokerConfigByClassName(ns, nsConfig.DefaultBrokerClass)
}
}
// Fallback to cluster default configuration
return d.getClusterDefaultBrokerConfig("")
}
// getClusterDefaultBrokerConfig returns the BrokerConfig for the given brokerClassName.
func (d *Defaults) getClusterDefaultBrokerConfig(brokerClassName string) (*BrokerConfig, error) {
if d.ClusterDefaultConfig == nil || d.ClusterDefaultConfig.BrokerConfig == nil {
return nil, errors.New("Defaults for Broker Configurations for cluster have not been set up. You can set them via ConfigMap config-br-defaults.")
}
// Check if the brokerClassName is the default broker class for the whole cluster
if brokerClassName == "" || d.ClusterDefaultConfig.DefaultBrokerClass == brokerClassName {
// If the brokerClassName exists in the BrokerClasses, return the config in the BrokerClasses
if config, ok := d.ClusterDefaultConfig.BrokerClasses[brokerClassName]; ok && config != nil {
return config, nil
} else {
// If the brokerClassName is the default broker class for the cluster, return the BrokerConfig
return d.ClusterDefaultConfig.BrokerConfig, nil
}
}
if config, ok := d.ClusterDefaultConfig.BrokerClasses[brokerClassName]; ok && config != nil {
return config, nil
}
return d.ClusterDefaultConfig.BrokerConfig, nil
}
// GetBrokerClass returns a namespace specific Broker Class, and if
// that doesn't exist, return a Cluster Default and if that doesn't exist
// that doesn't exist, return a Cluster Default and if the defaults doesn't exist
// return an error.
func (d *Defaults) GetBrokerClass(ns string) (string, error) {
if d == nil {
return "", errors.New("Defaults are nil")
return "", errors.New("Defaults for Broker Configurations for cluster have not been set up. You can set them via ConfigMap config-br-defaults.")
}
value, present := d.NamespaceDefaultsConfig[ns]
if present && value.BrokerClass != "" {
return value.BrokerClass, nil
// Check if the namespace has a specific configuration
if nsConfig, ok := d.NamespaceDefaultsConfig[ns]; ok && nsConfig != nil {
if nsConfig.DefaultBrokerClass != "" {
return nsConfig.DefaultBrokerClass, nil
}
}
if d.ClusterDefault != nil && d.ClusterDefault.BrokerClass != "" {
return d.ClusterDefault.BrokerClass, nil
// Fallback to cluster default configuration if namespace specific configuration is not set
if d.ClusterDefaultConfig != nil && d.ClusterDefaultConfig.DefaultBrokerClass != "" {
return d.ClusterDefaultConfig.DefaultBrokerClass, nil
}
return "", errors.New("Defaults for Broker Configurations have not been set up.")
// If neither namespace specific nor cluster default broker class is found
return "", fmt.Errorf("Neither namespace specific nor cluster default broker class is found for namespace %q, please set them via ConfigMap config-br-defaults", ns)
}

File diff suppressed because it is too large Load Diff

View File

@ -28,10 +28,10 @@ data:
################################
default-br-config: |
clusterDefault:
brokerClass: MTChannelBasedBroker
brokerClass: default-cluster-class
apiVersion: v1
kind: ConfigMap
name: somename
name: config-default-cluster-class
namespace: knative-eventing
delivery:
retry: 3
@ -39,18 +39,53 @@ data:
ref:
apiVersion: serving.knative.dev/v1
kind: Service
name: handle-error
name: mt-handle-error
namespace: knative-eventing
backoffPolicy: exponential
backoffDelay: 3s
brokerClasses:
cluster-class-2:
delivery:
retry: 3
deadLetterSink:
ref:
apiVersion: serving.knative.dev/v1
kind: Service
name: mt-handle-error
namespace: knative-eventing
backoffPolicy: exponential
backoffDelay: 3s
apiVersion: v1
kind: ConfigMap
name: config-cluster-class-2
namespace: knative-eventing
shared-class:
delivery:
retry: 3
deadLetterSink:
ref:
apiVersion: serving.knative.dev/v1
kind: Service
name: kafka-handle-error
namespace: knative-eventing
backoffPolicy: exponential
backoffDelay: 3s
apiVersion: v1
kind: ConfigMap
name: config-shared-class
namespace: knative-eventing
namespaceDefaults:
some-namespace:
brokerClass: someotherbrokerclass
namespace-1:
brokerClass: namespace-1-class
apiVersion: v1
kind: ConfigMap
name: someothername
namespace: someothernamespace
name: config-namespace-1-class
namespace: namespace-1
delivery:
retry: 5
deadLetterSink:
@ -58,6 +93,46 @@ data:
apiVersion: serving.knative.dev/v1
kind: Service
name: someother-handle-error
namespace: someothernamespace
namespace: knative-eventing
backoffPolicy: linear
backoffDelay: 5s
brokerClasses:
namespace-1-class-2:
delivery:
retry: 3
deadLetterSink:
ref:
apiVersion: serving.knative.dev/v1
kind: Service
name: mt-handle-error
namespace: knative-eventing
backoffPolicy: exponential
backoffDelay: 3s
apiVersion: v1
kind: ConfigMap
name: config-namespace-1-class-2
namespace: knative-eventing
shared-class:
delivery:
retry: 3
deadLetterSink:
ref:
apiVersion: serving.knative.dev/v1
kind: Service
name: kafka-handle-error
namespace: knative-eventing
backoffPolicy: exponential
backoffDelay: 3s
apiVersion: v1
kind: ConfigMap
name: config-shared-class-in-namespace-1
namespace: knative-eventing
namespace-2:
brokerClass: default-namespace-2-class
namespace-3:

View File

@ -53,13 +53,28 @@ func (in *BrokerConfig) DeepCopy() *BrokerConfig {
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ClassAndBrokerConfig) DeepCopyInto(out *ClassAndBrokerConfig) {
func (in *DefaultConfig) DeepCopyInto(out *DefaultConfig) {
*out = *in
if in.BrokerConfig != nil {
in, out := &in.BrokerConfig, &out.BrokerConfig
*out = new(BrokerConfig)
(*in).DeepCopyInto(*out)
}
if in.BrokerClasses != nil {
in, out := &in.BrokerClasses, &out.BrokerClasses
*out = make(map[string]*BrokerConfig, len(*in))
for key, val := range *in {
var outVal *BrokerConfig
if val == nil {
(*out)[key] = nil
} else {
in, out := &val, &outVal
*out = new(BrokerConfig)
(*in).DeepCopyInto(*out)
}
(*out)[key] = outVal
}
}
if in.DisallowDifferentNamespaceConfig != nil {
in, out := &in.DisallowDifferentNamespaceConfig, &out.DisallowDifferentNamespaceConfig
*out = new(bool)
@ -68,12 +83,12 @@ func (in *ClassAndBrokerConfig) DeepCopyInto(out *ClassAndBrokerConfig) {
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClassAndBrokerConfig.
func (in *ClassAndBrokerConfig) DeepCopy() *ClassAndBrokerConfig {
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DefaultConfig.
func (in *DefaultConfig) DeepCopy() *DefaultConfig {
if in == nil {
return nil
}
out := new(ClassAndBrokerConfig)
out := new(DefaultConfig)
in.DeepCopyInto(out)
return out
}
@ -83,22 +98,22 @@ func (in *Defaults) DeepCopyInto(out *Defaults) {
*out = *in
if in.NamespaceDefaultsConfig != nil {
in, out := &in.NamespaceDefaultsConfig, &out.NamespaceDefaultsConfig
*out = make(map[string]*ClassAndBrokerConfig, len(*in))
*out = make(map[string]*DefaultConfig, len(*in))
for key, val := range *in {
var outVal *ClassAndBrokerConfig
var outVal *DefaultConfig
if val == nil {
(*out)[key] = nil
} else {
in, out := &val, &outVal
*out = new(ClassAndBrokerConfig)
*out = new(DefaultConfig)
(*in).DeepCopyInto(*out)
}
(*out)[key] = outVal
}
}
if in.ClusterDefault != nil {
in, out := &in.ClusterDefault, &out.ClusterDefault
*out = new(ClassAndBrokerConfig)
if in.ClusterDefaultConfig != nil {
in, out := &in.ClusterDefaultConfig, &out.ClusterDefaultConfig
*out = new(DefaultConfig)
(*in).DeepCopyInto(*out)
}
return

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

@ -30,13 +30,18 @@ import (
func (b *Broker) SetDefaults(ctx context.Context) {
// Default Spec fields.
withNS := apis.WithinParent(ctx, b.ObjectMeta)
b.Spec.SetDefaults(withNS)
b.Spec.SetDefaults(withNS, b.Annotations["eventing.knative.dev/broker.class"])
eventing.DefaultBrokerClassIfUnset(withNS, &b.ObjectMeta)
}
func (bs *BrokerSpec) SetDefaults(ctx context.Context) {
func (bs *BrokerSpec) SetDefaults(ctx context.Context, brokerClass string) {
cfg := config.FromContextOrDefaults(ctx)
c, err := cfg.Defaults.GetBrokerConfig(apis.ParentMeta(ctx).Namespace)
c, err := cfg.Defaults.GetBrokerConfig(apis.ParentMeta(ctx).Namespace, &brokerClass)
if bs.Config != nil {
c, err = cfg.Defaults.GetBrokerConfig(apis.ParentMeta(ctx).Namespace, &bs.Config.Kind)
}
if err == nil {
if bs.Config == nil {
bs.Config = c.KReference
@ -49,10 +54,14 @@ func (bs *BrokerSpec) SetDefaults(ctx context.Context) {
BackoffDelay: c.Delivery.BackoffDelay,
}
}
}
// Default the namespace if not given
if bs.Config != nil {
bs.Config.SetDefaults(ctx)
}
bs.Delivery.SetDefaults(ctx)
}

View File

@ -38,8 +38,9 @@ var (
Defaults: &config.Defaults{
// NamespaceDefaultsConfig are the default Broker Configs for each namespace.
// Namespace is the key, the value is the KReference to the config.
NamespaceDefaultsConfig: map[string]*config.ClassAndBrokerConfig{
NamespaceDefaultsConfig: map[string]*config.DefaultConfig{
"mynamespace": {
DefaultBrokerClass: "MTChannelBasedBroker",
BrokerConfig: &config.BrokerConfig{
KReference: &duckv1.KReference{
APIVersion: "v1",
@ -61,9 +62,27 @@ var (
BackoffDelay: pointer.String("5s"),
},
},
BrokerClasses: map[string]*config.BrokerConfig{
"mynamespaceclass": {
KReference: &duckv1.KReference{
APIVersion: "v1",
Kind: "ConfigMap",
Namespace: "knative-eventing",
Name: "kafka-channel",
},
},
"mynamespaceclass2": {
KReference: &duckv1.KReference{
APIVersion: "v1",
Kind: "ConfigMap",
Namespace: "knative-eventing",
Name: "kafka-channel",
},
},
},
},
"mynamespace2": {
BrokerClass: "mynamespace2class",
DefaultBrokerClass: "mynamespace2class",
BrokerConfig: &config.BrokerConfig{
KReference: &duckv1.KReference{
APIVersion: "v1",
@ -85,9 +104,19 @@ var (
BackoffDelay: pointer.String("3s"),
},
},
BrokerClasses: map[string]*config.BrokerConfig{
"mynamespaceclass": {
KReference: &duckv1.KReference{
APIVersion: "v1",
Kind: "ConfigMap",
Namespace: "knative-eventing",
Name: "natss-channel",
},
},
},
},
"mynamespace3": {
BrokerClass: "mynamespace3class",
DefaultBrokerClass: "mynamespace3class",
BrokerConfig: &config.BrokerConfig{
KReference: &duckv1.KReference{
APIVersion: "v1",
@ -109,9 +138,67 @@ var (
},
},
},
"customns": {
DefaultBrokerClass: "MTChannelBasedBroker",
BrokerConfig: &config.BrokerConfig{
KReference: &duckv1.KReference{
APIVersion: "v1",
Kind: "ConfigMap",
Namespace: "test-ns",
Name: "test-config",
},
},
BrokerClasses: map[string]*config.BrokerConfig{
"mynamespaceclass": {
KReference: &duckv1.KReference{
APIVersion: "v1",
Kind: "ConfigMap",
Namespace: "knative-eventing",
Name: "kafka-channel",
},
},
"mynamespaceclass2": {
KReference: &duckv1.KReference{
APIVersion: "v1",
Kind: "ConfigMap",
Namespace: "knative-eventing",
Name: "kafka-channel",
},
},
},
},
"custom": {
DefaultBrokerClass: "test-broker",
BrokerConfig: &config.BrokerConfig{
KReference: &duckv1.KReference{
APIVersion: "v1",
Kind: "ConfigMap",
Namespace: "test-ns",
Name: "test-config",
},
},
BrokerClasses: map[string]*config.BrokerConfig{
"mynamespaceclass": {
KReference: &duckv1.KReference{
APIVersion: "v1",
Kind: "ConfigMap",
Namespace: "knative-eventing",
Name: "kafka-channel",
},
},
"mynamespaceclass2": {
KReference: &duckv1.KReference{
APIVersion: "v1",
Kind: "ConfigMap",
Namespace: "knative-eventing",
Name: "kafka-channel",
},
},
},
},
},
ClusterDefault: &config.ClassAndBrokerConfig{
BrokerClass: eventing.MTChannelBrokerClassValue,
ClusterDefaultConfig: &config.DefaultConfig{
DefaultBrokerClass: eventing.MTChannelBrokerClassValue,
BrokerConfig: &config.BrokerConfig{
KReference: &duckv1.KReference{
APIVersion: "v1",
@ -133,6 +220,24 @@ var (
BackoffDelay: pointer.String("5s"),
},
},
BrokerClasses: map[string]*config.BrokerConfig{
"clusterBrokerClass1": {
KReference: &duckv1.KReference{
APIVersion: "v1",
Kind: "ConfigMap",
Namespace: "knative-eventing",
Name: "imc-channel-test",
},
},
"MTChannelBasedBroker": {
KReference: &duckv1.KReference{
APIVersion: "v1",
Kind: "ConfigMap",
Namespace: "knative-eventing",
Name: "imc-channel-in-broker-classes",
},
},
},
},
},
}
@ -408,7 +513,7 @@ func TestBrokerSetDefaults(t *testing.T) {
},
"missing deadLetterSink.ref.namespace, defaulted": {
initial: Broker{
ObjectMeta: metav1.ObjectMeta{Name: "broker", Namespace: "custom"},
ObjectMeta: metav1.ObjectMeta{Name: "broker", Namespace: "customns"},
Spec: BrokerSpec{
Config: &duckv1.KReference{
Kind: "ConfigMap",
@ -433,7 +538,7 @@ func TestBrokerSetDefaults(t *testing.T) {
expected: Broker{
ObjectMeta: metav1.ObjectMeta{
Name: "broker",
Namespace: "custom",
Namespace: "customns",
Annotations: map[string]string{
eventing.BrokerClassKey: "MTChannelBasedBroker",
},
@ -449,7 +554,7 @@ func TestBrokerSetDefaults(t *testing.T) {
DeadLetterSink: &duckv1.Destination{
Ref: &duckv1.KReference{
Kind: "Service",
Namespace: "custom",
Namespace: "customns",
Name: "handle-error",
APIVersion: "serving.knative.dev/v1",
},
@ -461,6 +566,78 @@ func TestBrokerSetDefaults(t *testing.T) {
},
},
},
"try to use the config from the brokerclasses": {
initial: Broker{
ObjectMeta: metav1.ObjectMeta{
Annotations: map[string]string{
eventing.BrokerClassKey: "clusterBrokerClass1",
},
},
},
expected: Broker{
ObjectMeta: metav1.ObjectMeta{
Namespace: "",
Annotations: map[string]string{
eventing.BrokerClassKey: "clusterBrokerClass1",
},
},
Spec: BrokerSpec{
Config: &duckv1.KReference{
Kind: "ConfigMap",
Namespace: "knative-eventing",
Name: "imc-channel-test",
APIVersion: "v1",
},
},
},
},
"if targeted broker class has config exist in both default config and broker classes ": {
initial: Broker{
ObjectMeta: metav1.ObjectMeta{
Annotations: map[string]string{
eventing.BrokerClassKey: "MTChannelBasedBroker",
},
},
},
expected: Broker{
ObjectMeta: metav1.ObjectMeta{
Namespace: "",
Annotations: map[string]string{
eventing.BrokerClassKey: "MTChannelBasedBroker",
},
},
Spec: BrokerSpec{
Config: &duckv1.KReference{
Kind: "ConfigMap",
Namespace: "knative-eventing",
Name: "imc-channel-in-broker-classes",
APIVersion: "v1",
},
},
},
},
"test and validate namespace broker config": {
initial: Broker{
ObjectMeta: metav1.ObjectMeta{Name: "broker", Namespace: "custom"},
},
expected: Broker{
ObjectMeta: metav1.ObjectMeta{
Name: "broker",
Namespace: "custom",
Annotations: map[string]string{
eventing.BrokerClassKey: "test-broker",
},
},
Spec: BrokerSpec{
Config: &duckv1.KReference{
Kind: "ConfigMap",
Namespace: "test-ns",
Name: "test-config",
APIVersion: "v1",
},
},
},
},
}
for n, tc := range testCases {
t.Run(n, func(t *testing.T) {

View File

@ -33,36 +33,48 @@ const (
func (b *Broker) Validate(ctx context.Context) *apis.FieldError {
ctx = apis.WithinParent(ctx, b.ObjectMeta)
cfg := config.FromContextOrDefaults(ctx)
var brConfig *config.ClassAndBrokerConfig
if cfg.Defaults != nil {
if c, ok := cfg.Defaults.NamespaceDefaultsConfig[b.GetNamespace()]; ok {
brConfig = c
} else {
brConfig = cfg.Defaults.ClusterDefault
}
}
withNS := ctx
if brConfig == nil || brConfig.DisallowDifferentNamespaceConfig == nil || !*brConfig.DisallowDifferentNamespaceConfig {
withNS = apis.AllowDifferentNamespace(ctx)
}
var errs *apis.FieldError
withNS := determineNamespaceAllowance(ctx, cfg.Defaults)
// Make sure a BrokerClassAnnotation exists
var errs *apis.FieldError
if bc, ok := b.GetAnnotations()[BrokerClassAnnotationKey]; !ok || bc == "" {
errs = errs.Also(apis.ErrMissingField(BrokerClassAnnotationKey))
}
// Further validation logic
errs = errs.Also(b.Spec.Validate(withNS).ViaField("spec"))
if apis.IsInUpdate(ctx) {
original := apis.GetBaseline(ctx).(*Broker)
errs = errs.Also(b.CheckImmutableFields(ctx, original))
}
return errs
}
// Determine if the namespace allowance based on the given configuration
func determineNamespaceAllowance(ctx context.Context, brConfig *config.Defaults) context.Context {
// If there is no configurations set, allow different namespace by default
if brConfig == nil || (brConfig.NamespaceDefaultsConfig == nil && brConfig.ClusterDefaultConfig == nil) {
return apis.AllowDifferentNamespace(ctx)
}
namespace := apis.ParentMeta(ctx).Namespace
nsConfig := brConfig.NamespaceDefaultsConfig[namespace]
// Check if the namespace disallows different namespace first
if nsConfig == nil || nsConfig.DisallowDifferentNamespaceConfig == nil || !*nsConfig.DisallowDifferentNamespaceConfig {
// If there is no namespace specific configuration or DisallowDifferentNamespaceConfig is false, check the cluster level configuration
if brConfig.ClusterDefaultConfig == nil || brConfig.ClusterDefaultConfig.DisallowDifferentNamespaceConfig == nil || !*brConfig.ClusterDefaultConfig.DisallowDifferentNamespaceConfig {
// If there is no cluster level configuration or DisallowDifferentNamespaceConfig in cluster level is false, allow different namespace
return apis.AllowDifferentNamespace(ctx)
}
}
// If we reach here, it means DisallowDifferentNamespaceConfig is true at either level, no need to explicitly disallow, just return the original context
return ctx
}
func (bs *BrokerSpec) Validate(ctx context.Context) *apis.FieldError {
var errs *apis.FieldError

View File

@ -197,7 +197,7 @@ func TestValidate(t *testing.T) {
cfg: &config.Config{
Defaults: &config.Defaults{
NamespaceDefaultsConfig: nil,
ClusterDefault: &config.ClassAndBrokerConfig{
ClusterDefaultConfig: &config.DefaultConfig{
DisallowDifferentNamespaceConfig: pointer.Bool(true),
},
},
@ -225,7 +225,7 @@ func TestValidate(t *testing.T) {
name: "invalid config, cross namespace disallowed, namespace wide",
cfg: &config.Config{
Defaults: &config.Defaults{
NamespaceDefaultsConfig: map[string]*config.ClassAndBrokerConfig{
NamespaceDefaultsConfig: map[string]*config.DefaultConfig{
"ns1": {DisallowDifferentNamespaceConfig: pointer.Bool(true)},
},
},
@ -253,7 +253,7 @@ func TestValidate(t *testing.T) {
name: "valid config, cross namespace allowed, namespace wide",
cfg: &config.Config{
Defaults: &config.Defaults{
NamespaceDefaultsConfig: map[string]*config.ClassAndBrokerConfig{
NamespaceDefaultsConfig: map[string]*config.DefaultConfig{
"ns1": {DisallowDifferentNamespaceConfig: pointer.Bool(true)},
},
},

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

@ -28,4 +28,14 @@ func (ep *EventPolicy) SetDefaults(ctx context.Context) {
}
func (ets *EventPolicySpec) SetDefaults(ctx context.Context) {
for i := range ets.From {
ets.From[i].SetDefaults(ctx)
}
}
func (from *EventPolicySpecFrom) SetDefaults(ctx context.Context) {
if from.Ref != nil && from.Ref.Namespace == "" {
// default to event policies namespace
from.Ref.Namespace = apis.ParentMeta(ctx).Namespace
}
}

View File

@ -20,6 +20,8 @@ import (
"context"
"testing"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"github.com/google/go-cmp/cmp"
)
@ -32,6 +34,36 @@ func TestEventPolicyDefaults(t *testing.T) {
initial: EventPolicy{},
expected: EventPolicy{},
},
"default .spec.from[].namespace": {
initial: EventPolicy{
ObjectMeta: metav1.ObjectMeta{
Namespace: "my-ns",
},
Spec: EventPolicySpec{
From: []EventPolicySpecFrom{
{
Ref: &EventPolicyFromReference{
Namespace: "",
},
},
},
},
},
expected: EventPolicy{
ObjectMeta: metav1.ObjectMeta{
Namespace: "my-ns",
},
Spec: EventPolicySpec{
From: []EventPolicySpecFrom{
{
Ref: &EventPolicyFromReference{
Namespace: "my-ns",
},
},
},
},
},
},
}
for n, tc := range testCases {
t.Run(n, func(t *testing.T) {

View File

@ -20,9 +20,12 @@ import (
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"
eventingv1 "knative.dev/eventing/pkg/apis/eventing/v1"
)
// +genclient
@ -71,6 +74,14 @@ type EventPolicySpec struct {
// From is the list of sources or oidc identities, which are allowed to send events to the targets (.spec.to).
From []EventPolicySpecFrom `json:"from,omitempty"`
// Filters is the list of SubscriptoinsApi filters which determine whether or not the event is accepted.
// It is an array of filter expressions that evaluate to true or false.
// If any filter expression in the array evaluates to false, the event will not
// pass the target resource's ingress. Absence of any filters implies that the filters
// always evaluate to true.
// +optional
Filters []eventingv1.SubscriptionsAPIFilter `json:"filters,omitempty"`
}
type EventPolicySpecTo struct {

View File

@ -20,6 +20,7 @@ import (
"context"
"strings"
eventingv1 "knative.dev/eventing/pkg/apis/eventing/v1"
"knative.dev/eventing/pkg/apis/feature"
"knative.dev/pkg/apis"
)
@ -60,6 +61,8 @@ func (ets *EventPolicySpec) Validate(ctx context.Context) *apis.FieldError {
}
}
err = err.Also(eventingv1.ValidateSubscriptionAPIFiltersList(ctx, ets.Filters).ViaField("filters"))
return err
}

View File

@ -21,6 +21,7 @@ import (
"testing"
"github.com/google/go-cmp/cmp"
eventingv1 "knative.dev/eventing/pkg/apis/eventing/v1"
"knative.dev/eventing/pkg/apis/feature"
"knative.dev/pkg/apis"
"knative.dev/pkg/ptr"
@ -294,6 +295,45 @@ func TestEventPolicySpecValidationWithOIDCAuthenticationFeatureFlagEnabled(t *te
return nil
}(),
},
{
name: "valid, from.sub exactly '*', valid filters",
ep: &EventPolicy{
Spec: EventPolicySpec{
From: []EventPolicySpecFrom{{
Sub: ptr.String("*"),
}},
Filters: []eventingv1.SubscriptionsAPIFilter{
{
Prefix: map[string]string{"type": "example"},
},
},
},
},
want: func() *apis.FieldError {
return nil
}(),
},
{
name: "invalid, from.sub exactly '*', invalid cesql filter",
ep: &EventPolicy{
Spec: EventPolicySpec{
From: []EventPolicySpecFrom{{
Sub: ptr.String("*"),
}},
Filters: []eventingv1.SubscriptionsAPIFilter{
{
CESQL: "type LIKE id",
},
},
},
},
want: func() *apis.FieldError {
return apis.ErrInvalidValue("type LIKE id", "cesql", "parse error: syntax error: |failed to parse LIKE expression: the pattern was not a string literal").
ViaFieldIndex("filters", 0).
ViaField("spec")
}(),
},
}
for _, test := range tests {

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

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

View File

@ -0,0 +1,34 @@
/*
Copyright 2020 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"
"knative.dev/pkg/apis"
)
// ConvertTo implements apis.Convertible
func (ep *RequestReply) ConvertTo(ctx context.Context, obj apis.Convertible) error {
return fmt.Errorf("v1alpha1 is the highest known version, got: %T", obj)
}
// ConvertFrom implements apis.Convertible
func (ep *RequestReply) ConvertFrom(ctx context.Context, obj apis.Convertible) error {
return fmt.Errorf("v1alpha1 is the highest known version, got: %T", obj)
}

View File

@ -14,26 +14,21 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
package upgrade
package v1alpha1
import (
"context"
"testing"
cloudevents "github.com/cloudevents/sdk-go/v2"
"knative.dev/eventing/test/e2e/helpers"
"knative.dev/eventing/test/lib"
)
var channelTestRunner lib.ComponentsTestRunner
func TestRequestReplyConversionHighestVersion(t *testing.T) {
good, bad := &RequestReply{}, &RequestReply{}
func runSmokeTest(t *testing.T) {
helpers.SingleEventForChannelTestHelper(
context.Background(),
t,
cloudevents.EncodingBinary,
helpers.SubscriptionV1,
"",
channelTestRunner,
)
if err := good.ConvertTo(context.Background(), bad); err == nil {
t.Errorf("ConvertTo() = %#v, wanted error", bad)
}
if err := good.ConvertFrom(context.Background(), bad); err == nil {
t.Errorf("ConvertFrom() = %#v, wanted error", good)
}
}

View File

@ -0,0 +1,44 @@
/*
Copyright 2020 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"
"k8s.io/utils/ptr"
"knative.dev/eventing/pkg/apis/feature"
"knative.dev/pkg/apis"
)
func (rr *RequestReply) SetDefaults(ctx context.Context) {
ctx = apis.WithinParent(ctx, rr.ObjectMeta)
rr.Spec.SetDefaults(ctx)
}
func (rrs *RequestReplySpec) SetDefaults(ctx context.Context) {
if rrs.Timeout == nil || *rrs.Timeout == "" {
rrs.Timeout = ptr.To(feature.FromContextOrDefaults(ctx).RequestReplyDefaultTimeout())
}
if rrs.CorrelationAttribute == "" {
rrs.CorrelationAttribute = "correlationid"
}
if rrs.ReplyAttribute == "" {
rrs.ReplyAttribute = "replyid"
}
}

View File

@ -0,0 +1,68 @@
/*
Copyright 2020 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"
"testing"
"k8s.io/utils/ptr"
"github.com/google/go-cmp/cmp"
)
func TestRequestReplyDefaults(t *testing.T) {
testCases := map[string]struct {
initial RequestReply
expected RequestReply
}{
"nil spec": {
initial: RequestReply{},
expected: RequestReply{
Spec: RequestReplySpec{
Timeout: ptr.To("30s"),
CorrelationAttribute: "correlationid",
ReplyAttribute: "replyid",
},
},
},
"does not override existing values": {
initial: RequestReply{
Spec: RequestReplySpec{
Timeout: ptr.To("40s"),
CorrelationAttribute: "othercorrelationid",
ReplyAttribute: "otherreplyid",
},
},
expected: RequestReply{
Spec: RequestReplySpec{
Timeout: ptr.To("40s"),
CorrelationAttribute: "othercorrelationid",
ReplyAttribute: "otherreplyid",
},
},
},
}
for n, tc := range testCases {
t.Run(n, func(t *testing.T) {
tc.initial.SetDefaults(context.TODO())
if diff := cmp.Diff(tc.expected, tc.initial); diff != "" {
t.Fatal("Unexpected defaults (-want, +got):", diff)
}
})
}
}

View File

@ -0,0 +1,106 @@
/*
Copyright 2024 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 (
"knative.dev/pkg/apis"
v1 "knative.dev/pkg/apis/duck/v1"
)
var requestReplyCondSet = apis.NewLivingConditionSet(RequestReplyConditionIngress, RequestReplyConditionTriggers, RequestReplyConditionAddressable, RequestReplyConditionEventPoliciesReady)
const (
RequestReplyConditionReady = apis.ConditionReady
RequestReplyConditionIngress apis.ConditionType = "IngressReady"
RequestReplyConditionTriggers apis.ConditionType = "TriggersReady"
RequestReplyConditionAddressable apis.ConditionType = "Addressable"
RequestReplyConditionEventPoliciesReady apis.ConditionType = "EventPoliciesReady"
)
// GetConditionSet retrieves the condition set for this resource. Implements the KRShaped interface.
func (*RequestReply) GetConditionSet() apis.ConditionSet {
return requestReplyCondSet
}
func (*RequestReplyStatus) GetConditionSet() apis.ConditionSet {
return requestReplyCondSet
}
// GetCondition returns the condition currently associated with the given type, or nil.
func (rr *RequestReplyStatus) GetCondition(t apis.ConditionType) *apis.Condition {
return requestReplyCondSet.Manage(rr).GetCondition(t)
}
// IsReady returns true if the resource is ready overall.
func (rr *RequestReplyStatus) IsReady() bool {
return rr.GetTopLevelCondition().IsTrue()
}
// GetTopLevelCondition returns the top level Condition.
func (rr *RequestReplyStatus) GetTopLevelCondition() *apis.Condition {
return requestReplyCondSet.Manage(rr).GetTopLevelCondition()
}
// InitializeConditions sets relevant unset conditions to Unknown state.
func (rr *RequestReplyStatus) InitializeConditions() {
requestReplyCondSet.Manage(rr).InitializeConditions()
}
func (rr *RequestReplyStatus) SetAddress(address *v1.Addressable) {
rr.AddressStatus = v1.AddressStatus{
Address: address,
}
if address != nil && address.URL != nil {
rr.GetConditionSet().Manage(rr).MarkTrue(RequestReplyConditionAddressable)
rr.AddressStatus.Address.Name = &address.URL.Scheme
} else {
rr.GetConditionSet().Manage(rr).MarkFalse(RequestReplyConditionAddressable, "nil URL", "URL is nil")
}
}
func (rr *RequestReplyStatus) MarkTriggersReady() {
rr.GetConditionSet().Manage(rr).MarkTrue(RequestReplyConditionTriggers)
}
func (rr *RequestReplyStatus) MarkTriggersNotReadyWithReason(reason, messageFormat string, messageA ...interface{}) {
rr.GetConditionSet().Manage(rr).MarkUnknown(RequestReplyConditionTriggers, reason, messageFormat, messageA...)
}
func (rr *RequestReplyStatus) MarkIngressReady() {
rr.GetConditionSet().Manage(rr).MarkTrue(RequestReplyConditionIngress)
}
func (rr *RequestReplyStatus) MarkIngressNotReadyWithReason(reason, messageFormat string, messageA ...interface{}) {
rr.GetConditionSet().Manage(rr).MarkUnknown(RequestReplyConditionIngress, reason, messageFormat, messageA...)
}
func (rr *RequestReplyStatus) MarkEventPoliciesTrue() {
rr.GetConditionSet().Manage(rr).MarkTrue(RequestReplyConditionEventPoliciesReady)
}
func (rr *RequestReplyStatus) MarkEventPoliciesTrueWithReason(reason, messageFormat string, messageA ...interface{}) {
rr.GetConditionSet().Manage(rr).MarkTrueWithReason(RequestReplyConditionEventPoliciesReady, reason, messageFormat, messageA...)
}
func (rr *RequestReplyStatus) MarkEventPoliciesFailed(reason, messageFormat string, messageA ...interface{}) {
rr.GetConditionSet().Manage(rr).MarkFalse(RequestReplyConditionEventPoliciesReady, reason, messageFormat, messageA...)
}
func (rr *RequestReplyStatus) MarkEventPoliciesUnknown(reason, messageFormat string, messageA ...interface{}) {
rr.GetConditionSet().Manage(rr).MarkUnknown(RequestReplyConditionEventPoliciesReady, reason, messageFormat, messageA...)
}

View File

@ -0,0 +1,267 @@
/*
Copyright 2020 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/google/go-cmp/cmp"
corev1 "k8s.io/api/core/v1"
"k8s.io/utils/ptr"
"knative.dev/pkg/apis"
duckv1 "knative.dev/pkg/apis/duck/v1"
)
var (
requestReplyConditionReady = apis.Condition{
Type: RequestReplyConditionReady,
Status: corev1.ConditionTrue,
}
)
func TestRequestReplyGetConditionSet(t *testing.T) {
r := &RequestReply{}
if got, want := r.GetConditionSet().GetTopLevelConditionType(), apis.ConditionReady; got != want {
t.Errorf("GetTopLevelCondition=%v, want=%v", got, want)
}
}
func TestRequestReplyGetCondition(t *testing.T) {
tests := []struct {
name string
rrs *RequestReplyStatus
condQuery apis.ConditionType
want *apis.Condition
}{{
name: "single condition",
rrs: &RequestReplyStatus{
Status: duckv1.Status{
Conditions: []apis.Condition{
requestReplyConditionReady,
},
},
},
condQuery: apis.ConditionReady,
want: &eventPolicyConditionReady,
}}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
got := test.rrs.GetCondition(test.condQuery)
if diff := cmp.Diff(test.want, got); diff != "" {
t.Error("unexpected condition (-want, +got) =", diff)
}
})
}
}
func TestRequestReplyInitializeConditions(t *testing.T) {
tests := []struct {
name string
rrs *RequestReplyStatus
want *RequestReplyStatus
}{
{
name: "empty status",
rrs: &RequestReplyStatus{},
want: &RequestReplyStatus{
Status: duckv1.Status{
Conditions: []apis.Condition{
{
Type: RequestReplyConditionAddressable,
Status: corev1.ConditionUnknown,
},
{
Type: RequestReplyConditionEventPoliciesReady,
Status: corev1.ConditionUnknown,
},
{
Type: RequestReplyConditionIngress,
Status: corev1.ConditionUnknown,
},
{
Type: RequestReplyConditionReady,
Status: corev1.ConditionUnknown,
},
{
Type: RequestReplyConditionTriggers,
Status: corev1.ConditionUnknown,
},
},
},
},
},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
test.rrs.InitializeConditions()
if diff := cmp.Diff(test.want, test.rrs, ignoreAllButTypeAndStatus); diff != "" {
t.Error("unexpected conditions (-want, +got) =", diff)
}
})
}
}
func TestRequestReplyReadyCondition(t *testing.T) {
tests := []struct {
name string
rrs *RequestReplyStatus
markAddresableSucceeded *bool
markIngressReadySucceeded *bool
markTriggersReadySucceeded *bool
markEventPoliciesReadySucceeded *bool
wantReady bool
}{
{
name: "Initially everything is Unknown, Auth&SubjectsResolved marked as true, EP should become Ready",
rrs: &RequestReplyStatus{
Status: duckv1.Status{
Conditions: []apis.Condition{
{Type: RequestReplyConditionReady, Status: corev1.ConditionUnknown},
{Type: RequestReplyConditionAddressable, Status: corev1.ConditionUnknown},
{Type: RequestReplyConditionIngress, Status: corev1.ConditionUnknown},
{Type: RequestReplyConditionTriggers, Status: corev1.ConditionUnknown},
{Type: RequestReplyConditionEventPoliciesReady, Status: corev1.ConditionUnknown},
},
},
},
markAddresableSucceeded: ptr.To(true),
markIngressReadySucceeded: ptr.To(true),
markTriggersReadySucceeded: ptr.To(true),
markEventPoliciesReadySucceeded: ptr.To(true),
wantReady: true,
},
{
name: "Initially everything is Ready, Addressable set to false, RR should become False",
rrs: &RequestReplyStatus{
Status: duckv1.Status{
Conditions: []apis.Condition{
{Type: RequestReplyConditionReady, Status: corev1.ConditionTrue},
{Type: RequestReplyConditionAddressable, Status: corev1.ConditionTrue},
{Type: RequestReplyConditionIngress, Status: corev1.ConditionTrue},
{Type: RequestReplyConditionTriggers, Status: corev1.ConditionTrue},
{Type: RequestReplyConditionEventPoliciesReady, Status: corev1.ConditionTrue},
},
},
},
markAddresableSucceeded: ptr.To(false),
markIngressReadySucceeded: ptr.To(true),
markTriggersReadySucceeded: ptr.To(true),
markEventPoliciesReadySucceeded: ptr.To(true),
wantReady: false,
},
{
name: "Initially everything is Ready, Ingress set to false, RR should become False",
rrs: &RequestReplyStatus{
Status: duckv1.Status{
Conditions: []apis.Condition{
{Type: RequestReplyConditionReady, Status: corev1.ConditionTrue},
{Type: RequestReplyConditionAddressable, Status: corev1.ConditionTrue},
{Type: RequestReplyConditionIngress, Status: corev1.ConditionTrue},
{Type: RequestReplyConditionTriggers, Status: corev1.ConditionTrue},
{Type: RequestReplyConditionEventPoliciesReady, Status: corev1.ConditionTrue},
},
},
},
markAddresableSucceeded: ptr.To(true),
markIngressReadySucceeded: ptr.To(false),
markTriggersReadySucceeded: ptr.To(true),
markEventPoliciesReadySucceeded: ptr.To(true),
wantReady: false,
},
{
name: "Initially everything is Ready, Trigger set to false, RR should become False",
rrs: &RequestReplyStatus{
Status: duckv1.Status{
Conditions: []apis.Condition{
{Type: RequestReplyConditionReady, Status: corev1.ConditionTrue},
{Type: RequestReplyConditionAddressable, Status: corev1.ConditionTrue},
{Type: RequestReplyConditionIngress, Status: corev1.ConditionTrue},
{Type: RequestReplyConditionTriggers, Status: corev1.ConditionTrue},
{Type: RequestReplyConditionEventPoliciesReady, Status: corev1.ConditionTrue},
},
},
},
markAddresableSucceeded: ptr.To(true),
markIngressReadySucceeded: ptr.To(true),
markTriggersReadySucceeded: ptr.To(false),
markEventPoliciesReadySucceeded: ptr.To(true),
wantReady: false,
},
{
name: "Initially everything is Ready, EPs set to false, RR should become False",
rrs: &RequestReplyStatus{
Status: duckv1.Status{
Conditions: []apis.Condition{
{Type: RequestReplyConditionReady, Status: corev1.ConditionTrue},
{Type: RequestReplyConditionAddressable, Status: corev1.ConditionTrue},
{Type: RequestReplyConditionIngress, Status: corev1.ConditionTrue},
{Type: RequestReplyConditionTriggers, Status: corev1.ConditionTrue},
{Type: RequestReplyConditionEventPoliciesReady, Status: corev1.ConditionTrue},
},
},
},
markAddresableSucceeded: ptr.To(true),
markIngressReadySucceeded: ptr.To(true),
markTriggersReadySucceeded: ptr.To(true),
markEventPoliciesReadySucceeded: ptr.To(false),
wantReady: false,
},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
if test.markAddresableSucceeded != nil {
if *test.markAddresableSucceeded {
url, _ := apis.ParseURL("http://localhost:8080")
test.rrs.SetAddress(&duckv1.Addressable{URL: url})
} else {
test.rrs.SetAddress(nil)
}
}
if test.markIngressReadySucceeded != nil {
if *test.markIngressReadySucceeded {
test.rrs.MarkIngressReady()
} else {
test.rrs.MarkIngressNotReadyWithReason("", "")
}
}
if test.markTriggersReadySucceeded != nil {
if *test.markTriggersReadySucceeded {
test.rrs.MarkTriggersReady()
} else {
test.rrs.MarkTriggersNotReadyWithReason("", "")
}
}
if test.markEventPoliciesReadySucceeded != nil {
if *test.markEventPoliciesReadySucceeded {
test.rrs.MarkEventPoliciesTrue()
} else {
test.rrs.MarkEventPoliciesFailed("", "")
}
}
rr := RequestReply{Status: *test.rrs}
got := rr.GetConditionSet().Manage(test.rrs).IsHappy()
if test.wantReady != got {
t.Errorf("unexpected readiness: want %v, got %v", test.wantReady, got)
}
})
}
}

View File

@ -0,0 +1,122 @@
/*
Copyright 2020 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 (
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"
eventingduckv1 "knative.dev/eventing/pkg/apis/duck/v1"
)
// +genclient
// +genreconciler
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// RequestRepluy represents synchronous interface to sending and receiving events from a Broker.
type RequestReply struct {
metav1.TypeMeta `json:",inline"`
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// Spec defines the desired state of the EventPolicy.
Spec RequestReplySpec `json:"spec,omitempty"`
// Status represents the current state of the EventPolicy.
// This data may be out of date.
// +optional
Status RequestReplyStatus `json:"status,omitempty"`
}
var (
// Check that EventPolicy can be validated, can be defaulted, and has immutable fields.
_ apis.Validatable = (*RequestReply)(nil)
_ apis.Defaultable = (*RequestReply)(nil)
// Check that EventPolicy can return its spec untyped.
_ apis.HasSpec = (*RequestReply)(nil)
_ runtime.Object = (*RequestReply)(nil)
// Check that we can create OwnerReferences to an EventPolicy.
_ kmeta.OwnerRefable = (*RequestReply)(nil)
// Check that the type conforms to the duck Knative Resource shape.
_ duckv1.KRShaped = (*RequestReply)(nil)
)
type RequestReplySpec struct {
// BrokerRef contains the reference to the broker the RequestReply sends events to.
BrokerRef duckv1.KReference `json:"brokerRef"`
CorrelationAttribute string `json:"correlationAttribute"`
ReplyAttribute string `json:"replyAttribute"`
Timeout *string `json:"timeout,omitempty"`
Delivery *eventingduckv1.DeliverySpec `json:"delivery,omitempty"`
Secrets []string `json:"secrets"`
}
// RequestReplyStatus represents the current state of a RequestReply.
type RequestReplyStatus struct {
// inherits duck/v1 Status, 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.
duckv1.Status `json:",inline"`
// AddressStatus is the part where the RequestReply fulfills the Addressable contract.
// It exposes the endpoint as an URI to get events delivered.
// +optional
duckv1.AddressStatus `json:",inline"`
// AppliedEventPoliciesStatus contains the list of EventPolicies which apply to this Broker.
// +optional
eventingduckv1.AppliedEventPoliciesStatus `json:",inline"`
}
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// RequestReplyList is a collection of RequestReplies.
type RequestReplyList struct {
metav1.TypeMeta `json:",inline"`
// +optional
metav1.ListMeta `json:"metadata,omitempty"`
Items []RequestReply `json:"items"`
}
// GetGroupVersionKind returns GroupVersionKind for EventPolicy
func (rr *RequestReply) GetGroupVersionKind() schema.GroupVersionKind {
return SchemeGroupVersion.WithKind("RequestReply")
}
// GetUntypedSpec returns the spec of the EventPolicy.
func (rr *RequestReply) GetUntypedSpec() interface{} {
return rr.Spec
}
// GetStatus retrieves the status of the EventPolicy. Implements the KRShaped interface.
func (rr *RequestReply) GetStatus() *duckv1.Status {
return &rr.Status.Status
}

View File

@ -14,23 +14,26 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
package resources
package v1alpha1
import (
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"knative.dev/pkg/kmeta"
"testing"
)
// MakeServiceAccount creates a ServiceAccount object for the given referable object
func MakeServiceAccount(obj kmeta.OwnerRefable, name string) *corev1.ServiceAccount {
return &corev1.ServiceAccount{
ObjectMeta: metav1.ObjectMeta{
Namespace: obj.GetObjectMeta().GetNamespace(),
Name: name,
OwnerReferences: []metav1.OwnerReference{
*kmeta.NewControllerRef(obj),
},
},
func TestRequestReplyGetStatus(t *testing.T) {
r := &RequestReply{
Status: RequestReplyStatus{},
}
if got, want := r.GetStatus(), &r.Status.Status; got != want {
t.Errorf("GetStatus=%v, want=%v", got, want)
}
}
func TestRequestReply_GetGroupVersionKind(t *testing.T) {
src := RequestReply{}
gvk := src.GetGroupVersionKind()
if gvk.Kind != "RequestReply" {
t.Errorf("Should be RequestReply, got %s.", gvk.Kind)
}
}

View File

@ -0,0 +1,83 @@
/*
Copyright 2020 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"
"strings"
"github.com/rickb777/date/period"
"knative.dev/pkg/apis"
)
func (rr *RequestReply) Validate(ctx context.Context) *apis.FieldError {
ctx = apis.WithinParent(ctx, rr.ObjectMeta)
return rr.Spec.Validate(ctx).ViaField("spec")
}
func (rrs *RequestReplySpec) Validate(ctx context.Context) *apis.FieldError {
var errs *apis.FieldError
if ke := rrs.BrokerRef.Validate(ctx); ke != nil {
errs = errs.Also(ke.ViaField("brokerRef"))
}
if !strings.EqualFold(rrs.BrokerRef.Kind, "broker") {
errs = errs.Also(apis.ErrInvalidValue(rrs.BrokerRef.Kind, ".kind", "brokerRef kind must be Broker").ViaField("brokerRef"))
}
if rrs.BrokerRef.Namespace != "" {
errs = errs.Also(apis.ErrDisallowedFields("namespace").ViaField("brokerRef"))
}
if rrs.Delivery != nil {
if de := rrs.Delivery.Validate(ctx); de != nil {
errs = errs.Also(de.ViaField("delivery"))
}
}
if rrs.Timeout != nil {
timeout, err := period.Parse(*rrs.Timeout)
if err != nil || timeout.IsZero() || timeout.IsNegative() {
errs = errs.Also(apis.ErrInvalidValue(*rrs.Timeout, "timeout"))
}
}
if len(rrs.Secrets) == 0 {
errs = errs.Also(apis.ErrInvalidValue(rrs.Secrets, "secrets", "one or more secrets must be provided"))
}
if rrs.CorrelationAttribute == "" ||
rrs.CorrelationAttribute == "id" ||
rrs.CorrelationAttribute == "course" ||
rrs.CorrelationAttribute == "specversion" ||
rrs.CorrelationAttribute == "type" {
errs = errs.Also(apis.ErrInvalidValue(rrs.CorrelationAttribute, "correlationattribute", "correlationattribute must be non-empty and cannot be a core cloudevent attribute (id, type, specversion, source)"))
}
if rrs.ReplyAttribute == "" ||
rrs.ReplyAttribute == "id" ||
rrs.ReplyAttribute == "course" ||
rrs.ReplyAttribute == "specversion" ||
rrs.ReplyAttribute == "type" {
errs = errs.Also(apis.ErrInvalidValue(rrs.ReplyAttribute, "replyattribute", "replyattribute must be non-empty and cannot be a core cloudevent attribute (id, type, specversion, source)"))
}
return errs
}

View File

@ -0,0 +1,63 @@
/*
Copyright 2020 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"
"testing"
"github.com/google/go-cmp/cmp"
"knative.dev/pkg/apis"
duckv1 "knative.dev/pkg/apis/duck/v1"
)
func TestRequestReplyValidation(t *testing.T) {
tests := []struct {
name string
rr *RequestReply
want *apis.FieldError
}{
{
name: "valid, all required fields set",
rr: &RequestReply{
Spec: RequestReplySpec{
ReplyAttribute: "reply",
CorrelationAttribute: "correlate",
Secrets: []string{"secret1"},
BrokerRef: duckv1.KReference{
APIVersion: "eventing.knative.dev/v1",
Kind: "Broker",
Name: "broker",
},
},
},
want: func() *apis.FieldError {
return nil
}(),
},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
ctx := apis.WithinCreate(context.Background())
got := test.rr.Validate(ctx)
if diff := cmp.Diff(test.want.Error(), got.Error()); diff != "" {
t.Errorf("%s: Validate EventPolicySpec (-want, +got) = %v", test.name, diff)
}
})
}
}

View File

@ -24,6 +24,9 @@ package v1alpha1
import (
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
runtime "k8s.io/apimachinery/pkg/runtime"
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.
@ -146,6 +149,13 @@ func (in *EventPolicySpec) DeepCopyInto(out *EventPolicySpec) {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
if in.Filters != nil {
in, out := &in.Filters, &out.Filters
*out = make([]eventingv1.SubscriptionsAPIFilter, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
return
}
@ -248,3 +258,302 @@ func (in *EventPolicyToReference) DeepCopy() *EventPolicyToReference {
in.DeepCopyInto(out)
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
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 RequestReply.
func (in *RequestReply) DeepCopy() *RequestReply {
if in == nil {
return nil
}
out := new(RequestReply)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *RequestReply) 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 *RequestReplyList) DeepCopyInto(out *RequestReplyList) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ListMeta.DeepCopyInto(&out.ListMeta)
if in.Items != nil {
in, out := &in.Items, &out.Items
*out = make([]RequestReply, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RequestReplyList.
func (in *RequestReplyList) DeepCopy() *RequestReplyList {
if in == nil {
return nil
}
out := new(RequestReplyList)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *RequestReplyList) 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 *RequestReplySpec) DeepCopyInto(out *RequestReplySpec) {
*out = *in
in.BrokerRef.DeepCopyInto(&out.BrokerRef)
if in.Timeout != nil {
in, out := &in.Timeout, &out.Timeout
*out = new(string)
**out = **in
}
if in.Delivery != nil {
in, out := &in.Delivery, &out.Delivery
*out = new(apisduckv1.DeliverySpec)
(*in).DeepCopyInto(*out)
}
if in.Secrets != nil {
in, out := &in.Secrets, &out.Secrets
*out = make([]string, len(*in))
copy(*out, *in)
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RequestReplySpec.
func (in *RequestReplySpec) DeepCopy() *RequestReplySpec {
if in == nil {
return nil
}
out := new(RequestReplySpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *RequestReplyStatus) DeepCopyInto(out *RequestReplyStatus) {
*out = *in
in.Status.DeepCopyInto(&out.Status)
in.AddressStatus.DeepCopyInto(&out.AddressStatus)
in.AppliedEventPoliciesStatus.DeepCopyInto(&out.AppliedEventPoliciesStatus)
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RequestReplyStatus.
func (in *RequestReplyStatus) DeepCopy() *RequestReplyStatus {
if in == nil {
return nil
}
out := new(RequestReplyStatus)
in.DeepCopyInto(out)
return out
}

View File

@ -50,12 +50,36 @@ func TestEventTypeSpecValidation(t *testing.T) {
ets *EventTypeSpec
want *apis.FieldError
}{{
name: "invalid eventtype type",
name: "invalid/empty eventtype",
ets: &EventTypeSpec{},
want: func() *apis.FieldError {
fe := apis.ErrMissingField("attributes.id", "attributes.source", "attributes.specversion", "attributes.type")
return fe
}(),
}, {
name: "partially invalid eventtype type",
ets: &EventTypeSpec{
Attributes: []EventAttributeDefinition{
{
Name: "source",
Value: testSource.String(),
Required: true,
},
{
Name: "specversion",
Value: "v1",
Required: true,
},
{
Name: "id",
Required: true,
},
},
},
want: func() *apis.FieldError {
fe := apis.ErrMissingField("attributes.type")
return fe
}(),
}, {
name: "valid eventtype",
ets: &EventTypeSpec{
@ -86,6 +110,46 @@ func TestEventTypeSpecValidation(t *testing.T) {
},
},
},
}, {
name: "valid eventtype with extensions and optional attributes",
ets: &EventTypeSpec{
Reference: &duckv1.KReference{
APIVersion: "eventing.knative.dev/v1",
Kind: "Broker",
Name: "test-broker",
},
Attributes: []EventAttributeDefinition{
{
Name: "type",
Value: "event-type",
Required: true,
},
{
Name: "source",
Value: testSource.String(),
Required: true,
},
{
Name: "specversion",
Value: "v1",
Required: true,
},
{
Name: "subject",
Value: "foo.png",
Required: false,
},
{
Name: "customattribute",
Value: "value",
Required: false,
},
{
Name: "id",
Required: true,
},
},
},
},
}

View File

@ -64,6 +64,13 @@ const (
// This configuration is applied when there is no EventPolicy with a "to" referencing a given
// resource.
AuthorizationAllowSameNamespace Flag = "Allow-Same-Namespace"
// DefaultOIDCDiscoveryURL is the default OIDC Discovery URL used in most Kubernetes clusters.
DefaultOIDCDiscoveryBaseURL Flag = "https://kubernetes.default.svc"
// DefaultRequestReplyTimeout is a value for RequestReplyDefaultTimeout that indicates to timeout
// a RequestReply resource after 30 seconds by default.
DefaultRequestReplyTimeout Flag = "30s"
)
// Flags is a map containing all the enabled/disabled flags for the experimental features.
@ -72,15 +79,17 @@ type Flags map[string]Flag
func newDefaults() Flags {
return map[string]Flag{
KReferenceGroup: Disabled,
DeliveryRetryAfter: Disabled,
DeliveryTimeout: Enabled,
KReferenceMapping: Disabled,
TransportEncryption: Disabled,
OIDCAuthentication: Disabled,
EvenTypeAutoCreate: Disabled,
NewAPIServerFilters: Disabled,
AuthorizationDefaultMode: AuthorizationAllowSameNamespace,
KReferenceGroup: Disabled,
DeliveryRetryAfter: Disabled,
DeliveryTimeout: Enabled,
KReferenceMapping: Disabled,
TransportEncryption: Disabled,
OIDCAuthentication: Disabled,
EvenTypeAutoCreate: Disabled,
NewAPIServerFilters: Disabled,
AuthorizationDefaultMode: AuthorizationAllowSameNamespace,
OIDCDiscoveryBaseURL: DefaultOIDCDiscoveryBaseURL,
RequestReplyDefaultTimeout: DefaultRequestReplyTimeout,
}
}
@ -134,6 +143,33 @@ func (e Flags) IsAuthorizationDefaultModeSameNamespace() bool {
return e != nil && e[AuthorizationDefaultMode] == AuthorizationAllowSameNamespace
}
func (e Flags) OIDCDiscoveryBaseURL() string {
if e == nil {
return string(DefaultOIDCDiscoveryBaseURL)
}
//nolint:staticcheck
discoveryUrl, ok := e[OIDCDiscoveryBaseURL]
if !ok {
return string(DefaultOIDCDiscoveryBaseURL)
}
return string(discoveryUrl)
}
func (e Flags) RequestReplyDefaultTimeout() string {
if e == nil {
return string(DefaultRequestReplyTimeout)
}
timeout, ok := e[RequestReplyDefaultTimeout]
if !ok {
return string(DefaultRequestReplyTimeout)
}
return string(timeout)
}
func (e Flags) String() string {
return fmt.Sprintf("%+v", map[string]Flag(e))
}
@ -183,7 +219,7 @@ func NewFlagsConfigFromMap(data map[string]string) (Flags, error) {
flags[sanitizedKey] = AuthorizationDenyAll
} else if sanitizedKey == AuthorizationDefaultMode && strings.EqualFold(v, string(AuthorizationAllowSameNamespace)) {
flags[sanitizedKey] = AuthorizationAllowSameNamespace
} else if strings.Contains(k, NodeSelectorLabel) {
} else if strings.Contains(k, NodeSelectorLabel) || sanitizedKey == OIDCDiscoveryBaseURL {
flags[sanitizedKey] = Flag(v)
} else {
flags[k] = Flag(v)

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