apiVersion: v1 kind: Namespace metadata: name: opsdroid annotations: wildcard-tls.kn8v.com/copy: "true" --- apiVersion: v1 kind: ConfigMap metadata: name: "opsdroid" namespace: "opsdroid" data: configuration.yaml: | connectors: websocket: {} skills: hello: {} --- apiVersion: apps/v1 kind: Deployment metadata: name: "opsdroid" namespace: "opsdroid" annotations: "reloader.stakater.com/auto": "true" spec: replicas: 1 selector: matchLabels: app: "opsdroid" strategy: type: RollingUpdate template: metadata: labels: app: "opsdroid" spec: containers: - image: ghcr.io/opsdroid/opsdroid:latest name: opsdroid volumeMounts: - mountPath: /home/opsdroid/.config/opsdroid/configuration.yaml name: config subPath: configuration.yaml restartPolicy: Always volumes: - name: config configMap: name: "opsdroid" --- apiVersion: v1 kind: Service metadata: labels: app: opsdroid name: opsdroid-http namespace: opsdroid annotations: metallb.universe.tf/allow-shared-ip: 172.16.17.23 metallb.universe.tf/loadBalancerIPs: 172.16.17.23 spec: ipFamilies: - IPv4 ipFamilyPolicy: SingleStack ports: - port: 80 name: ssh protocol: TCP targetPort: 8080 selector: app: opsdroid type: LoadBalancer