OpenUnison processes all tasks in workflows as messages on a queue. This makes OpenUnison both scalable and reliable. If at any point a task fails, such as if OpenUnison can't talk to an api, database, or directory, then the failed messages will go into a "Dead Letter Queue" for safe keeping until the issue is resolved. Most messaging solutions provide a way to move messages one-at-a-time, but its easier to move the messages back to their original queues in bulk. This container, when used with the Job in src/main/yaml will move all the messages in your dead letter queue back into their original queues.
Prior to running the Job, make the following updates:
spec.template.spec.initContainers[0].image - This should be the same image you are using in your OpenUnison deployment
spec.template.spec.containers[0].command[12] - The name of the queue to clear
Once you create the Job, it will copy the OpenUnison configuration from your OpenUnison pod then run the DLQ utility using it. The output will look something like:
[2020-03-27 15:19:01,340][main] INFO OpenUnisonUtils - Loading Unison Configuration
[2020-03-27 15:19:01,780][main] INFO OpenUnisonConfigLoader - No config from include files, using original
[2020-03-27 15:19:01,993][main] INFO OpenUnisonUtils - Configuration loaded
[2020-03-27 15:19:01,993][main] INFO OpenUnisonUtils - Loading the keystore...
[2020-03-27 15:19:02,402][main] INFO OpenUnisonUtils - ...loaded
[2020-03-27 15:19:02,402][main] INFO OpenUnisonUtils - Getting the DLQ Name...
[2020-03-27 15:19:02,408][main] INFO QueUtils - DLQ Run : c9a2af7d-4ee5-4001-9779-c58c6e0e7f6b
[2020-03-27 15:19:02,408][main] INFO QueUtils - Connecting to com.tremolosecurity.provisioning.jms.providers.AwsSqsConnectionFactory
[2020-03-27 15:19:03,040][main] INFO QueUtils - Connected
[2020-03-27 15:19:03,040][main] INFO QueUtils - Creating queue openunison-dlq-eks.fifo
[2020-03-27 15:19:03,522][main] INFO QueUtils - Checking for messages
[2020-03-27 15:19:04,523][main] INFO SQSMessageConsumer - Shutting down ConsumerPrefetch executor
Once the Job is done, it can be deleted.