Swifty Receiver

The Swifty Receiver is a lightweight, easy-to-deploy receiver that can be installed in your enviornemnt to allow Swifty to communicate with your systems.

It is deployed to Docker Hub as rxfoundry/swifty_receiver:{{ swifty_version }}, where {{ swifty_version }} is the version of Swifty you are using.

The environment variables that are required are:

- name: GOOGLE_PROJECT_NAME
  value: "{{ project }}"
- name: SWIFTY_MESSAGE_TOPIC
  value: "swifty-message-receiver" # or whatever you want to call it
- name: LOGLEVEL
  value: "DEBUG" # or "INFO" to tamp it down a bit

Probes can be set in the deployment descriptor as follows:

livenessProbe:
  httpGet:
    port: 8080
    path: /api/receiver/1/version
  initialDelaySeconds: 90
  timeoutSeconds: 10
readinessProbe:
  httpGet:
    port: 8080
    path: /api/receiver/1/version
  initialDelaySeconds: 30
  timeoutSeconds: 10

For GCP, an Ingress would look something like this:

- name: 'Create ingress for receiver'
  kubernetes.core.k8s:
    state: present
    definition:
      apiVersion: networking.k8s.io/v1
      kind: Ingress
      metadata:
        name: receiver-ingress
        namespace: "{{ gke_namespace }}"
        annotations:
          kubernetes.io/ingress.regional-static-ip-name: "{{ gke_namespace }}-receiver-ip"
          networking.gke.io/managed-certificates: "{{ gke_namespace }}-receiver"
          kubernetes.io/ingress.class: "gce"
          kubernetes.io/ingress.allow-http: "false"
          networking.gke.io/v1beta1.FrontendConfig: ingress-security-config-receiver
      spec:
        rules:
          - host: "{{ receiver_hostname }}"
            http:
              paths:
              - path: /*
                pathType: ImplementationSpecific
                backend:
                  service:
                    name: swifty-receiver
                    port:
                      number: 80