Relocation to EKS (basic)

These instructions cover the process of relocating a basic copy of the production fragalysis stack to an AWS EKS Kubernetes 1.23 cluster.

By relocation we mean moving the stack from A source cluster to a separate destination cluster.

Basic is meant to imply that the stack is not using any of the optional applications like an AWX ansible playbook server, Squonk, Discourse or a Graph Database.

The relocation uses playbooks already employed by the original AWX server but also requires some manual effort.

Note

These instructions, valid at the time they were written, do refer to components whose versions may no longer be appropriate. For example we refer to Kubernetes 1.23 which today (September 2025) is no longer supported. The instructions themselves (the process, the actions) are still relevant but if you attempt to repeat These instructions you must check the prevailing software versions. For example, today we use Kubernetes 1.31, and a custom xchem Keycloak (26.0.5).

Before you begin you will need: -

  • A compatible AWS EKS kubernetes cluster (i.e. Kubernetes 1.23)

  • Worker nodes, with each that providing at least 18Gi RAM and 8 cores with a combined total of at least 25Gi RAM cores and 12 cores.

  • Kubernetes config files for the source and destination clusters

  • Access to the production AWX server

  • An AWS S3 bucket

  • The Ansible Vault secret for the roles/fragalysis-stack/vars/sensitive.vault file that is encrypted in the dls-fragalysis-stack-kubernetes repository

In order for the stack to operate it will need the following essential core and infrastructure components in the destination cluster: -

  • At least one Persistent volume StorageClass (core)

  • An nginx ingress controller (core)

  • The kubernetes certificate manager to manager SSL certificates (core)

  • A keycloak server (infrastructure) [1]

  • A PostgreSQL database for keycloak (infrastructure) [2]

There are four basic steps to the relocation: -

  • Preparation * Collect backups of data and media

  • Installation and recovery, which consisting of: - * core components in the destination cluster * Install and recover the infrastructure database * Install and recover the stack

What follows is a simplified guide to relocating the production stack to an AWS EKS cluster.

Warning

You should reserve at least 4 hours to complete the migration, which includes time to collect the data and media backups. The original stack will be at risk during this process and should not be used. You also need to consider the the time it takes to switch the required domains, which might have a long TTL (like 8 hours).

Preparation

Prior to relocating the production stack a we need to collect back-ups of the various databases and the fragalysis stack media directory. Basically all the data that is too complex to reproduce.

../_images/frag-actions.018.png

The data includes: -

  • The Keycloak infrastructure database (A)

  • The fragalysis stack django database (B)

  • The fragalysis stack media directory (C)

Installation and recovery

With preparation done up we can now install the infrastructure and then the stack on the new cluster whilst also restoring the data.

../_images/frag-actions.019.png

Deploying new stack versions

With a stack running you might want to deploy a new stack version. The following instructions cover the process of deploying a new version of the stack.

Moving back

When we’re finished with the destination cluster and you need to move the data back to the original cluster you’ll need to get new backups and move them back to the original stack.

Removal

When we’re finished with the destination cluster we can delete it.

Footnotes