update kubeflow dip-catalog

This commit is contained in:
ChanghoWoo
2025-01-13 02:31:27 +00:00
parent 1dc1181a03
commit 5451f16d72
1959 changed files with 602337 additions and 0 deletions
+2
View File
@@ -0,0 +1,2 @@
approvers:
+132
View File
@@ -0,0 +1,132 @@
# Knative
## Knative-Serving
The manifests for Knative Serving are based off the following:
- [Knative serving (v1.12.4)](https://github.com/knative/serving/releases/tag/knative-v1.12.4)
- [Knative ingress controller for Istio (v1.12.3)](https://github.com/knative-extensions/net-istio/releases/tag/knative-v1.12.3)
1. Download the knative-serving manifests with the following commands:
```sh
# No need to install serving-crds.
# See: https://github.com/knative/serving/issues/9945
wget -O knative-serving/base/upstream/serving-core.yaml 'https://github.com/knative/serving/releases/download/knative-v1.12.4/serving-core.yaml'
wget -O knative-serving/base/upstream/net-istio.yaml 'https://github.com/knative-extensions/net-istio/releases/download/knative-v1.12.3/net-istio.yaml'
wget -O knative-serving-post-install-jobs/base/serving-post-install-jobs.yaml 'https://github.com/knative/serving/releases/download/knative-v1.12.4/serving-post-install-jobs.yaml'
```
1. Remove all comments, since `yq` does not handle them correctly. See:
https://github.com/mikefarah/yq/issues/788
```sh
yq eval -i '... comments=""' knative-serving/base/upstream/serving-core.yaml
yq eval -i '... comments=""' knative-serving/base/upstream/net-istio.yaml
yq eval -i '... comments=""' knative-serving-post-install-jobs/base/serving-post-install-jobs.yaml
```
1. Remove all YAML anchors and aliases, as kustomize does not support them. See:
https://github.com/kubernetes-sigs/kustomize/issues/3614
https://github.com/kubernetes-sigs/kustomize/issues/3446
```sh
yq eval -i 'explode(.)' knative-serving/base/upstream/serving-core.yaml
yq eval -i 'explode(.)' knative-serving/base/upstream/net-istio.yaml
yq eval -i 'explode(.)' knative-serving-post-install-jobs/base/serving-post-install-jobs.yaml
```
1. Set `metadata.name` in the serving post-install job, to be deploy-able with
`kustomize` and `kubectl apply`:
```sh
# We are not using the '|=' operator because it generates an empty object
# ({}) which crashes kustomize.
yq eval -i 'select(.kind == "Job" and .metadata.generateName == "storage-version-migration-serving-") | .metadata.name = "storage-version-migration-serving"' knative-serving-post-install-jobs/base/serving-post-install-jobs.yaml
```
### Changes from upstream
- The `knative-ingress-gateway` Gateway is removed since we use the Kubeflow gateway.
- In `config-istio`, the Knative gateway is set to use `gateway.kubeflow.kubeflow-gateway`.
- In `config-deployment`, `progressDeadline` is set to `600s` as sometimes large models need longer than
the default of `120s` to start the containers.
## Knative-Eventing
The manifests for Knative Eventing are based off the [v1.12.6 release](https://github.com/knative/eventing/releases/tag/knative-v1.12.6).
- [Eventing Core](https://github.com/knative/eventing/releases/download/knative-v1.12.6/eventing-core.yaml)
- [In-Memory Channel](https://github.com/knative/eventing/releases/download/knative-v1.12.6/in-memory-channel.yaml)
- [MT Channel Broker](https://github.com/knative/eventing/releases/download/knative-v1.12.6/mt-channel-broker.yaml)
1. Download the knative-eventing manifests with the following commands:
```sh
wget -O knative-eventing/base/upstream/eventing-core.yaml 'https://github.com/knative/eventing/releases/download/knative-v1.12.6/eventing-core.yaml'
wget -O knative-eventing/base/upstream/in-memory-channel.yaml 'https://github.com/knative/eventing/releases/download/knative-v1.12.6/in-memory-channel.yaml'
wget -O knative-eventing/base/upstream/mt-channel-broker.yaml 'https://github.com/knative/eventing/releases/download/knative-v1.12.6/mt-channel-broker.yaml'
wget -O knative-eventing-post-install-jobs/base/eventing-post-install.yaml 'https://github.com/knative/eventing/releases/download/knative-v1.12.6/eventing-post-install.yaml'
```
1. Remove all comments, since `yq` does not handle them correctly. See:
https://github.com/mikefarah/yq/issues/788
```sh
yq eval -i '... comments=""' knative-eventing/base/upstream/eventing-core.yaml
yq eval -i '... comments=""' knative-eventing/base/upstream/in-memory-channel.yaml
yq eval -i '... comments=""' knative-eventing/base/upstream/mt-channel-broker.yaml
yq eval -i '... comments=""' knative-eventing-post-install-jobs/base/eventing-post-install.yaml
```
1. Remove all YAML anchors and aliases, as kustomize does not support them. See:
https://github.com/kubernetes-sigs/kustomize/issues/3614
https://github.com/kubernetes-sigs/kustomize/issues/3446
```sh
yq eval -i 'explode(.)' knative-eventing/base/upstream/eventing-core.yaml
yq eval -i 'explode(.)' knative-eventing/base/upstream/in-memory-channel.yaml
yq eval -i 'explode(.)' knative-eventing/base/upstream/mt-channel-broker.yaml
yq eval -i 'explode(.)' knative-eventing-post-install-jobs/base/eventing-post-install.yaml
```
1. Set `metadata.name` in the eventing post-install job, to be deploy-able with
`kustomize` and `kubectl apply`:
```sh
# We are not using the '|=' operator because it generates an empty object
# ({}) which crashes kustomize.
yq eval -i 'select(.kind == "Job" and .metadata.generateName == "storage-version-migration-eventing-") | .metadata.name = "storage-version-migration-eventing"' knative-eventing-post-install-jobs/base/eventing-post-install.yaml
```
1. Remove the `config-observability` and `config-tracing` ConfigMaps resource definitions from the In-Memory Channel, as they are already defined in eventing core.
```sh
yq eval -i 'select((.kind == "ConfigMap" and .metadata.name == "config-observability") | not)' knative-eventing/base/upstream/in-memory-channel.yaml
yq eval -i 'select((.kind == "ConfigMap" and .metadata.name == "config-tracing") | not)' knative-eventing/base/upstream/in-memory-channel.yaml
```
NOTE: Make sure to remove a redundant `{}` at the end of the `knative-eventing/base/upstream/in-memory-channel.yaml` file after running the above commands.
## Copyright
The files under the folders `knative-serving/base/upstream` and
`knative-eventing/base/upstream` are downloaded from upstream Knative repos, as
we mentioned above.
Because `yq` does not handle comments correctly, we are removing comments from
the downloaded manifests. For this reason, we include the copyright comment
here verbatim, as it appears in the original files:
```
Copyright 2018 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
https://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.
```
@@ -0,0 +1,51 @@
apiVersion: batch/v1
kind: Job
metadata:
generateName: storage-version-migration-eventing-
namespace: knative-eventing
labels:
app: "storage-version-migration-eventing"
app.kubernetes.io/name: knative-eventing
app.kubernetes.io/component: storage-version-migration-job
app.kubernetes.io/version: "1.12.6"
name: storage-version-migration-eventing
spec:
ttlSecondsAfterFinished: 600
backoffLimit: 10
template:
metadata:
labels:
app: "storage-version-migration-eventing"
app.kubernetes.io/name: knative-eventing
app.kubernetes.io/component: storage-version-migration-job
app.kubernetes.io/version: "1.12.6"
annotations:
sidecar.istio.io/inject: "false"
spec:
serviceAccountName: knative-eventing-post-install-job
restartPolicy: OnFailure
containers:
- name: migrate
image: gcr.io/knative-releases/knative.dev/pkg/apiextensions/storageversion/cmd/migrate@sha256:d438c3ad2fcef3c7ea1b3abb910f5fa911c8a1466d6460ac0b11bf034797d6f6
args:
- "apiserversources.sources.knative.dev"
- "brokers.eventing.knative.dev"
- "channels.messaging.knative.dev"
- "containersources.sources.knative.dev"
- "eventtypes.eventing.knative.dev"
- "inmemorychannels.messaging.knative.dev"
- "parallels.flows.knative.dev"
- "pingsources.sources.knative.dev"
- "sequences.flows.knative.dev"
- "sinkbindings.sources.knative.dev"
- "subscriptions.messaging.knative.dev"
- "triggers.eventing.knative.dev"
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
runAsNonRoot: true
capabilities:
drop:
- ALL
seccompProfile:
type: RuntimeDefault
@@ -0,0 +1,4 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- eventing-post-install.yaml
@@ -0,0 +1,17 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: knative-eventing
resources:
- upstream/eventing-core.yaml
# Uncomment to install In-Memory Channels as messaging layer:
# - upstream/in-memory-channel.yaml
# Uncomment to install MT-channel-based Broker layer
# - upstream/mt-channel-broker.yaml
labels:
- includeSelectors: true
pairs:
app.kubernetes.io/component: knative-eventing
app.kubernetes.io/name: knative-eventing
kustomize.component: knative
patches:
- path: patches/clusterrole-patch.yaml
@@ -0,0 +1,60 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: knative-eventing-namespaced-admin
labels:
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-admin: "true"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: knative-eventing-namespaced-edit
labels:
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-edit: "true"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: knative-eventing-namespaced-view
labels:
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-view: "true"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: knative-messaging-namespaced-admin
labels:
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-admin: "true"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: knative-flows-namespaced-admin
labels:
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-admin: "true"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: knative-sources-namespaced-admin
labels:
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-admin: "true"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: knative-bindings-namespaced-admin
labels:
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-admin: "true"
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,964 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: imc-controller
namespace: knative-eventing
labels:
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: imc-controller
labels:
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
subjects:
- kind: ServiceAccount
name: imc-controller
namespace: knative-eventing
roleRef:
kind: ClusterRole
name: imc-controller
apiGroup: rbac.authorization.k8s.io
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
namespace: knative-eventing
name: imc-controller
labels:
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
subjects:
- kind: ServiceAccount
name: imc-controller
namespace: knative-eventing
roleRef:
kind: Role
name: knative-inmemorychannel-webhook
apiGroup: rbac.authorization.k8s.io
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: imc-controller-resolver
labels:
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
subjects:
- kind: ServiceAccount
name: imc-controller
namespace: knative-eventing
roleRef:
kind: ClusterRole
name: addressable-resolver
apiGroup: rbac.authorization.k8s.io
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: imc-dispatcher
namespace: knative-eventing
labels:
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: imc-dispatcher
labels:
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
subjects:
- kind: ServiceAccount
name: imc-dispatcher
namespace: knative-eventing
roleRef:
kind: ClusterRole
name: imc-dispatcher
apiGroup: rbac.authorization.k8s.io
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: imc-dispatcher-tls-role-binding
namespace: knative-eventing
subjects:
- kind: ServiceAccount
name: imc-dispatcher
apiGroup: ""
roleRef:
kind: Role
name: imc-dispatcher-tls-role
apiGroup: rbac.authorization.k8s.io
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: imc-dispatcher-tls-role
namespace: knative-eventing
rules:
- apiGroups:
- ""
resources:
- secrets
verbs:
- get
- list
- watch
---
apiVersion: v1
kind: ConfigMap
metadata:
name: config-imc-event-dispatcher
namespace: knative-eventing
labels:
app.kubernetes.io/component: imc-controller
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
data:
MaxIdleConnections: "1000"
MaxIdleConnectionsPerHost: "100"
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: imc-controller
namespace: knative-eventing
labels:
knative.dev/high-availability: "true"
app.kubernetes.io/component: imc-controller
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
spec:
selector:
matchLabels:
messaging.knative.dev/channel: in-memory-channel
messaging.knative.dev/role: controller
template:
metadata:
labels:
messaging.knative.dev/channel: in-memory-channel
messaging.knative.dev/role: controller
app.kubernetes.io/component: imc-controller
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
spec:
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- podAffinityTerm:
labelSelector:
matchLabels:
messaging.knative.dev/channel: in-memory-channel
messaging.knative.dev/role: controller
topologyKey: kubernetes.io/hostname
weight: 100
serviceAccountName: imc-controller
enableServiceLinks: false
containers:
- name: controller
image: gcr.io/knative-releases/knative.dev/eventing/cmd/in_memory/channel_controller@sha256:5386029f1fdcce1398dcca436864051a2f7eb5abed176453104f41b7b9b587f9
env:
- name: WEBHOOK_NAME
value: inmemorychannel-webhook
- name: WEBHOOK_PORT
value: "8443"
- name: CONFIG_LOGGING_NAME
value: config-logging
- name: CONFIG_OBSERVABILITY_NAME
value: config-observability
- name: METRICS_DOMAIN
value: knative.dev/inmemorychannel-controller
- name: SYSTEM_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: DISPATCHER_IMAGE
value: gcr.io/knative-releases/knative.dev/eventing/cmd/in_memory/channel_dispatcher@sha256:fa64db1ad126874f4e5ce1c17c2414b0fc3dde2a7e0db6fde939cafdbd4d96cd
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
runAsNonRoot: true
capabilities:
drop:
- ALL
seccompProfile:
type: RuntimeDefault
ports:
- name: metrics
containerPort: 9090
- name: profiling
containerPort: 8008
- name: https-webhook
containerPort: 8443
readinessProbe:
periodSeconds: 1
httpGet:
scheme: HTTPS
port: 8443
httpHeaders:
- name: k-kubelet-probe
value: "webhook"
livenessProbe:
periodSeconds: 1
httpGet:
scheme: HTTPS
port: 8443
httpHeaders:
- name: k-kubelet-probe
value: "webhook"
initialDelaySeconds: 120
terminationGracePeriodSeconds: 300
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/component: imc-controller
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
name: inmemorychannel-webhook
namespace: knative-eventing
spec:
ports:
- name: https-webhook
port: 443
targetPort: 8443
- name: http-metrics
port: 9090
targetPort: 9090
- name: http-profiling
port: 8008
targetPort: 8008
selector:
messaging.knative.dev/channel: in-memory-channel
messaging.knative.dev/role: controller
---
apiVersion: v1
kind: Service
metadata:
name: imc-dispatcher
namespace: knative-eventing
labels:
messaging.knative.dev/channel: in-memory-channel
messaging.knative.dev/role: dispatcher
app.kubernetes.io/component: imc-dispatcher
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
spec:
selector:
messaging.knative.dev/channel: in-memory-channel
messaging.knative.dev/role: dispatcher
ports:
- name: http-dispatcher
port: 80
protocol: TCP
targetPort: 8080
- name: https-dispatcher
port: 443
protocol: TCP
targetPort: 8443
- name: http-metrics
port: 9090
targetPort: 9090
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: imc-dispatcher
namespace: knative-eventing
labels:
knative.dev/high-availability: "true"
app.kubernetes.io/component: imc-dispatcher
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
spec:
selector:
matchLabels:
messaging.knative.dev/channel: in-memory-channel
messaging.knative.dev/role: dispatcher
template:
metadata:
labels:
messaging.knative.dev/channel: in-memory-channel
messaging.knative.dev/role: dispatcher
app.kubernetes.io/component: imc-dispatcher
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
spec:
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- podAffinityTerm:
labelSelector:
matchLabels:
messaging.knative.dev/channel: in-memory-channel
messaging.knative.dev/role: dispatcher
topologyKey: kubernetes.io/hostname
weight: 100
serviceAccountName: imc-dispatcher
enableServiceLinks: false
containers:
- name: dispatcher
image: gcr.io/knative-releases/knative.dev/eventing/cmd/in_memory/channel_dispatcher@sha256:fa64db1ad126874f4e5ce1c17c2414b0fc3dde2a7e0db6fde939cafdbd4d96cd
readinessProbe:
failureThreshold: 3
httpGet:
path: /healthz
port: 8080
scheme: HTTP
periodSeconds: 2
successThreshold: 1
timeoutSeconds: 1
livenessProbe:
failureThreshold: 3
httpGet:
path: /healthz
port: 8080
scheme: HTTP
periodSeconds: 2
successThreshold: 1
timeoutSeconds: 1
initialDelaySeconds: 5
env:
- name: CONFIG_LOGGING_NAME
value: config-logging
- name: CONFIG_OBSERVABILITY_NAME
value: config-observability
- name: METRICS_DOMAIN
value: knative.dev/inmemorychannel-dispatcher
- name: SYSTEM_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: CONTAINER_NAME
value: dispatcher
- name: MAX_IDLE_CONNS
value: "1000"
- name: MAX_IDLE_CONNS_PER_HOST
value: "1000"
ports:
- containerPort: 8080
name: http
protocol: TCP
- containerPort: 8443
name: https
protocol: TCP
- containerPort: 9090
name: metrics
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
runAsNonRoot: true
capabilities:
drop:
- ALL
seccompProfile:
type: RuntimeDefault
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: inmemorychannels.messaging.knative.dev
labels:
knative.dev/crd-install: "true"
messaging.knative.dev/subscribable: "true"
duck.knative.dev/addressable: "true"
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
spec:
group: messaging.knative.dev
versions:
- name: v1
served: true
storage: true
subresources:
status: {}
schema:
openAPIV3Schema:
description: 'InMemoryChannel is a resource representing an in memory channel'
type: object
properties:
spec:
description: Spec defines the desired state of the Channel.
type: object
properties:
delivery:
description: DeliverySpec contains the default delivery spec for each subscription to this Channelable. Each subscription 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 Addressable itself. If the target is an Addressable and specifies an Audience, the target's Audience takes precedence.
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
subscribers:
description: This is the list of subscriptions for this subscribable.
type: array
items:
type: object
properties:
delivery:
description: DeliverySpec contains options controlling the event delivery
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 Addressable itself. If the target is an Addressable and specifies an Audience, the target's Audience takes precedence.
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
generation:
description: Generation of the origin of the subscriber with uid:UID.
type: integer
format: int64
replyUri:
description: ReplyURI is the endpoint for the reply
type: string
replyCACerts:
description: Certification Authority (CA) certificates in PEM format according to https://www.rfc-editor.org/rfc/rfc7468.
type: string
replyAudience:
description: ReplyAudience is the OIDC audience for the replyUri.
type: string
subscriberUri:
description: SubscriberURI is the endpoint for the subscriber
type: string
subscriberCACerts:
description: Certification Authority (CA) certificates in PEM format according to https://www.rfc-editor.org/rfc/rfc7468.
type: string
subscriberAudience:
description: SubscriberAudience is the OIDC audience for the subscriberUri.
type: string
uid:
description: UID is used to understand the origin of the subscriber.
type: string
status:
description: Status represents the current state of the Channel. This data may be out of date.
type: object
properties:
address:
description: InMemoryChannel is Addressable. It exposes the endpoint as an URI to get events delivered into the channel mesh.
type: object
properties:
name:
type: string
url:
type: string
CACerts:
type: string
audience:
type: string
addresses:
description: InMemoryChannel is Addressable. It exposes the endpoints as URIs to get events delivered into the channel mesh.
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
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
deadLetterChannel:
description: DeadLetterChannel is a KReference and is set by the channel when it supports native error handling via a channel Failed messages are delivered here.
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
deadLetterSinkUri:
description: DeadLetterSinkURI is the resolved URI of the dead letter ref if one is specified in the Spec.Delivery.
type: string
deadLetterSinkCACerts:
description: Certification Authority (CA) certificates in PEM format according to https://www.rfc-editor.org/rfc/rfc7468.
type: string
observedGeneration:
description: ObservedGeneration is the 'Generation' of the Service that was last processed by the controller.
type: integer
format: int64
subscribers:
description: This is the list of subscription's statuses for this channel.
type: array
items:
type: object
properties:
message:
description: A human readable message indicating details of Ready status.
type: string
observedGeneration:
description: Generation of the origin of the subscriber with uid:UID.
type: integer
format: int64
ready:
description: Status of the subscriber.
type: string
uid:
description: UID is used to understand the origin of the subscriber.
type: string
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
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: InMemoryChannel
plural: inmemorychannels
singular: inmemorychannel
categories:
- all
- knative
- messaging
- channel
shortNames:
- imc
scope: Namespaced
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: imc-addressable-resolver
labels:
duck.knative.dev/addressable: "true"
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
rules:
- apiGroups:
- messaging.knative.dev
resources:
- inmemorychannels
- inmemorychannels/status
verbs:
- get
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: imc-channelable-manipulator
labels:
duck.knative.dev/channelable: "true"
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
rules:
- apiGroups:
- messaging.knative.dev
resources:
- inmemorychannels
- inmemorychannels/status
verbs:
- create
- get
- list
- watch
- update
- patch
- delete
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: imc-controller
labels:
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
rules:
- apiGroups:
- messaging.knative.dev
resources:
- inmemorychannels
- inmemorychannels/status
verbs:
- get
- list
- watch
- update
- apiGroups:
- messaging.knative.dev
resources:
- inmemorychannels/finalizers
verbs:
- update
- apiGroups:
- messaging.knative.dev
resources:
- inmemorychannels/finalizers
- inmemorychannels/status
- inmemorychannels
verbs:
- patch
- apiGroups:
- ""
resources:
- services
- serviceaccounts
verbs:
- get
- list
- watch
- create
- update
- patch
- apiGroups:
- ""
resources:
- endpoints
verbs:
- get
- list
- watch
- apiGroups:
- "rbac.authorization.k8s.io"
resources:
- rolebindings
verbs:
- get
- list
- watch
- create
- update
- patch
- apiGroups:
- apps
resources:
- deployments
verbs:
- get
- list
- watch
- create
- update
- patch
- apiGroups:
- apps
resources:
- deployments/status
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- configmaps
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- events
verbs:
- create
- patch
- apiGroups:
- coordination.k8s.io
resources:
- leases
verbs:
- get
- list
- watch
- create
- update
- patch
- apiGroups:
- "admissionregistration.k8s.io"
resources:
- "mutatingwebhookconfigurations"
- "validatingwebhookconfigurations"
verbs:
- "get"
- "list"
- "create"
- "update"
- "delete"
- "patch"
- "watch"
- apiGroups:
- ""
resources:
- "namespaces"
verbs:
- "get"
- "create"
- "update"
- "list"
- "watch"
- "patch"
- apiGroups:
- ""
resources:
- "namespaces/finalizers"
verbs:
- "update"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: imc-dispatcher
labels:
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
rules:
- apiGroups:
- messaging.knative.dev
resources:
- inmemorychannels
- inmemorychannels/status
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- configmaps
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- events
verbs:
- create
- patch
- apiGroups:
- messaging.knative.dev
resources:
- inmemorychannels/finalizers
- inmemorychannels/status
- inmemorychannels
verbs:
- patch
- apiGroups:
- coordination.k8s.io
resources:
- leases
verbs:
- get
- list
- watch
- create
- update
- patch
- apiGroups:
- eventing.knative.dev
resources:
- eventtypes
verbs:
- create
- get
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: knative-eventing
name: knative-inmemorychannel-webhook
labels:
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
rules:
- apiGroups:
- ""
resources:
- "secrets"
verbs:
- "get"
- "create"
- "update"
- "list"
- "watch"
- "patch"
---
apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration
metadata:
name: inmemorychannel.eventing.knative.dev
labels:
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
webhooks:
- admissionReviewVersions: ["v1"]
clientConfig:
service:
name: inmemorychannel-webhook
namespace: knative-eventing
sideEffects: None
failurePolicy: Fail
name: inmemorychannel.eventing.knative.dev
timeoutSeconds: 10
---
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
name: validation.inmemorychannel.eventing.knative.dev
labels:
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
webhooks:
- admissionReviewVersions: ["v1"]
clientConfig:
service:
name: inmemorychannel-webhook
namespace: knative-eventing
sideEffects: None
failurePolicy: Fail
name: validation.inmemorychannel.eventing.knative.dev
timeoutSeconds: 10
---
apiVersion: v1
kind: Secret
metadata:
name: inmemorychannel-webhook-certs
namespace: knative-eventing
labels:
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
---
@@ -0,0 +1,580 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: knative-eventing-mt-channel-broker-controller
labels:
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
rules:
- apiGroups:
- ""
resources:
- "namespaces/finalizers"
verbs:
- "update"
- apiGroups:
- coordination.k8s.io
resources:
- leases
verbs:
- "get"
- "list"
- "create"
- "update"
- "delete"
- "patch"
- "watch"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: knative-eventing-mt-broker-filter
labels:
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
rules:
- apiGroups:
- eventing.knative.dev
resources:
- triggers
- triggers/status
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- "configmaps"
verbs:
- get
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: mt-broker-filter
namespace: knative-eventing
rules:
- apiGroups:
- ""
resources:
- "secrets"
verbs:
- get
- list
- watch
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: mt-broker-filter
namespace: knative-eventing
labels:
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: knative-eventing-mt-broker-ingress
labels:
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
rules:
- apiGroups:
- eventing.knative.dev
resources:
- eventtypes
verbs:
- create
- get
- list
- watch
- apiGroups:
- eventing.knative.dev
resources:
- brokers
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- "configmaps"
verbs:
- get
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: mt-broker-ingress
namespace: knative-eventing
rules:
- apiGroups:
- ""
resources:
- "secrets"
verbs:
- get
- list
- watch
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: mt-broker-ingress
namespace: knative-eventing
labels:
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: eventing-mt-channel-broker-controller
labels:
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
subjects:
- kind: ServiceAccount
name: eventing-controller
namespace: knative-eventing
roleRef:
kind: ClusterRole
name: knative-eventing-mt-channel-broker-controller
apiGroup: rbac.authorization.k8s.io
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: knative-eventing-mt-broker-filter
labels:
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
subjects:
- kind: ServiceAccount
name: mt-broker-filter
namespace: knative-eventing
roleRef:
kind: ClusterRole
name: knative-eventing-mt-broker-filter
apiGroup: rbac.authorization.k8s.io
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: mt-broker-filter
namespace: knative-eventing
subjects:
- kind: ServiceAccount
name: mt-broker-filter
namespace: knative-eventing
roleRef:
kind: Role
name: mt-broker-filter
apiGroup: rbac.authorization.k8s.io
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: knative-eventing-mt-broker-ingress
labels:
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
subjects:
- kind: ServiceAccount
name: mt-broker-ingress
namespace: knative-eventing
roleRef:
kind: ClusterRole
name: knative-eventing-mt-broker-ingress
apiGroup: rbac.authorization.k8s.io
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: mt-broker-ingress
namespace: knative-eventing
subjects:
- kind: ServiceAccount
name: mt-broker-ingress
namespace: knative-eventing
roleRef:
kind: Role
name: mt-broker-ingress
apiGroup: rbac.authorization.k8s.io
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mt-broker-filter
namespace: knative-eventing
labels:
app.kubernetes.io/component: broker-filter
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
spec:
selector:
matchLabels:
eventing.knative.dev/brokerRole: filter
template:
metadata:
labels:
eventing.knative.dev/brokerRole: filter
app.kubernetes.io/component: broker-filter
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
spec:
serviceAccountName: mt-broker-filter
enableServiceLinks: false
containers:
- name: filter
terminationMessagePolicy: FallbackToLogsOnError
image: gcr.io/knative-releases/knative.dev/eventing/cmd/broker/filter@sha256:4e3cf0703024129c60b66529f41a1d29310f61f6aced24d25fd241e43b1a2e8e
readinessProbe:
failureThreshold: 3
httpGet:
path: /healthz
port: 8080
scheme: HTTP
periodSeconds: 2
successThreshold: 1
timeoutSeconds: 1
livenessProbe:
failureThreshold: 3
httpGet:
path: /healthz
port: 8080
scheme: HTTP
periodSeconds: 2
successThreshold: 1
timeoutSeconds: 1
initialDelaySeconds: 5
resources:
requests:
cpu: 100m
memory: 100Mi
ports:
- containerPort: 8080
name: http
protocol: TCP
- containerPort: 8443
name: https
protocol: TCP
- containerPort: 9092
name: metrics
protocol: TCP
terminationMessagePath: /dev/termination-log
env:
- name: SYSTEM_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: CONTAINER_NAME
value: filter
- name: CONFIG_LOGGING_NAME
value: config-logging
- name: CONFIG_OBSERVABILITY_NAME
value: config-observability
- name: METRICS_DOMAIN
value: knative.dev/internal/eventing
- name: FILTER_PORT
value: "8080"
- name: FILTER_PORT_HTTPS
value: "8443"
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
runAsNonRoot: true
capabilities:
drop:
- ALL
seccompProfile:
type: RuntimeDefault
---
apiVersion: v1
kind: Service
metadata:
labels:
eventing.knative.dev/brokerRole: filter
app.kubernetes.io/component: broker-filter
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
name: broker-filter
namespace: knative-eventing
spec:
ports:
- name: http
port: 80
protocol: TCP
targetPort: 8080
- name: https
port: 443
protocol: TCP
targetPort: 8443
- name: http-metrics
port: 9092
protocol: TCP
targetPort: 9092
selector:
eventing.knative.dev/brokerRole: filter
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mt-broker-ingress
namespace: knative-eventing
labels:
app.kubernetes.io/component: broker-ingress
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
spec:
selector:
matchLabels:
eventing.knative.dev/brokerRole: ingress
template:
metadata:
labels:
eventing.knative.dev/brokerRole: ingress
app.kubernetes.io/component: broker-ingress
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
spec:
serviceAccountName: mt-broker-ingress
enableServiceLinks: false
containers:
- name: ingress
terminationMessagePolicy: FallbackToLogsOnError
image: gcr.io/knative-releases/knative.dev/eventing/cmd/broker/ingress@sha256:65412cf797d0bb7c7e22454431f57f8d9dcedf93620769f4c1206947acf05abb
readinessProbe:
failureThreshold: 3
httpGet:
path: /healthz
port: 8080
scheme: HTTP
periodSeconds: 2
successThreshold: 1
timeoutSeconds: 1
livenessProbe:
failureThreshold: 3
httpGet:
path: /healthz
port: 8080
scheme: HTTP
periodSeconds: 2
successThreshold: 1
timeoutSeconds: 1
initialDelaySeconds: 5
resources:
requests:
cpu: 100m
memory: 100Mi
ports:
- containerPort: 8080
name: http
protocol: TCP
- containerPort: 8443
name: https
protocol: TCP
- containerPort: 9092
name: metrics
protocol: TCP
terminationMessagePath: /dev/termination-log
env:
- name: SYSTEM_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: CONTAINER_NAME
value: ingress
- name: CONFIG_LOGGING_NAME
value: config-logging
- name: CONFIG_OBSERVABILITY_NAME
value: config-observability
- name: METRICS_DOMAIN
value: knative.dev/internal/eventing
- name: INGRESS_PORT
value: "8080"
- name: INGRESS_PORT_HTTPS
value: "8443"
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
runAsNonRoot: true
capabilities:
drop:
- ALL
seccompProfile:
type: RuntimeDefault
---
apiVersion: v1
kind: Service
metadata:
labels:
eventing.knative.dev/brokerRole: ingress
app.kubernetes.io/component: broker-ingress
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
name: broker-ingress
namespace: knative-eventing
spec:
ports:
- name: http
port: 80
protocol: TCP
targetPort: 8080
- name: https
port: 443
protocol: TCP
targetPort: 8443
- name: http-metrics
port: 9092
protocol: TCP
targetPort: 9092
selector:
eventing.knative.dev/brokerRole: ingress
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mt-broker-controller
namespace: knative-eventing
labels:
app.kubernetes.io/component: mt-broker-controller
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
spec:
selector:
matchLabels:
app: mt-broker-controller
template:
metadata:
labels:
app: mt-broker-controller
app.kubernetes.io/component: broker-controller
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
spec:
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- podAffinityTerm:
labelSelector:
matchLabels:
app: mt-broker-controller
topologyKey: kubernetes.io/hostname
weight: 100
serviceAccountName: eventing-controller
enableServiceLinks: false
containers:
- name: mt-broker-controller
terminationMessagePolicy: FallbackToLogsOnError
image: gcr.io/knative-releases/knative.dev/eventing/cmd/mtchannel_broker@sha256:9dc9e0b00325f1ec994ef6f48761ba7d9217333fa0c2cbfccfa9b204e3f616a9
resources:
requests:
cpu: 100m
memory: 100Mi
env:
- name: SYSTEM_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: CONFIG_LOGGING_NAME
value: config-logging
- name: CONFIG_OBSERVABILITY_NAME
value: config-observability
- name: METRICS_DOMAIN
value: knative.dev/eventing
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
runAsNonRoot: true
capabilities:
drop:
- ALL
seccompProfile:
type: RuntimeDefault
ports:
- name: metrics
containerPort: 9090
- name: profiling
containerPort: 8008
---
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: broker-ingress-hpa
namespace: knative-eventing
labels:
app.kubernetes.io/component: broker-ingress
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: mt-broker-ingress
minReplicas: 1
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
---
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: broker-filter-hpa
namespace: knative-eventing
labels:
app.kubernetes.io/component: broker-filter
app.kubernetes.io/version: "1.12.6"
app.kubernetes.io/name: knative-eventing
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: mt-broker-filter
minReplicas: 1
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
---
@@ -0,0 +1,14 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- serving-post-install-jobs.yaml
# patches:
# - patch: |
# - op: add
# path: /metadata/name
# value: storage-version-migration-serving
# target:
# kind: Job
# labelSelector: app=storage-version-migration-serving
@@ -0,0 +1,51 @@
apiVersion: batch/v1
kind: Job
metadata:
generateName: storage-version-migration-serving-
namespace: knative-serving
labels:
app: storage-version-migration-serving
app.kubernetes.io/name: knative-serving
app.kubernetes.io/component: storage-version-migration-job
app.kubernetes.io/version: "1.12.4"
name: storage-version-migration-serving
spec:
ttlSecondsAfterFinished: 600
backoffLimit: 10
template:
metadata:
annotations:
sidecar.istio.io/inject: "false"
labels:
app: storage-version-migration-serving
app.kubernetes.io/name: knative-serving
app.kubernetes.io/component: storage-version-migration-job
app.kubernetes.io/version: "1.12.4"
spec:
serviceAccountName: controller
restartPolicy: OnFailure
containers:
- name: migrate
image: gcr.io/knative-releases/knative.dev/pkg/apiextensions/storageversion/cmd/migrate@sha256:232d6ffd88dfc0d0ec02c6f3a95520283d076c16b77543cee04f4ef276e0b7ae
args:
- "services.serving.knative.dev"
- "configurations.serving.knative.dev"
- "revisions.serving.knative.dev"
- "routes.serving.knative.dev"
- "domainmappings.serving.knative.dev"
resources:
requests:
cpu: 100m
memory: 100Mi
limits:
cpu: 1000m
memory: 1000Mi
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
runAsNonRoot: true
capabilities:
drop:
- ALL
seccompProfile:
type: RuntimeDefault
@@ -0,0 +1,78 @@
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
name: activator-service
namespace: knative-serving
spec:
action: ALLOW
selector:
matchLabels:
app: activator
rules:
- {}
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
name: autoscaler
namespace: knative-serving
spec:
action: ALLOW
selector:
matchLabels:
app: autoscaler
rules:
- {}
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
name: controller
namespace: knative-serving
spec:
action: ALLOW
selector:
matchLabels:
app: controller
rules:
- {}
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
name: webhook
namespace: knative-serving
spec:
action: ALLOW
selector:
matchLabels:
role: webhook
rules:
- {}
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
name: istio-webhook
namespace: knative-serving
spec:
action: ALLOW
selector:
matchLabels:
app: net-istio-webhook
rules:
- {}
---
# DestinationRule for mTLS
apiVersion: "networking.istio.io/v1alpha3"
kind: DestinationRule
metadata:
name: knative
namespace: knative-serving
spec:
host: "*.knative-serving.svc.cluster.local"
trafficPolicy:
tls:
mode: ISTIO_MUTUAL
@@ -0,0 +1,18 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- upstream/serving-core.yaml
- upstream/net-istio.yaml
- istio-authorization-policy.yaml
patches:
- path: patches/sidecar-injection.yaml
target:
kind: Deployment
- path: patches/config-deployment.yaml
- path: patches/config-istio.yaml
- path: patches/namespace-injection.yaml
- path: patches/knative-serving-namespaced-admin.yaml
- path: patches/knative-serving-namespaced-edit.yaml
- path: patches/knative-serving-namespaced-view.yaml
- path: patches/service-labels.yaml
- path: patches/remove-gateway.yaml
@@ -0,0 +1,8 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: config-deployment
namespace: knative-serving
data:
progressDeadline: 600s
@@ -0,0 +1,7 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: config-istio
namespace: knative-serving
data:
gateway.kubeflow.kubeflow-gateway: istio-ingressgateway.istio-system.svc.cluster.local
@@ -0,0 +1,6 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: knative-serving-namespaced-admin
labels:
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-admin: "true"
@@ -0,0 +1,6 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: knative-serving-namespaced-edit
labels:
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-edit: "true"
@@ -0,0 +1,6 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: knative-serving-namespaced-view
labels:
rbac.authorization.kubeflow.org/aggregate-to-kubeflow-view: "true"
@@ -0,0 +1,6 @@
apiVersion: v1
kind: Namespace
metadata:
name: knative-serving
labels:
istio-injection: enabled
@@ -0,0 +1,6 @@
$patch: delete
apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
name: knative-ingress-gateway
namespace: knative-serving
@@ -0,0 +1,7 @@
apiVersion: v1
kind: Service
metadata:
name: knative-local-gateway
namespace: istio-system
labels:
experimental.istio.io/disable-gateway-port-translation: "true"
@@ -0,0 +1,10 @@
patches:
apiVersion: apps/v1
kind: Deployment
metadata:
name: "*"
spec:
template:
metadata:
annotations:
sidecar.istio.io/inject: "true"
@@ -0,0 +1,422 @@
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: knative-serving-istio
labels:
app.kubernetes.io/component: net-istio
app.kubernetes.io/name: knative-serving
app.kubernetes.io/version: "1.12.3"
serving.knative.dev/controller: "true"
networking.knative.dev/ingress-provider: istio
rules:
- apiGroups: ["networking.istio.io"]
resources: ["virtualservices", "gateways", "destinationrules"]
verbs: ["get", "list", "create", "update", "delete", "patch", "watch"]
---
apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
name: knative-ingress-gateway
namespace: knative-serving
labels:
app.kubernetes.io/component: net-istio
app.kubernetes.io/name: knative-serving
app.kubernetes.io/version: "1.12.3"
networking.knative.dev/ingress-provider: istio
spec:
selector:
istio: ingressgateway
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "*"
---
apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
name: knative-local-gateway
namespace: knative-serving
labels:
app.kubernetes.io/component: net-istio
app.kubernetes.io/name: knative-serving
app.kubernetes.io/version: "1.12.3"
networking.knative.dev/ingress-provider: istio
spec:
selector:
istio: ingressgateway
servers:
- port:
number: 8081
name: http
protocol: HTTP
hosts:
- "*"
---
apiVersion: v1
kind: Service
metadata:
name: knative-local-gateway
namespace: istio-system
labels:
app.kubernetes.io/component: net-istio
app.kubernetes.io/name: knative-serving
app.kubernetes.io/version: "1.12.3"
networking.knative.dev/ingress-provider: istio
experimental.istio.io/disable-gateway-port-translation: "true"
spec:
type: ClusterIP
selector:
istio: ingressgateway
ports:
- name: http2
port: 80
targetPort: 8081
---
apiVersion: v1
kind: ConfigMap
metadata:
name: config-istio
namespace: knative-serving
labels:
app.kubernetes.io/component: net-istio
app.kubernetes.io/name: knative-serving
app.kubernetes.io/version: "1.12.3"
networking.knative.dev/ingress-provider: istio
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.
# A gateway and Istio service to serve external traffic.
# The configuration format should be
# `gateway.{{gateway_namespace}}.{{gateway_name}}: "{{ingress_name}}.{{ingress_namespace}}.svc.cluster.local"`.
# The {{gateway_namespace}} is optional; when it is omitted, the system will search for
# the gateway in the serving system namespace `knative-serving`
gateway.knative-serving.knative-ingress-gateway: "istio-ingressgateway.istio-system.svc.cluster.local"
# A cluster local gateway to allow pods outside of the mesh to access
# Services and Routes not exposing through an ingress. If the users
# do have a service mesh setup, this isn't required and can be removed.
#
# An example use case is when users want to use Istio without any
# sidecar injection (like Knative's istio-ci-no-mesh.yaml). Since every pod
# is outside of the service mesh in that case, a cluster-local service
# will need to be exposed to a cluster-local gateway to be accessible.
# The configuration format should be `local-gateway.{{local_gateway_namespace}}.
# {{local_gateway_name}}: "{{cluster_local_gateway_name}}.
# {{cluster_local_gateway_namespace}}.svc.cluster.local"`. The
# {{local_gateway_namespace}} is optional; when it is omitted, the system
# will search for the local gateway in the serving system namespace
# `knative-serving`
local-gateway.knative-serving.knative-local-gateway: "knative-local-gateway.istio-system.svc.cluster.local"
---
apiVersion: "security.istio.io/v1beta1"
kind: "PeerAuthentication"
metadata:
name: "webhook"
namespace: "knative-serving"
labels:
app.kubernetes.io/component: net-istio
app.kubernetes.io/name: knative-serving
app.kubernetes.io/version: "1.12.3"
networking.knative.dev/ingress-provider: istio
spec:
selector:
matchLabels:
app: webhook
portLevelMtls:
"8443":
mode: PERMISSIVE
---
apiVersion: "security.istio.io/v1beta1"
kind: "PeerAuthentication"
metadata:
name: "net-istio-webhook"
namespace: "knative-serving"
labels:
app.kubernetes.io/component: net-istio
app.kubernetes.io/name: knative-serving
app.kubernetes.io/version: "1.12.3"
networking.knative.dev/ingress-provider: istio
spec:
selector:
matchLabels:
app: net-istio-webhook
portLevelMtls:
"8443":
mode: PERMISSIVE
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: net-istio-controller
namespace: knative-serving
labels:
app.kubernetes.io/component: net-istio
app.kubernetes.io/name: knative-serving
app.kubernetes.io/version: "1.12.3"
networking.knative.dev/ingress-provider: istio
spec:
selector:
matchLabels:
app: net-istio-controller
template:
metadata:
annotations:
sidecar.istio.io/inject: "false"
labels:
app: net-istio-controller
app.kubernetes.io/component: net-istio
app.kubernetes.io/name: knative-serving
app.kubernetes.io/version: "1.12.3"
spec:
serviceAccountName: controller
containers:
- name: controller
image: gcr.io/knative-releases/knative.dev/net-istio/cmd/controller@sha256:5782b4a6b1a106d7cafe77d044b30905a9fecbbd2e0029946cb8a4b3507b40a4
resources:
requests:
cpu: 30m
memory: 40Mi
limits:
cpu: 300m
memory: 400Mi
env:
- name: SYSTEM_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: CONFIG_LOGGING_NAME
value: config-logging
- name: CONFIG_OBSERVABILITY_NAME
value: config-observability
- name: ENABLE_SECRET_INFORMER_FILTERING_BY_CERT_UID
value: "false"
- name: METRICS_DOMAIN
value: knative.dev/net-istio
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
runAsNonRoot: true
capabilities:
drop:
- ALL
seccompProfile:
type: RuntimeDefault
readinessProbe:
httpGet:
path: /readiness
port: probes
scheme: HTTP
periodSeconds: 5
failureThreshold: 3
livenessProbe:
httpGet:
path: /health
port: probes
scheme: HTTP
periodSeconds: 5
failureThreshold: 6
ports:
- name: metrics
containerPort: 9090
- name: profiling
containerPort: 8008
- name: probes
containerPort: 8080
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: net-istio-webhook
namespace: knative-serving
labels:
app.kubernetes.io/component: net-istio
app.kubernetes.io/name: knative-serving
app.kubernetes.io/version: "1.12.3"
networking.knative.dev/ingress-provider: istio
spec:
selector:
matchLabels:
app: net-istio-webhook
role: net-istio-webhook
template:
metadata:
labels:
app: net-istio-webhook
role: net-istio-webhook
app.kubernetes.io/component: net-istio
app.kubernetes.io/name: knative-serving
app.kubernetes.io/version: "1.12.3"
spec:
serviceAccountName: controller
containers:
- name: webhook
image: gcr.io/knative-releases/knative.dev/net-istio/cmd/webhook@sha256:eeff0ad31550f3ff519d988bb36bfe214e5b60c1ec4349c1f9bb2b2d8cad9479
resources:
requests:
cpu: 20m
memory: 20Mi
limits:
cpu: 200m
memory: 200Mi
env:
- name: SYSTEM_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: CONFIG_LOGGING_NAME
value: config-logging
- name: CONFIG_OBSERVABILITY_NAME
value: config-observability
- name: METRICS_DOMAIN
value: knative.dev/net-istio
- name: WEBHOOK_NAME
value: net-istio-webhook
- name: WEBHOOK_PORT
value: "8443"
securityContext:
runAsNonRoot: true
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
seccompProfile:
type: RuntimeDefault
readinessProbe:
periodSeconds: 1
httpGet:
scheme: HTTPS
port: 8443
httpHeaders:
- name: k-kubelet-probe
value: "webhook"
failureThreshold: 3
livenessProbe:
periodSeconds: 1
httpGet:
scheme: HTTPS
port: 8443
httpHeaders:
- name: k-kubelet-probe
value: "webhook"
failureThreshold: 6
initialDelaySeconds: 20
ports:
- name: metrics
containerPort: 9090
- name: profiling
containerPort: 8008
- name: https-webhook
containerPort: 8443
---
apiVersion: v1
kind: Secret
metadata:
name: net-istio-webhook-certs
namespace: knative-serving
labels:
app.kubernetes.io/component: net-istio
app.kubernetes.io/name: knative-serving
app.kubernetes.io/version: "1.12.3"
networking.knative.dev/ingress-provider: istio
---
apiVersion: v1
kind: Service
metadata:
name: net-istio-webhook
namespace: knative-serving
labels:
role: net-istio-webhook
app.kubernetes.io/component: net-istio
app.kubernetes.io/name: knative-serving
app.kubernetes.io/version: "1.12.3"
networking.knative.dev/ingress-provider: istio
spec:
ports:
- name: http-metrics
port: 9090
targetPort: metrics
- name: http-profiling
port: 8008
targetPort: profiling
- name: https-webhook
port: 443
targetPort: https-webhook
selector:
app: net-istio-webhook
---
apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration
metadata:
name: webhook.istio.networking.internal.knative.dev
labels:
app.kubernetes.io/component: net-istio
app.kubernetes.io/name: knative-serving
app.kubernetes.io/version: "1.12.3"
networking.knative.dev/ingress-provider: istio
webhooks:
- admissionReviewVersions:
- v1
- v1beta1
clientConfig:
service:
name: net-istio-webhook
namespace: knative-serving
failurePolicy: Fail
sideEffects: None
objectSelector:
matchExpressions:
- {key: "serving.knative.dev/configuration", operator: Exists}
name: webhook.istio.networking.internal.knative.dev
---
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
name: config.webhook.istio.networking.internal.knative.dev
labels:
app.kubernetes.io/component: net-istio
app.kubernetes.io/name: knative-serving
app.kubernetes.io/version: "1.12.3"
networking.knative.dev/ingress-provider: istio
webhooks:
- admissionReviewVersions:
- v1
- v1beta1
clientConfig:
service:
name: net-istio-webhook
namespace: knative-serving
failurePolicy: Fail
sideEffects: None
name: config.webhook.istio.networking.internal.knative.dev
objectSelector:
matchLabels:
app.kubernetes.io/name: knative-serving
app.kubernetes.io/component: net-istio
---
apiVersion: v1
kind: Secret
metadata:
name: routing-serving-certs
namespace: istio-system
labels:
serving-certs-ctrl: "data-plane-routing"
networking.internal.knative.dev/certificate-uid: "serving-certs"
---
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,11 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../base
# We want to Knative to use Istio's local Gateway and not the Ingress Gateway
# See: https://github.com/kubeflow/manifests/issues/1966
patches:
- path: patches/gateway-selector-in-knative-serving.yaml
- path: patches/gateway-selector-in-istio-system.yaml
@@ -0,0 +1,9 @@
apiVersion: v1
kind: Service
metadata:
name: knative-local-gateway
namespace: istio-system
spec:
selector:
app: cluster-local-gateway
istio: cluster-local-gateway
@@ -0,0 +1,9 @@
apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
name: knative-local-gateway
namespace: knative-serving
spec:
selector:
app: cluster-local-gateway
istio: cluster-local-gateway