Version Control with GitOps and Kubernetes

Hi all,

We have a question about GitOps best practices for the Kubernetes version of Ignition.

We have two gateways (dev and prod) deployed using the official Inductive Automation Helm chart: https://charts.ia.io/.

Our current workflow is to manually copy projects from prod to dev, connect to the dev gateway with Designer, make our changes, and then move the updated project back to prod. This works, but we'd like to improve it with a GitOps approach so that project changes are versioned in Git.

We've come up with two possible approaches:

  • Install Git in the Ignition container so we can push and pull project files directly. The downside is that we'd have to modify the official Ignition image and store Git credentials inside the container.

  • Sync through a local machine by copying the projects folder from the gateway, committing the changes to Git, and then copying the updated files to the target gateway. The downside is that this relies on developers remembering to sync every change, so we could lose track of which project version is actually running in dev or prod (Contrary to the GitOps approach).

Has anyone implemented a GitOps workflow for Ignition on Kubernetes? How are you handling project versioning and promotion between environments?