apiVersion: v1 kind: ConfigMap metadata: name: kafka-chat-config namespace: kafka data: config.json: | { "kafka": { "broker": "kafka-service.kafka.svc.cluster.local:9092" }, "couchdb": { "url": "http://admin:Couchdb01@couchdb.couchdb.svc.cluster.local:5984" }, "mail": { "host": "smtp.eu.mailgun.org", "port": 587, "user": "postmaster@allarddcs.nl", "pass": "Mailgun01@" }, "app": { "baseUrl": "https://kafkachat-dev.allarddcs.nl", "inviteExpiry": 604800 } } --- # chat-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: kafka-chat namespace: kafka spec: replicas: 1 selector: matchLabels: app: kafka-chat template: metadata: labels: app: kafka-chat spec: containers: - name: kafka-chat image: allardkrings/kafka-chat:1.0 imagePullPolicy: Always ports: - containerPort: 8080 # backend WS - containerPort: 3000 # frontend volumeMounts: - name: config mountPath: /etc/kafkachat readOnly: true volumes: - name: config configMap: name: kafka-chat-config --- apiVersion: traefik.io/v1alpha1 kind: ServersTransport metadata: name: kafka-chat-transport namespace: kafka spec: forwardingTimeouts: responseHeaderTimeout: 0s idleConnTimeout: 0s --- apiVersion: v1 kind: Service metadata: name: kafka-chat namespace: kafka spec: selector: app: kafka-chat ports: - name: frontend port: 80 targetPort: 3000 --- apiVersion: v1 kind: Service metadata: name: kafka-chat-lb namespace: kafka spec: type: ClusterIP selector: app: kafka-chat ports: - port: 80 targetPort: 3000 --- apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: name: kafka-chat namespace: kafka spec: entryPoints: - websecure routes: - match: Host(`kafkachat-prod.allarddcs.nl`) kind: Rule services: - name: kafka-chat port: 80 serversTransport: kafka-chat-transport tls: certResolver: letsencrypt