Alright we made some progress with the WebSocket backend
here’s the configuration we have so far
apiVersion: apps/v1
kind: Deployment
metadata:
name: awx-hop-node
spec:
selector:
matchLabels:
app.kubernetes.io/name: awx-hop-node
template:
metadata:
labels:
app.kubernetes.io/name: awx-hop-node
spec:
containers:
- args:
- /bin/sh
- -c
- |
internal_hostname=awx-hop-node #hardcoded to deployment name
external_hostname=awx-hop-node-saas-dev.apps.controller-dev.testing.ansible.com #hardcoded to the route name
receptor --cert-makereq bits=2048 commonname=$internal_hostname dnsname=$internal_hostname dnsname=$external_hostname nodeid=$internal_hostname outreq=/etc/receptor/tls/receptor.req outkey=/etc/receptor/tls/receptor.key
receptor --cert-signreq req=/etc/receptor/tls/receptor.req cacert=/etc/receptor/tls/ca/mesh-CA.crt cakey=/etc/receptor/tls/ca/mesh-CA.key outcert=/etc/receptor/tls/receptor.crt verify=yes
exec receptor --config /etc/receptor/receptor.conf
image: quay.io/haoliu/awx-ee:v1.4.1
imagePullPolicy: Always
name: awx-hop-node
resources:
requests:
cpu: 50m
memory: 64M
volumeMounts:
- mountPath: /etc/receptor/receptor.conf
name: awx-hop-node-config
subPath: receptor.conf
- mountPath: /etc/receptor/tls/ca/mesh-CA.crt
name: awx-receptor-ca
readOnly: true
subPath: tls.crt
- mountPath: /etc/receptor/tls/ca/mesh-CA.key
name: awx-receptor-ca
readOnly: true
subPath: tls.key
- mountPath: /etc/receptor/tls/
name: awx-receptor-tls
restartPolicy: Always
schedulerName: default-scheduler
serviceAccount: awx
serviceAccountName: awx
volumes:
- name: awx-receptor-tls
- name: awx-receptor-ca
secret:
defaultMode: 420
secretName: awx-receptor-ca
- configMap:
defaultMode: 420
items:
- key: receptor_conf
path: receptor.conf
name: awx-hop-node-configmap
name: awx-hop-node-config
---
apiVersion: v1
kind: ConfigMap
metadata:
name: awx-hop-node-configmap
data:
receptor_conf: |
---
- node:
id: awx-hop-node
- log-level: debug
- ws-listener:
port: 27198
tls: tlsserver
- tcp-listener:
port: 27199
tls: tlsserver
- tls-server:
cert: /etc/receptor/tls/receptor.crt
key: /etc/receptor/tls/receptor.key
name: tlsserver
clientcas: /etc/receptor/tls/ca/mesh-CA.crt
requireclientcert: true
mintls13: false
---
apiVersion: v1
kind: Service
metadata:
name: awx-hop-node
spec:
type: ClusterIP
ports:
- name: tcp
port: 27199
targetPort: 27199
- name: ws
port: 27198
targetPort: 27198
selector:
app.kubernetes.io/name: awx-hop-node
---
apiVersion: route.openshift.io/v1
kind: Route
metadata:
annotations:
openshift.io/host.generated: "true"
name: awx-hop-node
namespace: saas-dev
spec:
host: awx-hop-node-saas-dev.apps.controller-dev.testing.ansible.com
port:
targetPort: ws
tls:
insecureEdgeTerminationPolicy: None
termination: passthrough
to:
kind: Service
name: awx-hop-node
weight: 100
wildcardPolicy: None