client/vendor/knative.dev/pkg/apis/duck
knative-automation cfed6d7653
upgrade to latest dependencies (#1694)
bumping knative.dev/eventing c1b0ea6...f69e181:
  > f69e181 Update community files (# 6435)
  > 159f4ec upgrade to latest dependencies (# 6432)
  > 33d1be7 Bump PodDisruptionBudget to policy/v1 (# 6424)
  > ee47ed1 Update community files (# 6431)
  > 9c41f75 upgrade to latest dependencies (# 6428)
  > eaec729 Update actions (# 6427)
  > 7763e03 upgrade to latest dependencies (# 6423)
  > 0866e62 Report last error for unavailability periods (# 6381)
bumping knative.dev/networking 07c9d76...716a8b8:
  > 716a8b8 Update community files (# 687)
  > 10dbbe0 Update community files (# 686)
  > a44888a Update actions (# 685)
bumping knative.dev/pkg 9c5a731...97eb150:
  > 97eb150 Update community files (# 2541)
  > 5569169 update boilerplate date (# 2539)
  > 85965e1 upgrade to latest dependencies (# 2540)
  > f4ae0af Update community files (# 2538)
  > f5db225 Drop `UserInfo` from logger tagging in webhook. (# 2535)
  > 1777513 Update actions (# 2536)
bumping knative.dev/hack dc6c287...65c463a:
  > 65c463a Update community files (# 195)
  > e7d6365 Add [skip-dot-release] feature (# 189)
  > 33ce6af Update community files (# 190)
bumping knative.dev/serving 3573163...df215c7:
  > df215c7 Update community files (# 13076)
  > 58cce54 Support config to deploy internal certificates automatically (# 13005)
  > 25de812 Fix webhook config drift issue (# 13061)
  > ee386a1 Update community files (# 13068)
  > d9cb5f0 Update net-istio nightly (# 13067)
  > 189003d Update net-contour nightly (# 13066)
  > d0367df Update net-gateway-api nightly (# 13064)
  > 278cedc Update net-certmanager nightly (# 13065)
  > 1da6f33 Update actions (# 13063)
  > cd85b44 Update net-gateway-api nightly (# 13062)
  > 752c336 Allow calls to test.Setup to disable logstream (# 13046)
  > 8f62874 Update net-certmanager nightly (# 13040)
  > 2b7f301 Update net-istio nightly (# 13031)
  > 6eccc36 Update net-gateway-api nightly (# 13029)
  > 38c5dbc Update net-contour nightly (# 13032)
  > f25a0df Temporarily disable flaky kind test (# 13055)

Signed-off-by: Knative Automation <automation@knative.team>
2022-07-01 12:42:42 +00:00
..
ducktypes Track floating deps at master (#932) 2020-07-15 07:42:32 -07:00
v1 upgrade to latest dependencies (#1694) 2022-07-01 12:42:42 +00:00
v1beta1 upgrade to latest dependencies (#1694) 2022-07-01 12:42:42 +00:00
ABOUT.md upgrade to latest dependencies (#1448) 2021-09-13 08:56:32 -07:00
README.md Pin deps back to master (#1082) 2020-10-30 08:15:35 -07:00
cached.go [Release-0.18] Pin knative deps to release-0.18 (#1025) 2020-09-23 11:58:41 -07:00
const.go migrate to the new eventing legacy client (#621) 2020-01-21 23:15:23 -08:00
doc.go Update serving dependency to 0.8; change all import paths (#368) 2019-08-15 18:09:08 -07:00
enqueue.go [Release-0.18] Pin knative deps to release-0.18 (#1025) 2020-09-23 11:58:41 -07:00
interface.go [Release-0.18] Pin knative deps to release-0.18 (#1025) 2020-09-23 11:58:41 -07:00
patch.go upgrade to latest dependencies (#1334) 2021-06-02 14:15:45 -07:00
register.go upgrade to latest dependencies (#1324) 2021-05-26 08:07:28 -07:00
typed.go [Release-0.18] Pin knative deps to release-0.18 (#1025) 2020-09-23 11:58:41 -07:00
unstructured.go Vendor eventing v0.11.0 and run tests against it (#546) 2019-12-11 00:21:48 -08:00
verify.go Pin deps back to master (#1082) 2020-10-30 08:15:35 -07:00

README.md

Duck Types

Knative leverages duck-typing to interact with resources inside of Kubernetes without explicit knowledge of the full resource shape. knative/pkg defines three duck types that are used throughout Knative: Addressable, Binding, and Source.

For APIs leveraging ObjectReference, the context of the resource in question identifies the duck-type. To enable the case where no ObjectReference is used, we have labeled the Custom Resource Definition with the duck-type. Those labels are as follows:

Label Duck-Type
duck.knative.dev/addressable=true Addressable
duck.knative.dev/binding=true Binding
duck.knative.dev/source=true Source

Addressable Shape

Addressable is expected to be the following shape:

apiVersion: group/version
kind: Kind
status:
  address:
    url: http://host/path?query

Binding Shape

Binding is expected to be in the following shape:

(with direct subject)

apiVersion: group/version
kind: Kind
spec:
  subject:
    apiVersion: group/version
    kind: SomeKind
    namespace: the-namespace
    name: a-name

(with indirect subject)

apiVersion: group/version
kind: Kind
spec:
  subject:
    apiVersion: group/version
    kind: SomeKind
    namespace: the-namespace
    selector:
      matchLabels:
        key: value

Source Shape

Source is expected to be in the following shape:

(with ref sink)

apiVersion: group/version
kind: Kind
spec:
  sink:
    ref:
      apiVersion: group/version
      kind: AnAddressableKind
      name: a-name
  ceOverrides:
    extensions:
      key: value
status:
  observedGeneration: 1
  conditions:
    - type: Ready
      status: "True"
  sinkUri: http://host

(with uri sink)

apiVersion: group/version
kind: Kind
spec:
  sink:
    uri: http://host/path?query
  ceOverrides:
    extensions:
      key: value
status:
  observedGeneration: 1
  conditions:
    - type: Ready
      status: "True"
  sinkUri: http://host/path?query

(with ref and uri sink)

apiVersion: group/version
kind: Kind
spec:
  sink:
    ref:
      apiVersion: group/version
      kind: AnAddressableKind
      name: a-name
    uri: /path?query
  ceOverrides:
    extensions:
      key: value
status:
  observedGeneration: 1
  conditions:
    - type: Ready
      status: "True"
  sinkUri: http://host/path?query