# Version Control with GitOps and Kubernetes

**URL:** <https://forum.inductiveautomation.com/t/version-control-with-gitops-and-kubernetes/116845>\
**Category:** Ignition\
**Tags:** perspective\
**Created:** [August 20, 2026, 2:00pm UTC](https://forum.inductiveautomation.com/t/version-control-with-gitops-and-kubernetes/116845 "2026-08-20T14:00:53Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![p.costa](https://avatars.discourse-cdn.com/v4/letter/p/f04885/32.png) [@p.costa](https://forum.inductiveautomation.com/u/p.costa)\
**Post date:** [August 20, 2026, 2:00pm UTC](https://forum.inductiveautomation.com/t/version-control-with-gitops-and-kubernetes/116845/1 "2026-08-20T14:00:53Z")

</div>

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/](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?

---

<div class="post-metadata">

**Author:** ![p.costa](https://avatars.discourse-cdn.com/v4/letter/p/f04885/32.png) [@p.costa](https://forum.inductiveautomation.com/u/p.costa)\
**Post date:** [August 21, 2026, 3:46pm UTC](https://forum.inductiveautomation.com/t/version-control-with-gitops-and-kubernetes/116845/2 "2026-08-21T15:46:23Z")

</div>

Bump

---

<div class="post-metadata">

**Author:** ![Noah\_Burnette](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/noah_burnette/32/83777_2.png) [@Noah\_Burnette](https://forum.inductiveautomation.com/u/Noah_Burnette)\
**Post date:** [August 21, 2026, 7:42pm UTC](https://forum.inductiveautomation.com/t/version-control-with-gitops-and-kubernetes/116845/3 "2026-08-21T19:42:02Z")

</div>

Hello,

Are you on 8.1 or 8.3?

Ideally for a GitOps approach, you would make a change on dev and push it to your VCS. From there a runner would deploy those changes via ssh. This runner can either directly copy the files or issue a command to the container to pull the specific release/commit. It is up to you. The less the container knows IMO the better. You can track what has been deployed to what environment usually through your VCS.

Basic example below:

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/4/c/4caac42a2623e2aaf6bb150484d4ea64042a524d.png)

---

<div class="post-metadata">

**Author:** ![p.costa](https://avatars.discourse-cdn.com/v4/letter/p/f04885/32.png) [@p.costa](https://forum.inductiveautomation.com/u/p.costa)\
**Post date:** [August 24, 2026, 8:00am UTC](https://forum.inductiveautomation.com/t/version-control-with-gitops-and-kubernetes/116845/4 "2026-08-24T08:00:11Z")

</div>

Hi thanks for the feedback!  
We hare running Ignition 8.3.

We hoped for something more integrated in Ignition, like it has been done on Thingsboard for the GitOps part ( [Version Control | Docs | ThingsBoard PE](https://thingsboard.io/docs/pe/user-guide/version-control/) ). What you described is interesting, but it is a generic approach can an adopted for every system that has a file based configuration.

Probably the most critical part would be the beginning of the chart: how we put the project change on the VCS from the Dev Ignition wihout having to install git on the Ignition image.

---

<div class="post-metadata">

**Author:** ![bobby.miller](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bobby.miller/32/85153_2.png) [@bobby.miller](https://forum.inductiveautomation.com/u/bobby.miller)\
**Post date:** [August 24, 2026, 10:52am UTC](https://forum.inductiveautomation.com/t/version-control-with-gitops-and-kubernetes/116845/5 "2026-08-24T10:52:47Z")

</div>

I'd recreate your environment in a VM and have an agent define a good procedure, tailored to your environment/desires, for you. This is the perfect task for opencode/codex/claude code.
