blob: 89f0bbe1d7c4d25ca688a9e755d26352c92ea8c9 [file] [log] [blame]
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
# default broker for the knative eventing communication between the services.
apiVersion: eventing.knative.dev/v1
kind: Broker
metadata:
name: default
---
# deployment for the postgres database
apiVersion: v1
data:
postgrespass: cGFzcwo=
kind: Secret
metadata:
name: newsletter-postgres
type: Opaque
---
apiVersion: "apps/v1"
kind: "Deployment"
metadata:
name: "newsletter-postgres"
spec:
replicas: 1
selector:
matchLabels:
app: "newsletter-postgres"
template:
metadata:
labels:
app: "newsletter-postgres"
spec:
containers:
- env:
- name: "POSTGRES_PASSWORD"
valueFrom:
secretKeyRef:
key: postgrespass
name: newsletter-postgres
image: "postgres:13.4-alpine3.14"
imagePullPolicy: "Always"
name: "newsletter-postgres"
ports:
- containerPort: 5432
name: "tcp"
protocol: "TCP"
---
kind: Service
apiVersion: v1
metadata:
name: newsletter-postgres
spec:
selector:
app: newsletter-postgres
ports:
- port: 5432
type: ClusterIP
---
# simple knative application to display the routed messages
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
labels:
app.kubernetes.io/name: event-display
name: event-display
spec:
template:
metadata:
annotations:
autoscaling.knative.dev/minScale: "1"
autoscaling.knative.dev/maxScale: "1"
labels:
app.kubernetes.io/name: event-display
spec:
containers:
- # This corresponds to
# https://github.com/knative/eventing-contrib/tree/main/cmd/event_display
image: gcr.io/knative-releases/knative.dev/eventing-contrib/cmd/event_display@sha256:a214514d6ba674d7393ec8448dd272472b2956207acb3f83152d3071f0ab1911
---
apiVersion: eventing.knative.dev/v1
kind: Trigger
metadata:
name: trigger-eventdisplay
spec:
broker: default
subscriber:
ref:
apiVersion: serving.knative.dev/v1
kind: Service
name: event-display
---
# jobs service with postgresql deployment
apiVersion: sources.knative.dev/v1
kind: SinkBinding
metadata:
name: jobs-service-postgresql-sb
spec:
sink:
ref:
apiVersion: eventing.knative.dev/v1
kind: Broker
name: default
subject:
apiVersion: apps/v1
kind: Deployment
selector:
matchLabels:
app.kubernetes.io/name: jobs-service-postgresql
app.kubernetes.io/version: 999-SNAPSHOT
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/name: jobs-service-postgresql
app.kubernetes.io/version: 999-SNAPSHOT
name: jobs-service-postgresql
spec:
ports:
- name: http
port: 80
targetPort: 8080
selector:
app.kubernetes.io/name: jobs-service-postgresql
app.kubernetes.io/version: 999-SNAPSHOT
type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/name: jobs-service-postgresql
app.kubernetes.io/version: 999-SNAPSHOT
name: jobs-service-postgresql
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: jobs-service-postgresql
app.kubernetes.io/version: 999-SNAPSHOT
template:
metadata:
labels:
app.kubernetes.io/name: jobs-service-postgresql
app.kubernetes.io/version: 999-SNAPSHOT
spec:
containers:
- name: jobs-service-postgresql
image: docker.io/apache/incubator-kie-kogito-jobs-service-postgresql:main
imagePullPolicy: Always
ports:
- containerPort: 8080
name: http
protocol: TCP
env:
- name: KUBERNETES_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: KOGITO_SERVICE_URL
value: http://jobs-service-postgresql
- name: KOGITO_JOBS_SERVICE_HTTP_JOB_STATUS_CHANGE_EVENTS
value: "true"
- name: QUARKUS_DATASOURCE_USERNAME
value: postgres
- name: QUARKUS_DATASOURCE_PASSWORD
value: pass
- name: QUARKUS_DATASOURCE_JDBC_URL
value: jdbc:postgresql://newsletter-postgres:5432/postgres?currentSchema=jobs-service
- name: QUARKUS_DATASOURCE_REACTIVE_URL
value: postgresql://newsletter-postgres:5432/postgres?search_path=jobs-service
livenessProbe:
failureThreshold: 3
httpGet:
path: /q/health/live
port: 8080
scheme: HTTP
initialDelaySeconds: 0
periodSeconds: 30
successThreshold: 1
timeoutSeconds: 10
readinessProbe:
failureThreshold: 3
httpGet:
path: /q/health/ready
port: 8080
scheme: HTTP
initialDelaySeconds: 0
periodSeconds: 30
successThreshold: 1
timeoutSeconds: 10
---
apiVersion: eventing.knative.dev/v1
kind: Trigger
metadata:
name: jobs-service-postgresql-create-job-trigger
spec:
broker: default
filter:
attributes:
type: job.create
subscriber:
ref:
apiVersion: v1
kind: Service
name: jobs-service-postgresql
uri: /v2/jobs/events
---
apiVersion: eventing.knative.dev/v1
kind: Trigger
metadata:
name: jobs-service-postgresql-cancel-job-trigger
spec:
broker: default
filter:
attributes:
type: job.delete
subscriber:
ref:
apiVersion: v1
kind: Service
name: jobs-service-postgresql
uri: /v2/jobs/events