From d93791fd3fb9a6366b246a1ccb271b83b356d7f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20D=C3=B6ll?= Date: Thu, 29 Feb 2024 12:22:00 +0000 Subject: [PATCH] wip: charts --- .github/workflows/release.yml | 13 +- Makefile | 10 +- charts/typhoon/Chart.yaml | 3 +- charts/typhoon/values.yaml | 3 +- typhoon.yaml | 5862 --------------------------------- 5 files changed, 20 insertions(+), 5871 deletions(-) delete mode 100644 typhoon.yaml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4726303d..9956a11c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -47,15 +47,22 @@ jobs: restore-keys: | ${{ github.job }}-${{ runner.os }}-go- - run: sudo apt-get update && sudo apt install -y libxml2-dev libxslt1-dev liblzma-dev zlib1g-dev - - run: make deploy + - run: make release env: KO_DOCKER_REPO: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + DIST_DIR: /tmp/dist if: success() - run: | - go run tools/updater/main.go --file charts/typhoon/Chart.yaml --version ${{ env.RELEASE_VERSION }} + go run internal/tools/updater/main.go --file charts/typhoon/Chart.yaml --version ${{ env.RELEASE_VERSION }} - uses: helm/chart-releaser-action@v1.6.0 env: CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" with: charts_dir: charts - config: ${{ github.workspace }}/.cr.yml \ No newline at end of file + config: ${{ github.workspace }}/.cr.yml + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: manifests + path: /tmp/dist + retention-days: 14 \ No newline at end of file diff --git a/Makefile b/Makefile index 9f18ffe5..2d29ed9b 100644 --- a/Makefile +++ b/Makefile @@ -1,12 +1,14 @@ .DEFAULT_GOAL := build +BASE_DIR ?= $(CURDIR) +OUTPUT_DIR ?= $(BASE_DIR)/dist + GO ?= go GO_RUN_TOOLS ?= $(GO) run -modfile ./tools/go.mod GO_TEST ?= $(GO_RUN_TOOLS) gotest.tools/gotestsum --format pkgname GO_RELEASER ?= $(GO_RUN_TOOLS) github.com/goreleaser/goreleaser GO_KO ?= $(GO_RUN_TOOLS) github.com/google/ko GO_MOD ?= $(shell ${GO} list -m) -BASE_DIR ?= $(CURDIR) COMMANDS := $(notdir $(wildcard cmd/*)) @@ -52,7 +54,10 @@ deploy: ## Deploy the application. .PHONY: release release: ## Release the application. - $(GO_RELEASER) release --rm-dist + @mkdir -p $(DIST_DIR) + $(GO_KO) resolve -f $(BASE_DIR)/config/ -l 'typhoon.zeissß.com/crd-install' > $(DIST_DIR)/typhoon-crds.yaml + @cp config/namespace/100-namespace.yaml $(DIST_DIR)/typhoon.yaml + @cp $(DIST_DIR)/*.yaml $(BASE_DIR)/charts/typhoon/crds .PHONY: help help: ## Display this help screen. @@ -60,3 +65,4 @@ help: ## Display this help screen. # codegen include hack/inc.codegen.mk +8888 \ No newline at end of file diff --git a/charts/typhoon/Chart.yaml b/charts/typhoon/Chart.yaml index 67defef2..80f3656f 100644 --- a/charts/typhoon/Chart.yaml +++ b/charts/typhoon/Chart.yaml @@ -6,7 +6,6 @@ type: application version: 0.1.0 -#appVersion: "v1.26.0" -appVersion: "latest" +appVersion: "v0.1.0" dependencies: \ No newline at end of file diff --git a/charts/typhoon/values.yaml b/charts/typhoon/values.yaml index 28fb4c05..78afd038 100644 --- a/charts/typhoon/values.yaml +++ b/charts/typhoon/values.yaml @@ -35,7 +35,7 @@ global: # Default image used by all components image: # -- If defined, a repository applied to all Typhoon deployments - repository: ghcr.io/zeiss/typhoon + : ghcr.io/zeiss/typhoon # -- Overrides the global Typhoon image tag whose default is the chart appVersion tag: "" # -- If defined, a imagePullPolicy applied to all Typhoon deployments @@ -46,7 +46,6 @@ global: ## Typhoon Controller controller: - # -- The number of typhoon controller pods to run. # Additional replicas will cause sharding of managed clusters across number of replicas. replicas: 1 diff --git a/typhoon.yaml b/typhoon.yaml deleted file mode 100644 index fcce91f2..00000000 --- a/typhoon.yaml +++ /dev/null @@ -1,5862 +0,0 @@ -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: typhoon-namespaced-admin - labels: - rbac.authorization.k8s.io/aggregate-to-admin: "true" - app.kubernetes.io/part-of: typhoon -rules: - - apiGroups: - - flow.typhoon.zeiss.com - - routing.typhoon.zeiss.com - - sources.typhoon.zeiss.com - - targets.typhoon.zeiss.com - resources: ["*"] - verbs: ["*"] ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: typhoon-namespaced-edit - labels: - rbac.authorization.k8s.io/aggregate-to-edit: "true" - app.kubernetes.io/part-of: typhoon -rules: - - apiGroups: - - flow.typhoon.zeiss.com - - routing.typhoon.zeiss.com - - sources.typhoon.zeiss.com - - targets.typhoon.zeiss.com - resources: ["*"] - verbs: - - create - - update - - patch - - delete ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: typhoon-namespaced-view - labels: - rbac.authorization.k8s.io/aggregate-to-view: "true" - app.kubernetes.io/part-of: typhoon -rules: - - apiGroups: - - flow.typhoon.zeiss.com - - routing.typhoon.zeiss.com - - sources.typhoon.zeiss.com - - targets.typhoon.zeiss.com - resources: ["*"] - verbs: - - get - - list - - watch - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: typhoon-webhook - labels: - app.kubernetes.io/part-of: typhoon -rules: - # Routing admin - - apiGroups: - - routing.typhoon.zeiss.com - resources: - - filters - - splitters - verbs: - - get - - list - - watch - - create - - update - - patch - - delete - # Routing statuses update - - apiGroups: - - routing.typhoon.zeiss.com - resources: - - splitters/status - - filters/status - verbs: - - update - - apiGroups: - - flow.typhoon.zeiss.com - resources: - - xslttransformations - verbs: - - get - - list - - watch - - create - - update - - patch - - delete - - apiGroups: - - flow.typhoon.zeiss.com - resources: - - xslttransformations/status - verbs: - - update - # Events admin - - apiGroups: - - '' - resources: - - events - - configmaps - verbs: - - get - - list - - watch - - create - - update - - patch - - delete - # For manipulating certs into secrets. - - apiGroups: - - '' - resources: - - secrets - verbs: - - get - - create - - update - - list - - watch - # Validation webhook gets system namespace to use it as an owner. - - apiGroups: - - '' - resources: - - namespaces - verbs: - - get - # For actually registering our webhook. - - apiGroups: - - admissionregistration.k8s.io - resources: - - mutatingwebhookconfigurations - - validatingwebhookconfigurations - verbs: - - get - - list - - watch - - create - - update - - patch - - delete - # Acquire leases for leader election - - apiGroups: - - coordination.k8s.io - resources: - - leases - verbs: - - get - - create - - update - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: typhoon-controller - labels: - app.kubernetes.io/part-of: typhoon -rules: - # Record Kubernetes events - - apiGroups: - - '' - resources: - - events - verbs: - - create - - patch - - update - # Manage receive-adapters - - apiGroups: - - apps - resources: - - deployments - verbs: - - get - - list - - watch - - create - - update - - delete - - patch - - apiGroups: - - serving.knative.dev - resources: - - services - verbs: - - get - - list - - watch - - create - - update - - delete - - patch - # Read reconciled typhoon resources and update their statuses - # +rbac-check - - apiGroups: - - sources.typhoon.zeiss.com - resources: - - cloudeventssources - - httppollersources - - kafkasources - - mongodbsources - - webhooksources - verbs: - - list - - watch - - get - # +rbac-check:subresource=status - - apiGroups: - - sources.typhoon.zeiss.com - resources: - - cloudeventssources/status - - httppollersources/status - - kafkasources/status - - webhooksources/status - verbs: - - update - # +rbac-check - - apiGroups: - - targets.typhoon.zeiss.com - resources: - - cloudeventstargets - - httptargets - - logzmetricstargets - - splunktargets - verbs: - - list - - watch - - get - # +rbac-check:subresource=status - - apiGroups: - - targets.typhoon.zeiss.com - resources: - - cloudeventstargets/status - - httptargets/status - - logzmetricstargets/status - - logztargets/status - verbs: - - update - # +rbac-check - - apiGroups: - - flow.typhoon.zeiss.com - resources: - - jqtransformations - - synchronizers - - transformations - - xmltojsontransformations - - xslttransformations - verbs: - - list - - watch - - get - # +rbac-check:subresource=status - - apiGroups: - - flow.typhoon.zeiss.com - resources: - - jqtransformations/status - - synchronizers/status - - transformations/status - - xmltojsontransformations/status - - xslttransformations/status - verbs: - - update - # +rbac-check - - apiGroups: - - extensions.typhoon.zeiss.com - resources: - - functions - verbs: - - list - - watch - - get - # +rbac-check:subresource=status - - apiGroups: - - extensions.typhoon.zeiss.com - resources: - - functions/status - verbs: - - update - # +rbac-check - - apiGroups: - - routing.typhoon.zeiss.com - resources: - - filters - - splitters - verbs: - - list - - watch - - get - # +rbac-check:subresource=status - - apiGroups: - - routing.typhoon.zeiss.com - resources: - - filters/status - - splitters/status - verbs: - - update - # Ensure compatibility with the OwnerReferencesPermissionEnforcement Admission Controller - # https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#ownerreferencespermissionenforcement - # +rbac-check:subresource=finalizers - - apiGroups: - - sources.typhoon.zeiss.com - resources: - - cloudeventssources/finalizers - - httppollersources/finalizers - - kafkasources/finalizers - - webhooksources/finalizers - verbs: - - update - # +rbac-check:subresource=finalizers - - apiGroups: - - targets.typhoon.zeiss.com - resources: - - cloudeventstargets/finalizers - - httptargets/finalizers - - logzmetricstargets/finalizers - - logztargets/finalizers - - splunktargets/finalizers - verbs: - - update - # +rbac-check:subresource=finalizers - - apiGroups: - - flow.typhoon.zeiss.com - resources: - - jqtransformations/finalizers - - synchronizers/finalizers - - transformations/finalizers - - xmltojsontransformations/finalizers - - xslttransformations/finalizers - verbs: - - update - # +rbac-check:subresource=finalizers - - apiGroups: - - extensions.typhoon.zeiss.com - resources: - - functions/finalizers - verbs: - - update - # +rbac-check:subresource=finalizers - - apiGroups: - - routing.typhoon.zeiss.com - resources: - - filters/finalizers - - splitters/finalizers - verbs: - - update - # Manage resource-specific ServiceAccounts and RoleBindings - - apiGroups: - - '' - resources: - - serviceaccounts - - serviceaccounts/finalizers - verbs: - - list - - watch - - create - - update - - delete - - apiGroups: - - rbac.authorization.k8s.io - resources: - - rolebindings - verbs: - - list - - watch - - create - - apiGroups: - - rbac.authorization.k8s.io - resources: - - rolebindings - # Only multi-tenant components receive permissions via RoleBindings to - # interact with the Kubernetes API. - resourceNames: - - awssnssource-adapter - - zendesksource-adapter - - filter-adapter - - splitter-adapter - verbs: - - update - # Read credentials - - apiGroups: - - '' - resources: - - secrets - verbs: - - get - # Required by Function controller to store, and mount user's code - - apiGroups: - - '' - resources: - - configmaps - verbs: - - get - - list - - create - - update - - delete - - patch - - watch - # Read controller configurations - - apiGroups: - - '' - resources: - - configmaps - verbs: - - list - - watch - - apiGroups: - - '' - resources: - - configmaps - resourceNames: - - config-logging - - config-observability - - config-leader-election - verbs: - - get - # Acquire leases for leader election - - apiGroups: - - coordination.k8s.io - resources: - - leases - verbs: - - get - - create - - update - # Observe status of Pods and their ancestors - - apiGroups: - - '' - resources: - - pods - verbs: - - list - - watch - - apiGroups: - - apps - resources: - - replicasets - verbs: - - list - - watch ---- -# This role is used to grant receive adapters read-only access to per-component -# configurations such as logging, observability and tracing. -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: typhoon-config-watcher - labels: - app.kubernetes.io/part-of: typhoon -rules: - - apiGroups: - - '' - resources: - - configmaps - verbs: - - list - - watch - - get ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: awssnssource-adapter - labels: - app.kubernetes.io/part-of: typhoon -rules: - # Record Kubernetes events - - apiGroups: - - '' - resources: - - events - verbs: - - create - - patch - - update - # Read Source resources and update their statuses - - apiGroups: - - sources.typhoon.zeiss.com - resources: - - awssnssources - verbs: - - list - - watch - - apiGroups: - - sources.typhoon.zeiss.com - resources: - - awssnssources/status - verbs: - - patch - # Read credentials - - apiGroups: - - '' - resources: - - secrets - verbs: - - get - # Acquire leases for leader election - - apiGroups: - - coordination.k8s.io - resources: - - leases - verbs: - - get - - create - - update ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: zendesksource-adapter - labels: - app.kubernetes.io/part-of: typhoon -rules: - # Record Kubernetes events - - apiGroups: - - '' - resources: - - events - verbs: - - create - - patch - - update - # Read Source resources - - apiGroups: - - sources.typhoon.zeiss.com - resources: - - zendesksources - verbs: - - list - - watch - # Read credentials - - apiGroups: - - '' - resources: - - secrets - verbs: - - get - # Acquire leases for leader election - - apiGroups: - - coordination.k8s.io - resources: - - leases - verbs: - - get - - create - - update ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: filter-adapter - labels: - app.kubernetes.io/part-of: typhoon -rules: - - apiGroups: - - '' - resources: - - events - verbs: - - create - - patch - - update - - apiGroups: - - '' - resources: - - configmaps - verbs: - - get - - list - - watch - - apiGroups: - - routing.typhoon.zeiss.com - resources: - - filters - verbs: - - get - - list - - watch - - apiGroups: - - coordination.k8s.io - resources: - - leases - verbs: - - get - - create - - update ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: splitter-adapter - labels: - app.kubernetes.io/part-of: typhoon -rules: - - apiGroups: - - '' - resources: - - events - verbs: - - create - - patch - - update - - apiGroups: - - '' - resources: - - configmaps - verbs: - - get - - list - - watch - - apiGroups: - - routing.typhoon.zeiss.com - resources: - - splitters - verbs: - - get - - list - - watch - - apiGroups: - - coordination.k8s.io - resources: - - leases - verbs: - - get - - create - - update ---- -# This role provides readonly access to "Source" duck types. -# All the rules it contains get aggregated into the "source-observer" ClusterRole provided by Knative Eventing. -# see https://github.com/knative/eventing/blob/release-0.26/docs/spec/sources.md#source-rbac -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: typhoon-source-observer - labels: - app.kubernetes.io/part-of: typhoon - duck.knative.dev/source: 'true' -rules: - # +rbac-check - - apiGroups: - - sources.typhoon.zeiss.com - resources: - - cloudeventssources - - httppollersources - - kafkasources - - webhooksources - verbs: - - get - - list - - watch ---- -# This aggregated role grants read-only access to Addressables. -# It is intended mainly to allow sink resolvers to resolve URLs from object references. -# -# NOTE: This same role can also be found in Knative Eventing. It is duplicated here to allow running typhoon in a -# cluster which doesn't have Knative Eventing deployed. -# Source: -# https://github.com/knative/eventing/blob/knative-v1.1.0/config/core/roles/addressable-resolvers-clusterrole.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: addressable-resolver - labels: - app.kubernetes.io/part-of: typhoon -aggregationRule: - clusterRoleSelectors: - - matchLabels: - duck.knative.dev/addressable: 'true' -rules: [] # Rules are automatically filled in by the Kubernetes controller manager. ---- -# This role provides readonly access to "Addressable" duck types. -# All the rules it contains get aggregated into the "addressable-resolver" ClusterRole. -# https://github.com/knative/eventing/blob/release-0.26/config/core/roles/addressable-resolvers-clusterrole.yaml#L15-L28 -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: typhoon-addressable-resolver - labels: - app.kubernetes.io/part-of: typhoon - duck.knative.dev/addressable: 'true' -rules: - # +rbac-check - - apiGroups: - - targets.typhoon.zeiss.com - resources: - - awscomprehendtargets - - awsdynamodbtargets - - awseventbridgetargets - - awskinesistargets - - awslambdatargets - - awss3targets - - awssnstargets - - awssqstargets - - azureeventhubstargets - - azuresentineltargets - - azureservicebustargets - - cloudeventstargets - - datadogtargets - - elasticsearchtargets - - googlecloudfirestoretargets - - googlecloudpubsubtargets - - googlecloudstoragetargets - - googlecloudworkflowstargets - - googlesheettargets - - httptargets - - ibmmqtargets - - jiratargets - - logzmetricstargets - - logztargets - - mongodbtargets - - oracletargets - - salesforcetargets - - sendgridtargets - - slacktargets - - solacetargets - - splunktargets - - twiliotargets - - zendesktargets - verbs: - - get - - list - - watch - # +rbac-check - - apiGroups: - - flow.typhoon.zeiss.com - resources: - - jqtransformations - - synchronizers - - transformations - - xmltojsontransformations - - xslttransformations - verbs: - - get - - list - - watch - # +rbac-check - - apiGroups: - - extensions.typhoon.zeiss.com - resources: - - functions - verbs: - - get - - list - - watch - # +rbac-check - - apiGroups: - - routing.typhoon.zeiss.com - resources: - - filters - - splitters - verbs: - - get - - list - - watch - # Allow resolving URLs of a few additional common types which are not supplied by typhoon. - - apiGroups: - - '' - resources: - - services - verbs: - - get - - list - - watch - - apiGroups: - - serving.knative.dev - resources: - - routes - - services - verbs: - - get - - list - - watch - ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: typhoon-controller - namespace: typhoon - labels: - app.kubernetes.io/part-of: typhoon ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: typhoon-webhook - namespace: typhoon - labels: - app.kubernetes.io/part-of: typhoon - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: typhoon-webhook - labels: - app.kubernetes.io/part-of: typhoon -subjects: - - kind: ServiceAccount - name: typhoon-webhook - namespace: typhoon -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: typhoon-webhook - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: typhoon-controller - labels: - app.kubernetes.io/part-of: typhoon -subjects: - - kind: ServiceAccount - name: typhoon-controller - namespace: typhoon -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: typhoon-controller ---- -# Permissions not required by controllers directly, but granted to -# receive-adapters via RoleBindings. -# -# Without them, the following error is thrown: -# "attempting to grant RBAC permissions not currently held" -# -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: awssnssource-adapter - labels: - app.kubernetes.io/part-of: typhoon -subjects: - - kind: ServiceAccount - name: typhoon-controller - namespace: typhoon -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: awssnssource-adapter ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: zendesksource-adapter - labels: - app.kubernetes.io/part-of: typhoon -subjects: - - kind: ServiceAccount - name: typhoon-controller - namespace: typhoon -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: zendesksource-adapter ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: filter-adapter - labels: - app.kubernetes.io/part-of: typhoon -subjects: - - kind: ServiceAccount - name: typhoon-controller - namespace: typhoon -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: filter-adapter ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: splitter-adapter - labels: - app.kubernetes.io/part-of: typhoon -subjects: - - kind: ServiceAccount - name: typhoon-controller - namespace: typhoon -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: splitter-adapter ---- -# Resolve sink URIs when Knative is installed -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: typhoon-controller-addressable-resolver-from-knative - labels: - app.kubernetes.io/part-of: typhoon -subjects: - - kind: ServiceAccount - name: typhoon-controller - namespace: typhoon -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: addressable-resolver ---- -# Resolve sink URIs when typhoon Core is installed -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: typhoon-controller-addressable-resolver-from-typhoon - labels: - app.kubernetes.io/part-of: typhoon -subjects: - - kind: ServiceAccount - name: typhoon-controller - namespace: typhoon -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: addressable-resolver-typhoon - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: cloudeventssources.sources.typhoon.zeiss.com - labels: - eventing.knative.dev/source: 'true' - duck.knative.dev/source: 'true' - knative.dev/crd-install: 'true' - typhoon.zeiss.com/crd-install: 'true' -spec: - group: sources.typhoon.zeiss.com - scope: Namespaced - names: - kind: CloudEventsSource - plural: cloudeventssources - categories: - - all - - knative - - eventing - - sources - versions: - - name: v1alpha1 - served: true - storage: true - subresources: - status: {} - schema: - openAPIV3Schema: - description: typhoon event source for receiving arbitrary CloudEvents over HTTP. - type: object - properties: - spec: - description: Specification for the CloudEvents source. - type: object - properties: - credentials: - description: Optional credentials specification for incoming requests. - type: object - properties: - basicAuths: - description: Array of HTTP basic authentication parameters, all present usernames and passwords are considered valid. - type: array - items: - type: object - properties: - username: - description: User name for HTTP Basic authentication. - type: string - password: - description: Password for HTTP Basic authentication. - type: object - properties: - valueFromSecret: - description: A reference to a Kubernetes Secret object containing the password. - type: object - properties: - name: - description: Name of the Secret object. - type: string - key: - description: Key from the Secret object. - type: string - required: - - name - - key - required: [valueFromSecret] - required: - - username - - password - required: [basicAuths] - path: - description: Path where incoming CloudEvents will be accepted. - type: string - rateLimiter: - description: Rate limiter provides a mechanism to reject incoming requests when a threshold is trespassed, informing the caller to retry later. - type: object - properties: - requestsPerSecond: - description: Number of requests accepted per time duration. - type: integer - required: - - requestsPerSecond - ceOverrides: - description: Defines overrides/additions to incoming CloudEvents attributes. - type: object - properties: - extensions: - type: object - properties: - type: - type: string - source: - type: string - subject: - type: string - required: - - extensions - sink: - description: The destination of events generated from requests to the source. - type: object - properties: - ref: - description: Reference to an addressable Kubernetes object to be used as the destination of events. - type: object - properties: - apiVersion: - type: string - kind: - type: string - namespace: - type: string - name: - type: string - required: - - apiVersion - - kind - - name - uri: - description: URI to use as the destination of events. - type: string - format: uri - anyOf: - - required: [ref] - - required: [uri] - adapterOverrides: - description: Kubernetes object parameters to apply on top of default adapter values. - type: object - properties: - annotations: - description: Adapter annotations. - type: object - additionalProperties: - type: string - labels: - description: Adapter labels. - type: object - additionalProperties: - type: string - env: - description: Adapter environment variables. - type: array - items: - type: object - properties: - name: - type: string - value: - type: string - public: - description: Adapter visibility scope. - type: boolean - resources: - description: Compute Resources required by the adapter. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Limits describes the maximum amount of compute resources allowed. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - tolerations: - description: Pod tolerations, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ Tolerations require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: array - items: - type: object - properties: - key: - description: Taint key that the toleration applies to. - type: string - operator: - description: Key's relationship to the value. - type: string - enum: [Exists, Equal] - value: - description: Taint value the toleration matches to. - type: string - effect: - description: Taint effect to match. - type: string - enum: [NoSchedule, PreferNoSchedule, NoExecute] - tolerationSeconds: - description: Period of time a toleration of effect NoExecute tolerates the taint. - type: integer - format: int64 - nodeSelector: - description: NodeSelector only allow the object pods to be created at nodes where all selector labels are present, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector. NodeSelector require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - additionalProperties: - type: string - affinity: - description: Scheduling constraints of the pod. More info at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity. Affinity require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - x-kubernetes-preserve-unknown-fields: true - required: - - sink - status: - description: Reported status of the event source. - type: object - properties: - sinkUri: - description: URI of the sink where events are currently sent to. - type: string - format: uri - ceAttributes: - type: array - items: - type: object - properties: - type: - type: string - source: - type: string - required: - - type - - source - observedGeneration: - type: integer - format: int64 - conditions: - type: array - items: - type: object - properties: - type: - type: string - status: - type: string - enum: ['True', 'False', Unknown] - severity: - type: string - enum: [Error, Warning, Info] - reason: - type: string - message: - type: string - lastTransitionTime: - type: string - format: date-time - required: - - type - - status - address: - description: Public address of the HTTP/S endpoint exposing the source. - type: object - properties: - url: - type: string - additionalPrinterColumns: - - name: Ready - type: string - jsonPath: .status.conditions[?(@.type=='Ready')].status - - name: Reason - type: string - jsonPath: .status.conditions[?(@.type=='Ready')].reason - - name: URL - type: string - jsonPath: .status.address.url - - name: Sink - type: string - jsonPath: .status.sinkUri - - name: Age - type: date - jsonPath: .metadata.creationTimestamp - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: httppollersources.sources.typhoon.zeiss.com - labels: - eventing.knative.dev/source: 'true' - duck.knative.dev/source: 'true' - knative.dev/crd-install: 'true' - typhoon.zeiss.com/crd-install: 'true' -spec: - group: sources.typhoon.zeiss.com - scope: Namespaced - names: - kind: HTTPPollerSource - plural: httppollersources - categories: - - all - - knative - - eventing - - sources - versions: - - name: v1alpha1 - served: true - storage: true - subresources: - status: {} - schema: - openAPIV3Schema: - description: typhoon event source for sourcing events by polling HTTP/S endpoints. - type: object - properties: - spec: - description: Desired state of the event source. - type: object - properties: - eventType: - description: "Value of the CloudEvents 'type' attribute to set on ingested events. Describes the type of event related to the originating occurrence. Please refer to the CloudEvents specification for more details: https://github.com/cloudevents/spec/blob/v1.0.1/spec.md#type" - type: string - eventSource: - description: "Value of the CloudEvents 'source' attribute to set on ingested events. Identifies the context in which an event happened. Must be expressed as a URI-reference. Please refer to the CloudEvents specification for more details: https://github.com/cloudevents/spec/blob/v1.0.1/spec.md#source-1" - type: string - endpoint: - description: HTTP/S URL of the endpoint to poll data from. - type: string - format: url - pattern: ^https?:\/\/.+$ - method: - description: HTTP request method to use in requests to the specified 'endpoint'. - type: string - enum: [GET, POST, PUT, PATCH, DELETE] - skipVerify: - description: Controls whether the HTTP client verifies the server's certificate chain and host name when communicating over TLS. - type: boolean - caCertificate: - description: CA certificate in X.509 format the HTTP client should use to verify the identity of remote servers when communicating over TLS. - type: string - basicAuthUsername: - description: User name to set in HTTP requests that require HTTP Basic authentication. - type: string - basicAuthPassword: - description: Password to set in HTTP requests that require HTTP Basic authentication. - type: object - properties: - value: - description: Literal value of the password. - type: string - valueFromSecret: - description: A reference to a Kubernetes Secret object containing the password. - type: object - properties: - name: - description: Name of the Secret object. - type: string - key: - description: Key from the Secret object. - type: string - required: - - name - - key - oneOf: - - required: [value] - - required: [valueFromSecret] - headers: - description: HTTP headers to include in HTTP requests sent to the endpoint. - type: object - additionalProperties: - type: string - interval: - description: Duration which defines how often the HTTP/S endpoint should be polled. Expressed as a duration string, which format is documented at https://pkg.go.dev/time#ParseDuration. - type: string - sink: - description: The destination of events generated by polling the HTTP/S endpoint. - type: object - properties: - ref: - description: Reference to an addressable Kubernetes object to be used as the destination of events. - type: object - properties: - apiVersion: - type: string - kind: - type: string - namespace: - type: string - name: - type: string - required: - - apiVersion - - kind - - name - uri: - description: URI to use as the destination of events. - type: string - format: uri - anyOf: - - required: [ref] - - required: [uri] - adapterOverrides: - description: Kubernetes object parameters to apply on top of default adapter values. - type: object - properties: - annotations: - description: Adapter annotations. - type: object - additionalProperties: - type: string - labels: - description: Adapter labels. - type: object - additionalProperties: - type: string - env: - description: Adapter environment variables. - type: array - items: - type: object - properties: - name: - type: string - value: - type: string - resources: - description: Compute Resources required by the adapter. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Limits describes the maximum amount of compute resources allowed. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - tolerations: - description: Pod tolerations, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ Tolerations require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: array - items: - type: object - properties: - key: - description: Taint key that the toleration applies to. - type: string - operator: - description: Key's relationship to the value. - type: string - enum: [Exists, Equal] - value: - description: Taint value the toleration matches to. - type: string - effect: - description: Taint effect to match. - type: string - enum: [NoSchedule, PreferNoSchedule, NoExecute] - tolerationSeconds: - description: Period of time a toleration of effect NoExecute tolerates the taint. - type: integer - format: int64 - nodeSelector: - description: NodeSelector only allow the object pods to be created at nodes where all selector labels are present, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector. NodeSelector require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - additionalProperties: - type: string - affinity: - description: Scheduling constraints of the pod. More info at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity. Affinity require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - x-kubernetes-preserve-unknown-fields: true - required: - - eventType - - method - - endpoint - - interval - - sink - status: - description: Reported status of the event source. - type: object - properties: - sinkUri: - description: URI of the sink where events are currently sent to. - type: string - format: uri - ceAttributes: - type: array - items: - type: object - properties: - type: - type: string - source: - type: string - required: - - type - - source - observedGeneration: - type: integer - format: int64 - conditions: - type: array - items: - type: object - properties: - type: - type: string - status: - type: string - enum: ['True', 'False', Unknown] - severity: - type: string - enum: [Error, Warning, Info] - reason: - type: string - message: - type: string - lastTransitionTime: - type: string - format: date-time - required: - - type - - status - additionalPrinterColumns: - - name: Ready - type: string - jsonPath: .status.conditions[?(@.type=='Ready')].status - - name: Reason - type: string - jsonPath: .status.conditions[?(@.type=='Ready')].reason - - name: Sink - type: string - jsonPath: .status.sinkUri - - name: Age - type: date - jsonPath: .metadata.creationTimestamp - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: kafkasources.sources.typhoon.zeiss.com - labels: - eventing.knative.dev/source: 'true' - duck.knative.dev/source: 'true' - knative.dev/crd-install: 'true' - typhoon.zeiss.com/crd-install: 'true' - annotations: - registry.knative.dev/eventTypes: | - [ - { "type": "io.typhoon.kafka.event" } - ] -spec: - group: sources.typhoon.zeiss.com - scope: Namespaced - names: - kind: KafkaSource - plural: kafkasources - categories: - - all - - knative - - eventing - - sources - versions: - - name: v1alpha1 - served: true - storage: true - subresources: - status: {} - schema: - openAPIV3Schema: - description: typhoon event source for Kafka. - type: object - properties: - spec: - description: Desired state of the event source. - type: object - properties: - topic: - description: Topic name to stream the target events to. - type: string - bootstrapServers: - description: Array of Kafka servers used to bootstrap the connection. - type: array - items: - type: string - minLength: 1 - groupID: - description: The ID of the kafka group. - type: string - auth: - description: Authentication method used to interact with Kafka. - type: object - properties: - saslEnable: - description: Boolean to indicate if SASL is enabled. - type: boolean - tlsEnable: - description: Boolean to indicate if TLS is enabled. - type: boolean - securityMechanism: - description: securityMechanism attribute indicate which mechanism to use. - type: string - enum: [GSSAPI, PLAIN, SCRAM-SHA-256, SCRAM-SHA-512] - username: - description: Kafka account username. - type: string - password: - description: Kafka account password. - type: object - properties: - value: - description: Plain text password. - type: string - valueFromSecret: - description: A reference to a Kubernetes Secret object containing the password. - type: object - properties: - name: - type: string - key: - type: string - required: - - name - - key - oneOf: - - required: [value] - - required: [valueFromSecret] - kerberos: - description: Kerberos Authentication method to interact with Kafka. - type: object - properties: - realm: - description: The name of the Kerberos Realm. - type: string - serviceName: - description: The primary name of the Kafka server configured. - type: string - username: - description: Kerberos username or Kerberos Principal Name. The Username or the Principal doesn't require the Realm in it. - type: string - password: - description: Kerberos Password. - type: object - properties: - value: - description: Plain text password. - type: string - valueFromSecret: - description: A reference to a Kubernetes Secret object containing the password. - type: object - properties: - name: - type: string - key: - type: string - required: - - name - - key - oneOf: - - required: [value] - - required: [valueFromSecret] - config: - type: object - properties: - valueFromSecret: - description: A reference to a Kubernetes Secret object containing the kerberos configuration file (krb5.conf). - type: object - properties: - name: - type: string - key: - type: string - required: - - name - - key - required: - - valueFromSecret - keytab: - type: object - properties: - valueFromSecret: - description: A reference to a Kubernetes Secret object containing the kerberos keytab file contents. - type: object - properties: - name: - type: string - key: - type: string - required: - - name - - key - required: - - valueFromSecret - tls: - description: TLS Authentication method to interact with Kafka. - type: object - properties: - ca: - description: The value to the configured CA. - type: object - properties: - valueFromSecret: - description: A reference to a Kubernetes Secret object containing the CA content. - type: object - properties: - name: - type: string - key: - type: string - required: - - name - - key - required: - - valueFromSecret - clientCert: - description: The value of the Client Cert. - type: object - properties: - valueFromSecret: - description: A reference to a Kubernetes Secret object containing the Client Cert content. - type: object - properties: - name: - type: string - key: - type: string - required: - - name - - key - required: - - valueFromSecret - clientKey: - description: The value of the Client Key. - type: object - properties: - valueFromSecret: - description: A reference to a Kubernetes Secret object containing the Client Key content. - type: object - properties: - name: - type: string - key: - type: string - required: - - name - - key - required: - - valueFromSecret - skipVerify: - description: SkipVerify controls whether a client verifies the server's certificate chain and host name. If skipVerify is true, crypto/tls accepts any certificate presented by the server and any host name in that certificate. In this mode, TLS is susceptible to machine-in-the-middle attacks unless custom verification is used. This should be used only for testing. - type: boolean - required: - - saslEnable - sink: - description: The destination of events sourced from Kafka Kafka. - type: object - properties: - ref: - description: Reference to an addressable Kubernetes object to be used as the destination of events. - type: object - properties: - apiVersion: - type: string - kind: - type: string - namespace: - type: string - name: - type: string - required: - - apiVersion - - kind - - name - uri: - description: URI to use as the destination of events. - type: string - format: uri - anyOf: - - required: [ref] - - required: [uri] - adapterOverrides: - description: Kubernetes object parameters to apply on top of default adapter values. - type: object - properties: - annotations: - description: Adapter annotations. - type: object - additionalProperties: - type: string - labels: - description: Adapter labels. - type: object - additionalProperties: - type: string - env: - description: Adapter environment variables. - type: array - items: - type: object - properties: - name: - type: string - value: - type: string - resources: - description: Compute Resources required by the adapter. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Limits describes the maximum amount of compute resources allowed. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - tolerations: - description: Pod tolerations, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ Tolerations require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: array - items: - type: object - properties: - key: - description: Taint key that the toleration applies to. - type: string - operator: - description: Key's relationship to the value. - type: string - enum: [Exists, Equal] - value: - description: Taint value the toleration matches to. - type: string - effect: - description: Taint effect to match. - type: string - enum: [NoSchedule, PreferNoSchedule, NoExecute] - tolerationSeconds: - description: Period of time a toleration of effect NoExecute tolerates the taint. - type: integer - format: int64 - nodeSelector: - description: NodeSelector only allow the object pods to be created at nodes where all selector labels are present, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector. NodeSelector require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - additionalProperties: - type: string - affinity: - description: Scheduling constraints of the pod. More info at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity. Affinity require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - x-kubernetes-preserve-unknown-fields: true - required: - - bootstrapServers - - topic - - groupID - - sink - status: - description: Reported status of the event source. - type: object - properties: - sinkUri: - description: URI of the sink where events are currently sent to. - type: string - format: uri - ceAttributes: - type: array - items: - type: object - properties: - type: - type: string - source: - type: string - required: - - type - - source - observedGeneration: - type: integer - format: int64 - conditions: - type: array - items: - type: object - properties: - type: - type: string - status: - type: string - enum: ['True', 'False', Unknown] - severity: - type: string - enum: [Error, Warning, Info] - reason: - type: string - message: - type: string - lastTransitionTime: - type: string - format: date-time - required: - - type - - status - address: - description: Public address of the HTTP/S endpoint exposing the source. - type: object - properties: - url: - type: string - additionalPrinterColumns: - - name: Ready - type: string - jsonPath: .status.conditions[?(@.type=='Ready')].status - - name: Reason - type: string - jsonPath: .status.conditions[?(@.type=='Ready')].reason - - name: URL - type: string - jsonPath: .status.address.url - - name: Sink - type: string - jsonPath: .status.sinkUri - - name: Age - type: date - jsonPath: .metadata.creationTimestamp - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: ocimetricssources.sources.typhoon.zeiss.com - labels: - eventing.knative.dev/source: 'true' - duck.knative.dev/source: 'true' - knative.dev/crd-install: 'true' - typhoon.zeiss.com/crd-install: 'true' - annotations: - registry.knative.dev/eventTypes: | - [ - { - "type": "com.oracle.cloud.monitoring", - "schema": "https://raw.githubusercontent.com/zeiss/typhoon/main/schemas/com.oracle.cloud.monitoring.json", - "description": "" - } - ] -spec: - group: sources.typhoon.zeiss.com - scope: Namespaced - names: - kind: OCIMetricsSource - plural: ocimetricssources - categories: - - all - - knative - - eventing - - sources - versions: - - name: v1alpha1 - served: true - storage: true - subresources: - status: {} - schema: - openAPIV3Schema: - description: typhoon event source for Oracle Cloud Infrastructure (OCI) Metrics. - type: object - properties: - spec: - description: Desired state of the event source. - type: object - properties: - oracleApiPrivateKey: - description: PEM encoded API private key that has access to the OCI metrics API. - type: object - properties: - value: - description: Literal value of the private key. - type: string - valueFromSecret: - description: A reference to a Kubernetes Secret containing the private key. - type: object - properties: - name: - type: string - key: - type: string - required: - - name - - key - oneOf: - - required: [value] - - required: [valueFromSecret] - oracleApiPrivateKeyPassphrase: - description: Passphrase to unlock the 'oracleApiPrivateKey'. - type: object - properties: - value: - description: Literal value of the passphrase. - type: string - valueFromSecret: - description: A reference to a Kubernetes Secret containing the passphrase. - type: object - properties: - name: - type: string - key: - type: string - required: - - name - - key - oneOf: - - required: [value] - - required: [valueFromSecret] - oracleApiPrivateKeyFingerprint: - description: MD5 fingerprint of 'oracleApiPrivateKey'. - type: object - properties: - value: - description: Literal value of the fingerprint. - type: string - valueFromSecret: - description: A reference to a Kubernetes Secret containing the fingerprint. - type: object - properties: - name: - type: string - key: - type: string - required: - - name - - key - oneOf: - - required: [value] - - required: [valueFromSecret] - oracleTenancy: - description: OCID of the target tenancy. - type: string - oracleUser: - description: OCID of the target user associated with the 'oracleApiPrivateKey'. - type: string - oracleRegion: - description: OCI target region. - type: string - metricsPollingFrequency: - description: Polling frequency of the OCI API for metrics details (supported values 1m-60m, 1h-24h, 1d). - type: string - metrics: - description: Array of metrics to poll for. - type: array - items: - type: object - properties: - name: - description: Used as the event source for the metric. - type: string - metricsNamespace: - description: Type of metrics to pull from such as oci_computeagent, oci_apigateway, oci_vnc, or oci_compute_infrastructure_health. - type: string - metricsQuery: - description: Metrics query to send based off of OCI Monitoring Query Language. - type: string - oracleCompartment: - description: OCID of the target compartment (if not specified, default to the value of 'oracleTenancy'). - type: string - required: - - name - - metricsNamespace - - metricsQuery - sink: - description: The destination of events sourced from OCI metrics. - type: object - properties: - ref: - description: Reference to an addressable Kubernetes object to be used as the destination of events. - type: object - properties: - apiVersion: - type: string - kind: - type: string - namespace: - type: string - name: - type: string - required: - - apiVersion - - kind - - name - uri: - description: URI to use as the destination of events. - type: string - format: uri - anyOf: - - required: [ref] - - required: [uri] - adapterOverrides: - description: Kubernetes object parameters to apply on top of default adapter values. - type: object - properties: - annotations: - description: Adapter annotations. - type: object - additionalProperties: - type: string - labels: - description: Adapter labels. - type: object - additionalProperties: - type: string - env: - description: Adapter environment variables. - type: array - items: - type: object - properties: - name: - type: string - value: - type: string - resources: - description: Compute Resources required by the adapter. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Limits describes the maximum amount of compute resources allowed. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - tolerations: - description: Pod tolerations, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ Tolerations require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: array - items: - type: object - properties: - key: - description: Taint key that the toleration applies to. - type: string - operator: - description: Key's relationship to the value. - type: string - enum: [Exists, Equal] - value: - description: Taint value the toleration matches to. - type: string - effect: - description: Taint effect to match. - type: string - enum: [NoSchedule, PreferNoSchedule, NoExecute] - tolerationSeconds: - description: Period of time a toleration of effect NoExecute tolerates the taint. - type: integer - format: int64 - nodeSelector: - description: NodeSelector only allow the object pods to be created at nodes where all selector labels are present, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector. NodeSelector require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - additionalProperties: - type: string - affinity: - description: Scheduling constraints of the pod. More info at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity. Affinity require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - x-kubernetes-preserve-unknown-fields: true - required: - - oracleApiPrivateKey - - oracleApiPrivateKeyPassphrase - - oracleApiPrivateKeyFingerprint - - oracleTenancy - - oracleUser - - oracleRegion - - metrics - - sink - status: - description: Reported status of the event source. - type: object - properties: - sinkUri: - description: URI of the sink where events are currently sent to. - type: string - format: uri - ceAttributes: - type: array - items: - type: object - properties: - type: - type: string - source: - type: string - required: - - type - - source - observedGeneration: - type: integer - format: int64 - conditions: - type: array - items: - type: object - properties: - type: - type: string - status: - type: string - enum: ['True', 'False', Unknown] - severity: - type: string - enum: [Error, Warning, Info] - reason: - type: string - message: - type: string - lastTransitionTime: - type: string - format: date-time - required: - - type - - status - additionalPrinterColumns: - - name: Ready - type: string - jsonPath: .status.conditions[?(@.type=='Ready')].status - - name: Reason - type: string - jsonPath: .status.conditions[?(@.type=='Ready')].reason - - name: URL - type: string - jsonPath: .status.address.url - - name: Sink - type: string - jsonPath: .status.sinkUri - - name: Age - type: date - jsonPath: .metadata.creationTimestamp - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: webhooksources.sources.typhoon.zeiss.com - labels: - eventing.knative.dev/source: 'true' - duck.knative.dev/source: 'true' - knative.dev/crd-install: 'true' - typhoon.zeiss.com/crd-install: 'true' -spec: - group: sources.typhoon.zeiss.com - scope: Namespaced - names: - kind: WebhookSource - plural: webhooksources - categories: - - all - - knative - - eventing - - sources - versions: - - name: v1alpha1 - served: true - storage: true - subresources: - status: {} - schema: - openAPIV3Schema: - description: typhoon event source for receiving arbitrary events over a HTTP/S webhook. - type: object - properties: - spec: - description: Desired state of the event source. - type: object - properties: - eventType: - description: "Value of the CloudEvents 'type' attribute to set on ingested events. Describes the type of event related to the originating occurrence. Please refer to the CloudEvents specification for more details: https://github.com/cloudevents/spec/blob/v1.0.1/spec.md#type" - type: string - eventSource: - description: "Value of the CloudEvents 'source' attribute to set on ingested events. Identifies the context in which an event happened. Must be expressed as a URI-reference. Please refer to the CloudEvents specification for more details: https://github.com/cloudevents/spec/blob/v1.0.1/spec.md#source-1" - type: string - eventExtensionAttributes: - description: CloudEvents extension attributes to be added based on HTTP request fields. - type: object - properties: - from: - description: Source elements to create attributes from. Elements that might contain multiple values (headers, queries) will convert all of them into extension attributes - type: array - items: - type: string - enum: - - method - - path - - host - - queries - - headers - required: - - from - corsAllowOrigin: - description: Value of the CORS 'Access-Control-Allow-Origin' header to set on ingested requests. - type: string - basicAuthUsername: - description: User name HTTP clients must set to authenticate with the webhook using HTTP Basic authentication. - type: string - basicAuthPassword: - description: Password HTTP clients must set to authenticate with the webhook using HTTP Basic authentication. - type: object - properties: - value: - description: Literal value of the password. - type: string - valueFromSecret: - description: A reference to a Kubernetes Secret object containing the password. - type: object - properties: - name: - description: Name of the Secret object. - type: string - key: - description: Key from the Secret object. - type: string - required: - - name - - key - oneOf: - - required: [value] - - required: [valueFromSecret] - sink: - description: The destination of events generated from requests to the webhook. - type: object - properties: - ref: - description: Reference to an addressable Kubernetes object to be used as the destination of events. - type: object - properties: - apiVersion: - type: string - kind: - type: string - namespace: - type: string - name: - type: string - required: - - apiVersion - - kind - - name - uri: - description: URI to use as the destination of events. - type: string - format: uri - anyOf: - - required: [ref] - - required: [uri] - adapterOverrides: - description: Kubernetes object parameters to apply on top of default adapter values. - type: object - properties: - annotations: - description: Adapter annotations. - type: object - additionalProperties: - type: string - labels: - description: Adapter labels. - type: object - additionalProperties: - type: string - env: - description: Adapter environment variables. - type: array - items: - type: object - properties: - name: - type: string - value: - type: string - public: - description: Adapter visibility scope. - type: boolean - resources: - description: Compute Resources required by the adapter. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Limits describes the maximum amount of compute resources allowed. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - tolerations: - description: Pod tolerations, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ Tolerations require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: array - items: - type: object - properties: - key: - description: Taint key that the toleration applies to. - type: string - operator: - description: Key's relationship to the value. - type: string - enum: [Exists, Equal] - value: - description: Taint value the toleration matches to. - type: string - effect: - description: Taint effect to match. - type: string - enum: [NoSchedule, PreferNoSchedule, NoExecute] - tolerationSeconds: - description: Period of time a toleration of effect NoExecute tolerates the taint. - type: integer - format: int64 - nodeSelector: - description: NodeSelector only allow the object pods to be created at nodes where all selector labels are present, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector. NodeSelector require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - additionalProperties: - type: string - affinity: - description: Scheduling constraints of the pod. More info at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity. Affinity require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - x-kubernetes-preserve-unknown-fields: true - required: - - eventType - - sink - status: - description: Reported status of the event source. - type: object - properties: - sinkUri: - description: URI of the sink where events are currently sent to. - type: string - format: uri - ceAttributes: - type: array - items: - type: object - properties: - type: - type: string - source: - type: string - required: - - type - - source - observedGeneration: - type: integer - format: int64 - conditions: - type: array - items: - type: object - properties: - type: - type: string - status: - type: string - enum: ['True', 'False', Unknown] - severity: - type: string - enum: [Error, Warning, Info] - reason: - type: string - message: - type: string - lastTransitionTime: - type: string - format: date-time - required: - - type - - status - address: - description: Public address of the HTTP/S endpoint exposing the webhook. - type: object - properties: - url: - type: string - additionalPrinterColumns: - - name: Ready - type: string - jsonPath: .status.conditions[?(@.type=='Ready')].status - - name: Reason - type: string - jsonPath: .status.conditions[?(@.type=='Ready')].reason - - name: URL - type: string - jsonPath: .status.address.url - - name: Sink - type: string - jsonPath: .status.sinkUri - - name: Age - type: date - jsonPath: .metadata.creationTimestamp - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: cloudeventstargets.targets.typhoon.zeiss.com - labels: - knative.dev/crd-install: 'true' - typhoon.zeiss.com/crd-install: 'true' - duck.knative.dev/addressable: 'true' - annotations: - registry.typhoon.zeiss.com/acceptedEventTypes: | - [ - { "type": "*" } - ] - registry.knative.dev/eventTypes: | - [ - { "type": "*" } - ] -spec: - group: targets.typhoon.zeiss.com - names: - kind: CloudEventsTarget - plural: cloudeventstargets - categories: - - all - - knative - - eventing - - targets - scope: Namespaced - versions: - - name: v1alpha1 - served: true - storage: true - subresources: - status: {} - schema: - openAPIV3Schema: - type: object - description: typhoon event target that acts as a gateway for outgoing CloudEvents. - properties: - spec: - type: object - description: Desired state of event target. - properties: - endpoint: - description: An HTTP CloudEvents endpoint to stream events to. - type: string - format: url - pattern: ^https?:\/\/.+$ - path: - description: Path at the remote endpoint under which requests are accepted. - type: string - credentials: - description: Optional credentials specification for remote CloudEvents endpoint. - type: object - properties: - basicAuth: - description: HTTP basic authentication parameters. - type: object - properties: - username: - description: User name for HTTP Basic authentication. - type: string - password: - description: Password for HTTP Basic authentication. - type: object - properties: - valueFromSecret: - description: A reference to a Kubernetes Secret object containing the password. - type: object - properties: - name: - description: Name of the Secret object. - type: string - key: - description: Key from the Secret object. - type: string - required: - - name - - key - required: [valueFromSecret] - required: - - username - - password - required: [basicAuth] - adapterOverrides: - description: Kubernetes object parameters to apply on top of default adapter values. - type: object - properties: - annotations: - description: Adapter annotations. - type: object - additionalProperties: - type: string - labels: - description: Adapter labels. - type: object - additionalProperties: - type: string - env: - description: Adapter environment variables. - type: array - items: - type: object - properties: - name: - type: string - value: - type: string - public: - description: Adapter visibility scope. - type: boolean - resources: - description: Compute Resources required by the adapter. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Limits describes the maximum amount of compute resources allowed. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - tolerations: - description: Pod tolerations, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ Tolerations require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: array - items: - type: object - properties: - key: - description: Taint key that the toleration applies to. - type: string - operator: - description: Key's relationship to the value. - type: string - enum: [Exists, Equal] - value: - description: Taint value the toleration matches to. - type: string - effect: - description: Taint effect to match. - type: string - enum: [NoSchedule, PreferNoSchedule, NoExecute] - tolerationSeconds: - description: Period of time a toleration of effect NoExecute tolerates the taint. - type: integer - format: int64 - nodeSelector: - description: NodeSelector only allow the object pods to be created at nodes where all selector labels are present, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector. NodeSelector require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - additionalProperties: - type: string - affinity: - description: Scheduling constraints of the pod. More info at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity. Affinity require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - x-kubernetes-preserve-unknown-fields: true - required: - - endpoint - status: - type: object - description: Reported status of the event target. - properties: - observedGeneration: - type: integer - format: int64 - conditions: - type: array - items: - type: object - properties: - type: - type: string - status: - type: string - enum: ['True', 'False', Unknown] - severity: - type: string - enum: [Error, Warning, Info] - reason: - type: string - message: - type: string - lastTransitionTime: - type: string - format: date-time - required: - - type - - status - address: - type: object - properties: - url: - type: string - 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 - - name: Age - type: date - jsonPath: .metadata.creationTimestamp - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: httptargets.targets.typhoon.zeiss.com - labels: - knative.dev/crd-install: 'true' - typhoon.zeiss.com/crd-install: 'true' - duck.knative.dev/addressable: 'true' - annotations: - registry.typhoon.zeiss.com/acceptedEventTypes: | - [ - { - "type": "io.typhoon.http.request", - "schema": "https://raw.githubusercontent.com/zeiss/typhoon/main/schemas/io.typhoon.http.request.json" - }, - { "type": "*" } - ] - registry.knative.dev/eventTypes: | - [ - { "type": "*" } - ] -spec: - group: targets.typhoon.zeiss.com - names: - kind: HTTPTarget - plural: httptargets - categories: - - all - - knative - - eventing - - targets - scope: Namespaced - versions: - - name: v1alpha1 - served: true - storage: true - subresources: - status: {} - schema: - openAPIV3Schema: - type: object - description: typhoon event target for generic HTTP endpoints. - properties: - spec: - type: object - description: Desired state of event target. - properties: - response: - description: HTTP target response event attributes. - type: object - properties: - eventType: - description: EventType is required to set the Type for the ingested event. - type: string - minLength: 1 - eventSource: - description: EventSource is an optional but recommended field for identifying the instance producing the events. - type: string - required: - - eventType - endpoint: - description: An HTTP based REST endpoint to stream events to. - type: string - format: url - pattern: ^https?:\/\/.+$ - method: - description: The HTTP method to use for the request. - type: string - enum: [GET, POST, PUT, PATCH, DELETE] - skipVerify: - description: Skip validation and verification of the SSL/TLS certificate. - type: boolean - default: false - caCertificate: - description: The CA certificate used to sign the certificated used by the target server. - type: string - basicAuthUsername: - description: When using HTTP Basic authentication, the username to connect to the target service. - type: string - basicAuthPassword: - description: When using HTTP Basic authentication, the password to connect to the target service. - type: object - properties: - secretKeyRef: - type: object - properties: - key: - type: string - name: - type: string - oauthClientID: - description: When using OAuth, the client id used to authenticate against the target service. - type: string - oauthClientSecret: - description: When using OAuth, the client secret used to authenticate against the target service - type: object - properties: - secretKeyRef: - type: object - properties: - key: - type: string - name: - type: string - oauthTokenURL: - description: When using OAuth, the Token URL used to sign the request against. - type: string - oauthScopes: - description: When using OAuth, the scopes required by the target to use the service. - type: array - items: - type: string - headers: - description: Additional headers required to be set when communicating wiht the target service. - type: object - additionalProperties: - type: string - adapterOverrides: - description: Kubernetes object parameters to apply on top of default adapter values. - type: object - properties: - annotations: - description: Adapter annotations. - type: object - additionalProperties: - type: string - labels: - description: Adapter labels. - type: object - additionalProperties: - type: string - env: - description: Adapter environment variables. - type: array - items: - type: object - properties: - name: - type: string - value: - type: string - public: - description: Adapter visibility scope. - type: boolean - resources: - description: Compute Resources required by the adapter. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Limits describes the maximum amount of compute resources allowed. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - tolerations: - description: Pod tolerations, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ Tolerations require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: array - items: - type: object - properties: - key: - description: Taint key that the toleration applies to. - type: string - operator: - description: Key's relationship to the value. - type: string - enum: [Exists, Equal] - value: - description: Taint value the toleration matches to. - type: string - effect: - description: Taint effect to match. - type: string - enum: [NoSchedule, PreferNoSchedule, NoExecute] - tolerationSeconds: - description: Period of time a toleration of effect NoExecute tolerates the taint. - type: integer - format: int64 - nodeSelector: - description: NodeSelector only allow the object pods to be created at nodes where all selector labels are present, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector. NodeSelector require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - additionalProperties: - type: string - affinity: - description: Scheduling constraints of the pod. More info at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity. Affinity require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - x-kubernetes-preserve-unknown-fields: true - required: - - endpoint - - method - status: - type: object - description: Reported status of the event target. - properties: - observedGeneration: - type: integer - format: int64 - ceAttributes: - type: array - items: - type: object - properties: - type: - type: string - source: - type: string - required: - - type - - source - conditions: - type: array - items: - type: object - properties: - type: - type: string - status: - type: string - enum: ['True', 'False', Unknown] - severity: - type: string - enum: [Error, Warning, Info] - reason: - type: string - message: - type: string - lastTransitionTime: - type: string - format: date-time - required: - - type - - status - address: - type: object - properties: - url: - type: string - 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 - - name: Age - type: date - jsonPath: .metadata.creationTimestamp - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: logzmetricstargets.targets.typhoon.zeiss.com - labels: - knative.dev/crd-install: 'true' - typhoon.zeiss.com/crd-install: 'true' - duck.knative.dev/addressable: 'true' - annotations: - registry.typhoon.zeiss.com/acceptedEventTypes: | - [ - { "type" : "io.typhoon.opentelemetry.metrics.push" } - ] -spec: - group: targets.typhoon.zeiss.com - names: - kind: LogzMetricsTarget - plural: logzmetricstargets - categories: - - all - - knative - - eventing - - targets - scope: Namespaced - versions: - - name: v1alpha1 - served: true - storage: true - subresources: - status: {} - schema: - openAPIV3Schema: - type: object - description: The OpenTelemetry metrics target pushes metrics to a range of backends. - properties: - spec: - type: object - description: The OpenTelemetry target exposes a common interface to a range of metrics backends. - properties: - connection: - type: object - description: Connection information for LogzMetrics. - properties: - listenerURL: - type: string - description: Listener URL for pushing metrics. - token: - type: object - description: Token for connecting to Logz metrics listener. - properties: - secretKeyRef: - type: object - properties: - key: - type: string - name: - type: string - instruments: - type: array - description: Instruments configured for pushing metrics. It is mandatory that all metrics pushed by using this target are pre-registered using this list. - items: - type: object - minLength: 1 - properties: - name: - type: string - description: Name for the Instrument. - description: - type: string - description: Description for the Instrument. - instrument: - type: string - enum: [Histogram, Counter, UpDownCounter] - description: "Instrument Kind as defined by OpenTelemetry. Supported values are\n- Histogram, for absolute values that can be aggregated. - Counter, for delta values that increase monotonically. - UpDownCounter, for delta values that can increase and decrease." - number: - type: string - enum: [Int64, Float64] - description: "Number Kind as defined by OpenTelemetry. Defines the measure data type accepted by the Instrument. Supported values are\n- Int64 - Float64" - required: - - name - - instrument - - number - eventOptions: - type: object - description: Event replies options. - properties: - payloadPolicy: - description: "Whether this target should generate response events. Possible values are\n- always, if a response is available it will be sent. - error, only responses categorized as errors will be sent. - never, no responses will be sent." - type: string - enum: [always, error, never] - adapterOverrides: - description: Kubernetes object parameters to apply on top of default adapter values. - type: object - properties: - annotations: - description: Adapter annotations. - type: object - additionalProperties: - type: string - labels: - description: Adapter labels. - type: object - additionalProperties: - type: string - env: - description: Adapter environment variables. - type: array - items: - type: object - properties: - name: - type: string - value: - type: string - public: - description: Adapter visibility scope. - type: boolean - resources: - description: Compute Resources required by the adapter. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Limits describes the maximum amount of compute resources allowed. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - tolerations: - description: Pod tolerations, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ Tolerations require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: array - items: - type: object - properties: - key: - description: Taint key that the toleration applies to. - type: string - operator: - description: Key's relationship to the value. - type: string - enum: [Exists, Equal] - value: - description: Taint value the toleration matches to. - type: string - effect: - description: Taint effect to match. - type: string - enum: [NoSchedule, PreferNoSchedule, NoExecute] - tolerationSeconds: - description: Period of time a toleration of effect NoExecute tolerates the taint. - type: integer - format: int64 - nodeSelector: - description: NodeSelector only allow the object pods to be created at nodes where all selector labels are present, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector. NodeSelector require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - additionalProperties: - type: string - affinity: - description: Scheduling constraints of the pod. More info at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity. Affinity require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - x-kubernetes-preserve-unknown-fields: true - required: - - connection - - instruments - status: - type: object - properties: - acceptedEventTypes: - type: array - items: - type: string - ceAttributes: - type: array - items: - type: object - properties: - type: - type: string - source: - type: string - required: - - type - - source - observedGeneration: - type: integer - format: int64 - conditions: - type: array - items: - type: object - properties: - type: - type: string - status: - type: string - enum: ['True', 'False', Unknown] - severity: - type: string - enum: [Error, Warning, Info] - reason: - type: string - message: - type: string - lastTransitionTime: - type: string - format: date-time - required: - - type - - status - address: - type: object - properties: - url: - type: string - 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 - - name: Age - type: date - jsonPath: .metadata.creationTimestamp - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: logztargets.targets.typhoon.zeiss.com - labels: - knative.dev/crd-install: 'true' - typhoon.zeiss.com/crd-install: 'true' - duck.knative.dev/addressable: 'true' - annotations: - registry.typhoon.zeiss.com/acceptedEventTypes: | - [ - { "type": "*" } - ] - registry.knative.dev/eventTypes: | - [ - { "type": "io.typhoon.logz.ship.response" } - ] -spec: - group: targets.typhoon.zeiss.com - names: - kind: LogzTarget - plural: logztargets - categories: - - all - - knative - - eventing - - targets - scope: Namespaced - versions: - - name: v1alpha1 - served: true - storage: true - subresources: - status: {} - schema: - openAPIV3Schema: - type: object - description: typhoon event target for Logz. - properties: - spec: - description: Desired state of event target. - type: object - properties: - shippingToken: - description: API token used to authenticate the event being streamed. - type: object - properties: - secretKeyRef: - type: object - properties: - key: - type: string - name: - type: string - eventOptions: - type: object - description: 'When should this target generate a response event for processing: always, on error, or never.' - properties: - payloadPolicy: - type: string - enum: [always, error, never] - logsListenerURL: - type: string - description: Logz listener host to stream events to. - adapterOverrides: - description: Kubernetes object parameters to apply on top of default adapter values. - type: object - properties: - annotations: - description: Adapter annotations. - type: object - additionalProperties: - type: string - labels: - description: Adapter labels. - type: object - additionalProperties: - type: string - env: - description: Adapter environment variables. - type: array - items: - type: object - properties: - name: - type: string - value: - type: string - public: - description: Adapter visibility scope. - type: boolean - resources: - description: Compute Resources required by the adapter. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Limits describes the maximum amount of compute resources allowed. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - tolerations: - description: Pod tolerations, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ Tolerations require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: array - items: - type: object - properties: - key: - description: Taint key that the toleration applies to. - type: string - operator: - description: Key's relationship to the value. - type: string - enum: [Exists, Equal] - value: - description: Taint value the toleration matches to. - type: string - effect: - description: Taint effect to match. - type: string - enum: [NoSchedule, PreferNoSchedule, NoExecute] - tolerationSeconds: - description: Period of time a toleration of effect NoExecute tolerates the taint. - type: integer - format: int64 - nodeSelector: - description: NodeSelector only allow the object pods to be created at nodes where all selector labels are present, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector. NodeSelector require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - additionalProperties: - type: string - affinity: - description: Scheduling constraints of the pod. More info at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity. Affinity require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - x-kubernetes-preserve-unknown-fields: true - required: - - shippingToken - - logsListenerURL - status: - type: object - description: Reported status of the event target. - properties: - acceptedEventTypes: - type: array - items: - type: string - ceAttributes: - type: array - items: - type: object - properties: - type: - type: string - source: - type: string - required: - - type - - source - observedGeneration: - type: integer - format: int64 - conditions: - type: array - items: - type: object - properties: - type: - type: string - status: - type: string - enum: ['True', 'False', Unknown] - severity: - type: string - enum: [Error, Warning, Info] - reason: - type: string - message: - type: string - lastTransitionTime: - type: string - format: date-time - required: - - type - - status - address: - type: object - properties: - url: - type: string - 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 - - name: Age - type: date - jsonPath: .metadata.creationTimestamp - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: natstargets.targets.typhoon.zeiss.com - labels: - knative.dev/crd-install: 'true' - typhoon.zeiss.com/crd-install: 'true' - duck.knative.dev/addressable: 'true' - annotations: - registry.typhoon.zeiss.com/acceptedEventTypes: | - [ - { "type": "*" } - ] -spec: - group: targets.typhoon.zeiss.com - names: - kind: natsTarget - plural: natstargets - categories: - - all - - knative - - eventing - - targets - scope: Namespaced - versions: - - name: v1alpha1 - served: true - storage: true - subresources: - status: {} - schema: - openAPIV3Schema: - type: object - description: Typhoon event target for nats. - properties: - spec: - description: Desired state of event target. - type: object - properties: - topic: - description: Topic name to stream the target events to. - type: string - minLength: 1 - topicReplicationFactor: - description: The number of replicas required to stream to the topic. - type: integer - minimum: 1 - maximum: 32767 - topicPartitions: - description: The number of partitions used by the topic to stream an event to. - type: integer - minimum: 1 - maximum: 2147483647 - bootstrapServers: - description: Array of nats servers used to bootstrap the connection. - type: array - items: - type: string - minLength: 1 - auth: - description: Authentication method used to interact with nats. - type: object - properties: - saslEnable: - description: Boolean to indicate if SASL is enabled. - type: boolean - tlsEnable: - description: Boolean to indicate if TLS is enabled. - type: boolean - securityMechanism: - description: securityMechanism attribute indicate which mechanism to use. - type: string - enum: [GSSAPI, PLAIN, SCRAM-SHA-256, SCRAM-SHA-512] - username: - description: nats account username when using SASL. - type: string - password: - description: nats account password when using SASL. - type: object - properties: - value: - description: Plain text password. - type: string - valueFromSecret: - description: A reference to a Kubernetes Secret object containing the password. - type: object - properties: - name: - type: string - key: - type: string - required: - - name - - key - oneOf: - - required: [value] - - required: [valueFromSecret] - kerberos: - description: Kerberos Authentication method to interact with nats. - type: object - properties: - realm: - description: Name of the Kerberos Realm. - type: string - serviceName: - description: The primary name of the nats server configured. - type: string - username: - description: Kerberos username or Kerberos Principal Name. The Username or the Principal doesn't require the Realm in it. - type: string - password: - description: Kerberos Password. - type: object - properties: - value: - description: Plain text password. - type: string - valueFromSecret: - description: A reference to a Kubernetes Secret object containing the password. - type: object - properties: - name: - type: string - key: - type: string - required: - - name - - key - oneOf: - - required: [value] - - required: [valueFromSecret] - config: - type: object - properties: - valueFromSecret: - description: A reference to a Kubernetes Secret object containing the kerberos configuration file (krb5.conf). - type: object - properties: - name: - type: string - key: - type: string - required: - - name - - key - required: - - valueFromSecret - keytab: - type: object - properties: - valueFromSecret: - description: A reference to a Kubernetes Secret object containing the kerberos keytab file contents. - type: object - properties: - name: - type: string - key: - type: string - required: - - name - - key - required: - - valueFromSecret - tls: - description: TLS Authentication method to interact with nats. - type: object - properties: - ca: - description: The value to the configured CA. - type: object - properties: - valueFromSecret: - description: A reference to a Kubernetes Secret object containing the value. - type: object - properties: - name: - type: string - key: - type: string - required: - - name - - key - required: - - valueFromSecret - clientCert: - description: The value of the SSL Client Cert. - type: object - properties: - valueFromSecret: - description: A reference to a Kubernetes Secret object containing the Client Cert content. - type: object - properties: - name: - type: string - key: - type: string - required: - - name - - key - required: - - valueFromSecret - clientKey: - description: The value of the SSL Client Key. - type: object - properties: - valueFromSecret: - description: A reference to a Kubernetes Secret object containing the Client Key content. - type: object - properties: - name: - type: string - key: - type: string - required: - - name - - key - required: - - valueFromSecret - skipVerify: - description: SkipVerify controls whether a client verifies the server's certificate chain and host name. If skipVerify is true, crypto/tls accepts any certificate presented by the server and any host name in that certificate. In this mode, TLS is susceptible to machine-in-the-middle attacks unless custom verification is used. This should be used only for testing. - type: boolean - required: - - saslEnable - discardCloudEventContext: - description: Whether to omit CloudEvent context attributes in messages sent to nats. When this property is false (default), the entire CloudEvent payload is included. When this property is true, only the CloudEvent data is included. - type: boolean - adapterOverrides: - description: Kubernetes object parameters to apply on top of default adapter values. - type: object - properties: - annotations: - description: Adapter annotations. - type: object - additionalProperties: - type: string - labels: - description: Adapter labels. - type: object - additionalProperties: - type: string - env: - description: Adapter environment variables. - type: array - items: - type: object - properties: - name: - type: string - value: - type: string - public: - description: Adapter visibility scope. - type: boolean - resources: - description: Compute Resources required by the adapter. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Limits describes the maximum amount of compute resources allowed. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - tolerations: - description: Pod tolerations, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ Tolerations require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: array - items: - type: object - properties: - key: - description: Taint key that the toleration applies to. - type: string - operator: - description: Key's relationship to the value. - type: string - enum: [Exists, Equal] - value: - description: Taint value the toleration matches to. - type: string - effect: - description: Taint effect to match. - type: string - enum: [NoSchedule, PreferNoSchedule, NoExecute] - tolerationSeconds: - description: Period of time a toleration of effect NoExecute tolerates the taint. - type: integer - format: int64 - nodeSelector: - description: NodeSelector only allow the object pods to be created at nodes where all selector labels are present, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector. NodeSelector require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - additionalProperties: - type: string - affinity: - description: Scheduling constraints of the pod. More info at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity. Affinity require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - x-kubernetes-preserve-unknown-fields: true - required: - - bootstrapServers - - topic - status: - type: object - description: Reported status of the event target. - properties: - observedGeneration: - type: integer - format: int64 - conditions: - type: array - items: - type: object - properties: - type: - type: string - status: - type: string - enum: ['True', 'False', Unknown] - severity: - type: string - enum: [Error, Warning, Info] - reason: - type: string - message: - type: string - lastTransitionTime: - type: string - format: date-time - required: - - type - - status - address: - type: object - properties: - url: - type: string - 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 - - name: Age - type: date - jsonPath: .metadata.creationTimestamp - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: splunktargets.targets.typhoon.zeiss.com - labels: - knative.dev/crd-install: 'true' - typhoon.zeiss.com/crd-install: 'true' - duck.knative.dev/addressable: 'true' - annotations: - registry.typhoon.zeiss.com/acceptedEventTypes: | - [ - { "type": "*" } - ] -spec: - group: targets.typhoon.zeiss.com - scope: Namespaced - names: - kind: SplunkTarget - plural: splunktargets - categories: - - all - - knative - - eventing - - targets - versions: - - name: v1alpha1 - served: true - storage: true - subresources: - status: {} - schema: - openAPIV3Schema: - type: object - description: typhoon event target for Splunk. - properties: - spec: - type: object - properties: - endpoint: - type: string - description: URL of the HTTP Event Collector (HEC). Only the scheme, hostname, and port (optionally) are evaluated. When the URL path is not present, the one documented at Splunk is automatically used. See https://docs.splunk.com/Documentation/Splunk/latest/Data/UsetheHTTPEventCollector#Enable_HTTP_Event_Collector. - format: url - pattern: ^https?:\/\/.+$ - token: - type: object - description: Token for authenticating requests against the HEC. See https://docs.splunk.com/Documentation/Splunk/latest/Data/UsetheHTTPEventCollector#About_Event_Collector_tokens. - properties: - value: - type: string - format: guid - pattern: ^[0-9A-Fa-f]{8}(?:-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$ - valueFromSecret: - type: object - properties: - name: - type: string - key: - type: string - oneOf: - - required: [value] - - required: [valueFromSecret] - index: - type: string - description: Name of the index to send events to. When undefined, events are sent to the default index defined in the HEC token's configuration. - pattern: ^[\w-]+$ - skipTLSVerify: - description: Control whether the target should verify the SSL/TLS certificate used by the event collector. - type: boolean - discardCloudEventContext: - description: Whether to omit CloudEvent context attributes in messages sent to Splunk. When this property is false (default), the entire CloudEvent payload is included. When this property is true, only the CloudEvent data is included. - type: boolean - adapterOverrides: - description: Kubernetes object parameters to apply on top of default adapter values. - type: object - properties: - annotations: - description: Adapter annotations. - type: object - additionalProperties: - type: string - labels: - description: Adapter labels. - type: object - additionalProperties: - type: string - env: - description: Adapter environment variables. - type: array - items: - type: object - properties: - name: - type: string - value: - type: string - public: - description: Adapter visibility scope. - type: boolean - resources: - description: Compute Resources required by the adapter. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Limits describes the maximum amount of compute resources allowed. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - tolerations: - description: Pod tolerations, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ Tolerations require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: array - items: - type: object - properties: - key: - description: Taint key that the toleration applies to. - type: string - operator: - description: Key's relationship to the value. - type: string - enum: [Exists, Equal] - value: - description: Taint value the toleration matches to. - type: string - effect: - description: Taint effect to match. - type: string - enum: [NoSchedule, PreferNoSchedule, NoExecute] - tolerationSeconds: - description: Period of time a toleration of effect NoExecute tolerates the taint. - type: integer - format: int64 - nodeSelector: - description: NodeSelector only allow the object pods to be created at nodes where all selector labels are present, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector. NodeSelector require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - additionalProperties: - type: string - affinity: - description: Scheduling constraints of the pod. More info at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity. Affinity require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - x-kubernetes-preserve-unknown-fields: true - required: - - endpoint - - token - status: - type: object - description: Reported status of the event target. - properties: - observedGeneration: - type: integer - format: int64 - conditions: - type: array - items: - type: object - properties: - type: - type: string - status: - type: string - enum: ['True', 'False', Unknown] - severity: - type: string - enum: [Error, Warning, Info] - reason: - type: string - message: - type: string - lastTransitionTime: - type: string - format: date-time - required: - - type - - status - address: - type: object - properties: - url: - type: string - 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 - - name: Age - type: date - jsonPath: .metadata.creationTimestamp - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: filters.routing.typhoon.zeiss.com - labels: - typhoon.zeiss.com/crd-install: 'true' - annotations: - registry.typhoon.zeiss.com/acceptedEventTypes: | - [ - { "type": "*" } - ] - registry.knative.dev/eventTypes: | - [ - { "type": "*" } - ] -spec: - group: routing.typhoon.zeiss.com - scope: Namespaced - names: - kind: Filter - plural: filters - singular: filter - categories: - - all - - typhoon - - routing - versions: - - name: v1alpha1 - served: true - storage: true - subresources: - status: {} - schema: - openAPIV3Schema: - description: typhoon content-based events filter. - type: object - properties: - spec: - description: Desired state of the filter. - type: object - required: - - expression - - sink - properties: - expression: - description: Google CEL-like expression string. - type: string - sink: - description: Sink is a reference to an object that will resolve to a uri to use as the sink. - type: object - anyOf: - - required: [ref] - - required: [uri] - properties: - ref: - description: Reference to an addressable Kubernetes object to be used as the destination of events. - type: object - properties: - apiVersion: - type: string - kind: - type: string - namespace: - type: string - name: - type: string - required: - - apiVersion - - kind - - name - uri: - description: URI to use as the destination of events. - type: string - format: uri - adapterOverrides: - description: Kubernetes object parameters to apply on top of default adapter values. - type: object - properties: - annotations: - description: Adapter annotations. - type: object - additionalProperties: - type: string - labels: - description: Adapter labels. - type: object - additionalProperties: - type: string - env: - description: Adapter environment variables. - type: array - items: - type: object - properties: - name: - type: string - value: - type: string - public: - description: Adapter visibility scope. - type: boolean - resources: - description: Compute Resources required by the adapter. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Limits describes the maximum amount of compute resources allowed. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - tolerations: - description: Pod tolerations, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ Tolerations require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: array - items: - type: object - properties: - key: - description: Taint key that the toleration applies to. - type: string - operator: - description: Key's relationship to the value. - type: string - enum: [Exists, Equal] - value: - description: Taint value the toleration matches to. - type: string - effect: - description: Taint effect to match. - type: string - enum: [NoSchedule, PreferNoSchedule, NoExecute] - tolerationSeconds: - description: Period of time a toleration of effect NoExecute tolerates the taint. - type: integer - format: int64 - nodeSelector: - description: NodeSelector only allow the object pods to be created at nodes where all selector labels are present, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector. NodeSelector require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - additionalProperties: - type: string - affinity: - description: Scheduling constraints of the pod. More info at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity. Affinity require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - x-kubernetes-preserve-unknown-fields: true - status: - type: object - properties: - observedGeneration: - type: integer - format: int64 - conditions: - type: array - items: - type: object - properties: - type: - type: string - status: - type: string - enum: ['True', 'False', Unknown] - severity: - type: string - enum: [Error, Warning, Info] - reason: - type: string - message: - type: string - lastTransitionTime: - type: string - format: date-time - required: - - type - - status - address: - type: object - properties: - url: - type: string - sinkUri: - description: URI of the sink where events are currently sent to. - type: string - format: uri - additionalPrinterColumns: - - name: Address - 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 - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: splitters.routing.typhoon.zeiss.com - labels: - typhoon.zeiss.com/crd-install: 'true' - annotations: - registry.typhoon.zeiss.com/acceptedEventTypes: | - [ - { "type": "*" } - ] - registry.knative.dev/eventTypes: | - [ - { "type": "*" } - ] -spec: - group: routing.typhoon.zeiss.com - scope: Namespaced - names: - kind: Splitter - plural: splitters - singular: splitter - categories: - - all - - typhoon - - routing - versions: - - name: v1alpha1 - served: true - storage: true - subresources: - status: {} - schema: - openAPIV3Schema: - description: typhoon content-based events splitter. - type: object - properties: - spec: - description: Desired state of the splitter. - type: object - required: - - ceContext - - sink - properties: - path: - type: string - description: JSONPath expression representing the key containing the data array to split. Defaults to the root. - ceContext: - type: object - required: - - type - - source - description: Context attributes to set on produced CloudEvents. - properties: - type: - type: string - description: CloudEvent "type" context attribute. - source: - type: string - description: CloudEvent "source" context attribute. Accepts a JSONPath expressions in brackets (e.g. "user/{.name}"). - extensions: - type: object - description: Additional context extensions to set on produced CloudEvents. - additionalProperties: - type: string - sink: - description: Sink is a reference to an object that will resolve to a uri to use as the sink. - type: object - anyOf: - - required: [ref] - - required: [uri] - properties: - ref: - description: Reference to an addressable Kubernetes object to be used as the destination of events. - type: object - properties: - apiVersion: - type: string - kind: - type: string - namespace: - type: string - name: - type: string - required: - - apiVersion - - kind - - name - uri: - description: URI to use as the destination of events. - type: string - format: uri - adapterOverrides: - description: Kubernetes object parameters to apply on top of default adapter values. - type: object - properties: - annotations: - description: Adapter annotations. - type: object - additionalProperties: - type: string - labels: - description: Adapter labels. - type: object - additionalProperties: - type: string - env: - description: Adapter environment variables. - type: array - items: - type: object - properties: - name: - type: string - value: - type: string - public: - description: Adapter visibility scope. - type: boolean - resources: - description: Compute Resources required by the adapter. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Limits describes the maximum amount of compute resources allowed. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - tolerations: - description: Pod tolerations, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ Tolerations require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: array - items: - type: object - properties: - key: - description: Taint key that the toleration applies to. - type: string - operator: - description: Key's relationship to the value. - type: string - enum: [Exists, Equal] - value: - description: Taint value the toleration matches to. - type: string - effect: - description: Taint effect to match. - type: string - enum: [NoSchedule, PreferNoSchedule, NoExecute] - tolerationSeconds: - description: Period of time a toleration of effect NoExecute tolerates the taint. - type: integer - format: int64 - nodeSelector: - description: NodeSelector only allow the object pods to be created at nodes where all selector labels are present, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector. NodeSelector require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - additionalProperties: - type: string - affinity: - description: Scheduling constraints of the pod. More info at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity. Affinity require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - x-kubernetes-preserve-unknown-fields: true - status: - type: object - properties: - observedGeneration: - type: integer - format: int64 - conditions: - type: array - items: - type: object - properties: - type: - type: string - status: - type: string - enum: ['True', 'False', Unknown] - severity: - type: string - enum: [Error, Warning, Info] - reason: - type: string - message: - type: string - lastTransitionTime: - type: string - format: date-time - required: - - type - - status - address: - type: object - properties: - url: - type: string - sinkUri: - description: URI of the sink where events are currently sent to. - type: string - format: uri - additionalPrinterColumns: - - name: Address - 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 - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: functions.extensions.typhoon.zeiss.com - labels: - typhoon.zeiss.com/crd-install: 'true' - annotations: - registry.typhoon.zeiss.com/acceptedEventTypes: | - [ - { "type": "*" } - ] - registry.knative.dev/eventTypes: | - [ - { "type": "*" } - ] -spec: - group: extensions.typhoon.zeiss.com - scope: Namespaced - names: - kind: Function - plural: functions - singular: function - categories: - - all - - typhoon - - extensions - versions: - - name: v1alpha1 - served: true - storage: true - subresources: - status: {} - schema: - openAPIV3Schema: - description: typhoon Function. - type: object - properties: - spec: - description: Desired state of the function. - type: object - required: - - runtime - - entrypoint - - code - properties: - runtime: - description: Function runtime name. Python, Ruby or Node runtimes are currently supported. - type: string - enum: [python, ruby, node] - code: - description: Function code. - type: string - entrypoint: - description: Function name to use as an entrypoint. - type: string - responseIsEvent: - description: Whether function responds with CE payload only or with full event. - type: boolean - eventStore: - description: EventStore service connection string. - type: object - properties: - uri: - type: string - required: - - uri - ceOverrides: - type: object - description: Defines overrides to control modifications of the event attributes. - properties: - extensions: - type: object - properties: - type: - type: string - source: - type: string - subject: - type: string - required: - - extensions - sink: - description: The destination of events emitted by the component. If left empty, the events will be sent back to the sender. - type: object - anyOf: - - required: [ref] - - required: [uri] - properties: - ref: - description: Reference to an addressable Kubernetes object to be used as the destination of events. - type: object - properties: - apiVersion: - type: string - kind: - type: string - namespace: - type: string - name: - type: string - required: - - apiVersion - - kind - - name - uri: - description: URI to use as the destination of events. - type: string - format: uri - adapterOverrides: - description: Kubernetes object parameters to apply on top of default adapter values. - type: object - properties: - annotations: - description: Adapter annotations. - type: object - additionalProperties: - type: string - labels: - description: Adapter labels. - type: object - additionalProperties: - type: string - env: - description: Adapter environment variables. - type: array - items: - type: object - properties: - name: - type: string - value: - type: string - public: - description: Adapter visibility scope. - type: boolean - resources: - description: Compute Resources required by the adapter. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Limits describes the maximum amount of compute resources allowed. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - tolerations: - description: Pod tolerations, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ Tolerations require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: array - items: - type: object - properties: - key: - description: Taint key that the toleration applies to. - type: string - operator: - description: Key's relationship to the value. - type: string - enum: [Exists, Equal] - value: - description: Taint value the toleration matches to. - type: string - effect: - description: Taint effect to match. - type: string - enum: [NoSchedule, PreferNoSchedule, NoExecute] - tolerationSeconds: - description: Period of time a toleration of effect NoExecute tolerates the taint. - type: integer - format: int64 - nodeSelector: - description: NodeSelector only allow the object pods to be created at nodes where all selector labels are present, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector. NodeSelector require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - additionalProperties: - type: string - affinity: - description: Scheduling constraints of the pod. More info at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity. Affinity require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - x-kubernetes-preserve-unknown-fields: true - status: - type: object - properties: - configMap: - description: Identity of the ConfigMap containing the code of the Function. - type: object - properties: - name: - description: Name of the ConfigMap. - type: string - resourceVersion: - description: Observed revision of the ConfigMap. - type: string - required: - - name - - resourceVersion - observedGeneration: - type: integer - format: int64 - conditions: - type: array - items: - type: object - properties: - type: - type: string - status: - type: string - enum: ['True', 'False', Unknown] - severity: - type: string - enum: [Error, Warning, Info] - reason: - type: string - message: - type: string - lastTransitionTime: - type: string - format: date-time - required: - - type - - status - address: - type: object - properties: - url: - type: string - additionalPrinterColumns: - - name: Address - 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 - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: jqtransformations.flow.typhoon.zeiss.com - labels: - typhoon.zeiss.com/crd-install: 'true' - duck.knative.dev/addressable: 'true' - annotations: - registry.typhoon.zeiss.com/acceptedEventTypes: | - [ - { "type": "*" } - ] - registry.knative.dev/eventTypes: | - [ - { "type": "io.typhoon.jqtransformation.error" }, - { "type": "*" } - ] -spec: - group: flow.typhoon.zeiss.com - scope: Namespaced - names: - kind: JQTransformation - plural: jqtransformations - categories: - - all - - knative - - eventing - - typhoon - - transformations - versions: - - name: v1alpha1 - served: true - storage: true - subresources: - status: {} - schema: - openAPIV3Schema: - description: typhoon CloudEvents JSON Query Transformation engine. - type: object - properties: - spec: - description: Desired state of the transformer. - type: object - properties: - query: - description: The JSON Query to perform on the incoming event - type: string - sink: - description: The destination of events emitted by the component. If left empty, the events will be sent back to the sender. - type: object - properties: - ref: - description: Reference to an addressable Kubernetes object to be used as the destination of events. - type: object - properties: - apiVersion: - type: string - kind: - type: string - namespace: - type: string - name: - type: string - required: - - apiVersion - - kind - - name - uri: - description: URI to use as the destination of events. - type: string - format: uri - anyOf: - - required: [ref] - - required: [uri] - adapterOverrides: - description: Kubernetes object parameters to apply on top of default adapter values. - type: object - properties: - annotations: - description: Adapter annotations. - type: object - additionalProperties: - type: string - labels: - description: Adapter labels. - type: object - additionalProperties: - type: string - env: - description: Adapter environment variables. - type: array - items: - type: object - properties: - name: - type: string - value: - type: string - public: - description: Adapter visibility scope. - type: boolean - resources: - description: Compute Resources required by the adapter. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Limits describes the maximum amount of compute resources allowed. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - tolerations: - description: Pod tolerations, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ Tolerations require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: array - items: - type: object - properties: - key: - description: Taint key that the toleration applies to. - type: string - operator: - description: Key's relationship to the value. - type: string - enum: [Exists, Equal] - value: - description: Taint value the toleration matches to. - type: string - effect: - description: Taint effect to match. - type: string - enum: [NoSchedule, PreferNoSchedule, NoExecute] - tolerationSeconds: - description: Period of time a toleration of effect NoExecute tolerates the taint. - type: integer - format: int64 - nodeSelector: - description: NodeSelector only allow the object pods to be created at nodes where all selector labels are present, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector. NodeSelector require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - additionalProperties: - type: string - affinity: - description: Scheduling constraints of the pod. More info at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity. Affinity require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - x-kubernetes-preserve-unknown-fields: true - status: - description: Reported status of the transformer. - type: object - properties: - sinkUri: - description: URI of the sink where events are currently sent to. - type: string - format: uri - ceAttributes: - description: CloudEvents context attributes overrides. - type: array - items: - type: object - properties: - type: - type: string - source: - type: string - observedGeneration: - type: integer - format: int64 - conditions: - type: array - items: - type: object - properties: - type: - type: string - status: - type: string - enum: ['True', 'False', Unknown] - severity: - type: string - enum: [Error, Warning, Info] - reason: - type: string - message: - type: string - lastTransitionTime: - type: string - format: date-time - required: - - type - - status - address: - description: Address of the HTTP/S endpoint where the transformer is serving incoming CloudEvents. - type: object - properties: - url: - type: string - additionalPrinterColumns: - - name: Address - 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 - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: synchronizers.flow.typhoon.zeiss.com - labels: - duck.knative.dev/addressable: 'true' - typhoon.zeiss.com/crd-install: 'true' - annotations: - registry.typhoon.zeiss.com/acceptedEventTypes: | - [ - { "type": "*" } - ] -spec: - group: flow.typhoon.zeiss.com - names: - kind: Synchronizer - plural: synchronizers - categories: - - all - - knative - - eventing - - flow - scope: Namespaced - versions: - - name: v1alpha1 - served: true - storage: true - subresources: - status: {} - schema: - openAPIV3Schema: - type: object - properties: - spec: - description: Desired state of the event synchronizer. - type: object - properties: - correlationKey: - description: Events correlation parameters. - type: object - properties: - attribute: - description: The name of the correlation key that will be injected into the CloudEvents context. Events without this attribute are forwarded to the Sink as the client requests while client connections are held open. Events, which context already has the correlation key, are sent back to the open client connections. - type: string - length: - description: The length of the correlation key to generate. The default value is 24. - type: integer - minimum: 1 - maximum: 64 - default: 24 - required: - - attribute - response: - description: Responses handling configuration. - type: object - properties: - timeout: - description: The time during which the synchronizer will block the client and wait for the response. Expressed as a duration string, which format is documented at https://pkg.go.dev/time#ParseDuration. - type: string - required: - - timeout - sink: - description: The destination where the synchronizer will forward incoming requests from the clients. - type: object - properties: - ref: - description: Reference to an addressable Kubernetes object to be used as the destination of events. - type: object - properties: - apiVersion: - type: string - kind: - type: string - namespace: - type: string - name: - type: string - required: - - apiVersion - - kind - - name - uri: - description: URI to use as the destination of events. - type: string - format: uri - anyOf: - - required: [ref] - - required: [uri] - adapterOverrides: - description: Kubernetes object parameters to apply on top of default adapter values. - type: object - properties: - annotations: - description: Adapter annotations. - type: object - additionalProperties: - type: string - labels: - description: Adapter labels. - type: object - additionalProperties: - type: string - env: - description: Adapter environment variables. - type: array - items: - type: object - properties: - name: - type: string - value: - type: string - public: - description: Adapter visibility scope. - type: boolean - resources: - description: Compute Resources required by the adapter. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Limits describes the maximum amount of compute resources allowed. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - tolerations: - description: Pod tolerations, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ Tolerations require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: array - items: - type: object - properties: - key: - description: Taint key that the toleration applies to. - type: string - operator: - description: Key's relationship to the value. - type: string - enum: [Exists, Equal] - value: - description: Taint value the toleration matches to. - type: string - effect: - description: Taint effect to match. - type: string - enum: [NoSchedule, PreferNoSchedule, NoExecute] - tolerationSeconds: - description: Period of time a toleration of effect NoExecute tolerates the taint. - type: integer - format: int64 - nodeSelector: - description: NodeSelector only allow the object pods to be created at nodes where all selector labels are present, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector. NodeSelector require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - additionalProperties: - type: string - affinity: - description: Scheduling constraints of the pod. More info at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity. Affinity require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - x-kubernetes-preserve-unknown-fields: true - required: - - correlationKey - - response - - sink - status: - type: object - description: Reported status of the event synchronizer. - properties: - sinkUri: - description: URI of the sink where events are currently sent to. - type: string - format: uri - observedGeneration: - type: integer - format: int64 - conditions: - type: array - items: - type: object - properties: - type: - type: string - status: - type: string - enum: ['True', 'False', Unknown] - severity: - type: string - enum: [Error, Warning, Info] - reason: - type: string - message: - type: string - lastTransitionTime: - type: string - format: date-time - required: - - type - - status - address: - type: object - properties: - url: - type: string - 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 - - name: Age - type: date - jsonPath: .metadata.creationTimestamp - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: transformations.flow.typhoon.zeiss.com - labels: - typhoon.zeiss.com/crd-install: 'true' - annotations: - registry.typhoon.zeiss.com/acceptedEventTypes: | - [ - { "type": "*" } - ] - registry.knative.dev/eventTypes: | - [ - { "type": "*" } - ] -spec: - group: flow.typhoon.zeiss.com - scope: Namespaced - names: - kind: Transformation - plural: transformations - categories: - - all - - knative - - eventing - - transformations - versions: - - name: v1alpha1 - served: true - storage: true - subresources: - status: {} - schema: - openAPIV3Schema: - description: typhoon CloudEvents transformation engine. Allows to declaratively perform data transformations on CloudEvents. - type: object - properties: - spec: - description: Desired state of the transformation object. - type: object - properties: - context: - description: CloudEvents Context attributes transformation spec. - type: array - items: - description: The list of transformation operations executed on the event context sequentially. - type: object - properties: - operation: - description: Name of the transformation operation. - type: string - enum: [add, delete, shift, store, parse] - paths: - description: Key-value event pairs to apply the transformations on. - type: array - items: - type: object - properties: - key: - description: JSON path or variable name. Depends on the operation type. - nullable: true - type: string - value: - description: JSON path or variable name. Depends on the operation type. - nullable: true - type: string - separator: - description: JSON path separator symbol. "." is used by default. - nullable: true - type: string - required: - - operation - data: - description: CloudEvents Data transformation spec. - type: array - items: - description: The list of transformation operations executed on the event data sequentially. - type: object - properties: - operation: - description: Name of the transformation operation. - type: string - enum: [add, delete, shift, store, parse] - paths: - description: Key-value event pairs to apply the transformations on. - type: array - items: - type: object - properties: - key: - description: JSON path or variable name. Depends on the operation type. - nullable: true - type: string - value: - description: JSON path or variable name. Depends on the operation type. - nullable: true - type: string - separator: - description: JSON path separator symbol. "." is used by default. - nullable: true - type: string - required: - - operation - sink: - description: The destination of events emitted by the component. If left empty, the events will be sent back to the sender. - type: object - properties: - ref: - description: Reference to an addressable Kubernetes object to be used as the destination of events. - type: object - properties: - apiVersion: - type: string - kind: - type: string - namespace: - type: string - name: - type: string - required: - - apiVersion - - kind - - name - uri: - description: URI to use as the destination of events. - type: string - format: uri - anyOf: - - required: [ref] - - required: [uri] - adapterOverrides: - description: Kubernetes object parameters to apply on top of default adapter values. - type: object - properties: - annotations: - description: Adapter annotations. - type: object - additionalProperties: - type: string - labels: - description: Adapter labels. - type: object - additionalProperties: - type: string - env: - description: Adapter environment variables. - type: array - items: - type: object - properties: - name: - type: string - value: - type: string - public: - description: Adapter visibility scope. - type: boolean - resources: - description: Compute Resources required by the adapter. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Limits describes the maximum amount of compute resources allowed. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - tolerations: - description: Pod tolerations, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ Tolerations require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: array - items: - type: object - properties: - key: - description: Taint key that the toleration applies to. - type: string - operator: - description: Key's relationship to the value. - type: string - enum: [Exists, Equal] - value: - description: Taint value the toleration matches to. - type: string - effect: - description: Taint effect to match. - type: string - enum: [NoSchedule, PreferNoSchedule, NoExecute] - tolerationSeconds: - description: Period of time a toleration of effect NoExecute tolerates the taint. - type: integer - format: int64 - nodeSelector: - description: NodeSelector only allow the object pods to be created at nodes where all selector labels are present, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector. NodeSelector require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - additionalProperties: - type: string - affinity: - description: Scheduling constraints of the pod. More info at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity. Affinity require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - x-kubernetes-preserve-unknown-fields: true - status: - description: Reported status of Transformation. - type: object - properties: - sinkUri: - description: URI of the sink where events are currently sent to. - type: string - format: uri - ceAttributes: - description: CloudEvents context attributes overrides. - type: array - items: - type: object - properties: - type: - type: string - source: - type: string - observedGeneration: - type: integer - format: int64 - conditions: - type: array - items: - type: object - properties: - type: - type: string - status: - type: string - enum: ['True', 'False', Unknown] - severity: - type: string - enum: [Error, Warning, Info] - reason: - type: string - message: - type: string - lastTransitionTime: - type: string - format: date-time - required: - - type - - status - address: - description: Address of the HTTP/S endpoint where Transformation is serving incoming CloudEvents. - type: object - properties: - url: - type: string - additionalPrinterColumns: - - name: Address - 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 - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: xmltojsontransformations.flow.typhoon.zeiss.com - labels: - typhoon.zeiss.com/crd-install: 'true' - duck.knative.dev/addressable: 'true' - annotations: - registry.typhoon.zeiss.com/acceptedEventTypes: | - [ - { "type": "*" } - ] - registry.knative.dev/eventTypes: | - [ - { "type": "io.typhoon.xmltojsontransformation.error" }, - { "type": "*" } - ] -spec: - group: flow.typhoon.zeiss.com - scope: Namespaced - names: - kind: XMLToJSONTransformation - plural: xmltojsontransformations - categories: - - all - - knative - - eventing - - typhoon - - transformations - versions: - - name: v1alpha1 - served: true - storage: true - subresources: - status: {} - schema: - openAPIV3Schema: - description: typhoon CloudEvents XML to JSON Transformation engine. - type: object - properties: - spec: - description: Desired state of the transformer. - type: object - properties: - sink: - description: The destination of events emitted by the component. If left empty, the events will be sent back to the sender. - type: object - properties: - ref: - description: Reference to an addressable Kubernetes object to be used as the destination of events. - type: object - properties: - apiVersion: - type: string - kind: - type: string - namespace: - type: string - name: - type: string - required: - - apiVersion - - kind - - name - uri: - description: URI to use as the destination of events. - type: string - format: uri - anyOf: - - required: [ref] - - required: [uri] - adapterOverrides: - description: Kubernetes object parameters to apply on top of default adapter values. - type: object - properties: - annotations: - description: Adapter annotations. - type: object - additionalProperties: - type: string - labels: - description: Adapter labels. - type: object - additionalProperties: - type: string - env: - description: Adapter environment variables. - type: array - items: - type: object - properties: - name: - type: string - value: - type: string - public: - description: Adapter visibility scope. - type: boolean - resources: - description: Compute Resources required by the adapter. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Limits describes the maximum amount of compute resources allowed. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - tolerations: - description: Pod tolerations, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ Tolerations require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: array - items: - type: object - properties: - key: - description: Taint key that the toleration applies to. - type: string - operator: - description: Key's relationship to the value. - type: string - enum: [Exists, Equal] - value: - description: Taint value the toleration matches to. - type: string - effect: - description: Taint effect to match. - type: string - enum: [NoSchedule, PreferNoSchedule, NoExecute] - tolerationSeconds: - description: Period of time a toleration of effect NoExecute tolerates the taint. - type: integer - format: int64 - nodeSelector: - description: NodeSelector only allow the object pods to be created at nodes where all selector labels are present, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector. NodeSelector require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - additionalProperties: - type: string - affinity: - description: Scheduling constraints of the pod. More info at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity. Affinity require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - x-kubernetes-preserve-unknown-fields: true - status: - description: Reported status of the transformer. - type: object - properties: - sinkUri: - description: URI of the sink where events are currently sent to. - type: string - format: uri - ceAttributes: - description: CloudEvents context attributes overrides. - type: array - items: - type: object - properties: - type: - type: string - source: - type: string - observedGeneration: - type: integer - format: int64 - conditions: - type: array - items: - type: object - properties: - type: - type: string - status: - type: string - enum: ['True', 'False', Unknown] - severity: - type: string - enum: [Error, Warning, Info] - reason: - type: string - message: - type: string - lastTransitionTime: - type: string - format: date-time - required: - - type - - status - address: - description: Address of the HTTP/S endpoint where the transformer is serving incoming CloudEvents. - type: object - properties: - url: - type: string - additionalPrinterColumns: - - name: Address - 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 - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: xslttransformations.flow.typhoon.zeiss.com - labels: - typhoon.zeiss.com/crd-install: 'true' - annotations: - registry.typhoon.zeiss.com/acceptedEventTypes: | - [ - { "type": "*" } - ] - registry.knative.dev/eventTypes: | - [ - { "type": "io.typhoon.xslttransformation.error" }, - { "type": "*" } - ] -spec: - group: flow.typhoon.zeiss.com - scope: Namespaced - names: - kind: XSLTTransformation - plural: xslttransformations - categories: - - all - - knative - - eventing - - typhoon - - transformations - versions: - - name: v1alpha1 - served: true - storage: true - subresources: - status: {} - schema: - openAPIV3Schema: - description: typhoon CloudEvents XSLT transformation. - type: object - properties: - spec: - description: Desired state of the typhoon component. - type: object - properties: - xslt: - description: XSLT used to transform incoming CloudEvents. - type: object - properties: - value: - description: Literal inline value. - type: string - valueFromSecret: - description: A reference to a Kubernetes Secret object containing the value. - type: object - properties: - name: - type: string - key: - type: string - required: - - name - - key - valueFromConfigMap: - description: A reference to a Kubernetes ConfigMap object containing the value. - type: object - properties: - name: - type: string - key: - type: string - required: - - name - - key - oneOf: - - required: [value] - - required: [valueFromSecret] - - required: [valueFromConfigMap] - allowPerEventXSLT: - description: Whether the XSLT informed at the spec can be overriden at each CloudEvent. - type: boolean - sink: - description: The destination of events emitted by the component. If left empty, the events will be sent back to the sender. - type: object - properties: - ref: - description: Reference to an addressable Kubernetes object to be used as the destination of events. - type: object - properties: - apiVersion: - type: string - kind: - type: string - namespace: - type: string - name: - type: string - required: - - apiVersion - - kind - - name - uri: - description: URI to use as the destination of events. - type: string - format: uri - anyOf: - - required: [ref] - - required: [uri] - adapterOverrides: - description: Kubernetes object parameters to apply on top of default adapter values. - type: object - properties: - annotations: - description: Adapter annotations. - type: object - additionalProperties: - type: string - labels: - description: Adapter labels. - type: object - additionalProperties: - type: string - env: - description: Adapter environment variables. - type: array - items: - type: object - properties: - name: - type: string - value: - type: string - public: - description: Adapter visibility scope. - type: boolean - resources: - description: Compute Resources required by the adapter. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Limits describes the maximum amount of compute resources allowed. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info at https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - tolerations: - description: Pod tolerations, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ Tolerations require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: array - items: - type: object - properties: - key: - description: Taint key that the toleration applies to. - type: string - operator: - description: Key's relationship to the value. - type: string - enum: [Exists, Equal] - value: - description: Taint value the toleration matches to. - type: string - effect: - description: Taint effect to match. - type: string - enum: [NoSchedule, PreferNoSchedule, NoExecute] - tolerationSeconds: - description: Period of time a toleration of effect NoExecute tolerates the taint. - type: integer - format: int64 - nodeSelector: - description: NodeSelector only allow the object pods to be created at nodes where all selector labels are present, as documented at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector. NodeSelector require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - additionalProperties: - type: string - affinity: - description: Scheduling constraints of the pod. More info at https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity. Affinity require additional configuration for Knative-based deployments - https://knative.dev/docs/serving/configuration/feature-flags/ - type: object - x-kubernetes-preserve-unknown-fields: true - anyOf: - - required: [xslt] - - required: [allowPerEventXSLT] - status: - description: Reported status. - type: object - properties: - sinkUri: - description: URI of the sink where events are currently sent to. - type: string - format: uri - observedGeneration: - type: integer - format: int64 - conditions: - type: array - items: - type: object - properties: - type: - type: string - status: - type: string - enum: ['True', 'False', Unknown] - severity: - type: string - enum: [Error, Warning, Info] - reason: - type: string - message: - type: string - lastTransitionTime: - type: string - format: date-time - required: - - type - - status - address: - description: Address of the HTTP/S endpoint where component is listening for incoming CloudEvents. - type: object - properties: - url: - type: string - additionalPrinterColumns: - - name: Address - 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 - ---- -apiVersion: admissionregistration.k8s.io/v1 -kind: MutatingWebhookConfiguration -metadata: - name: defaulting.webhook.typhoon.zeiss.com - labels: - app.kubernetes.io/part-of: typhoon -webhooks: - - admissionReviewVersions: - - v1beta1 - clientConfig: - service: - name: typhoon-webhook - namespace: typhoon - sideEffects: None - failurePolicy: Fail - name: defaulting.webhook.typhoon.zeiss.com ---- -apiVersion: admissionregistration.k8s.io/v1 -kind: ValidatingWebhookConfiguration -metadata: - name: validation.webhook.typhoon.zeiss.com - labels: - app.kubernetes.io/part-of: typhoon -webhooks: - - admissionReviewVersions: - - v1beta1 - clientConfig: - service: - name: typhoon-webhook - namespace: typhoon - sideEffects: None - failurePolicy: Fail - name: validation.webhook.typhoon.zeiss.com ---- -apiVersion: v1 -kind: Secret -metadata: - name: typhoon-webhook-certs - namespace: typhoon - labels: - app.kubernetes.io/part-of: typhoon -# The data is populated at install time. - ----