
“A good engineer is a lazy engineer.”
At GitGuardian, that idea shows up in a simple principle: automate everything that can be automated.
In a recent RepliCon talk, Jérémy Cotineau, Senior Kubernetes DevOps Engineer at GitGuardian, walked through how their team applied that principle to one of the hardest problems in self-hosted software: support.
Because in on-prem environments, the real challenge is not fixing issues. It is everything required to get to the fix.
GitGuardian operates in environments where direct access to customer infrastructure is not possible. Many of their customers run in highly secure, self-hosted environments with strict access controls.
That creates a familiar set of challenges:
In practice, support becomes a multi-step process involving different teams and tools, with delays at each step.
GitGuardian built their support workflow around Replicated Support Bundles, which collect logs and cluster state into a single package.
Out of the box, this provides a consistent way to capture data from a Kubernetes environment. GitGuardian extended this further by adding custom collectors.
One key addition was integrating logs from their internal log collection system. This ensures that even if a pod crashes and logs are lost from the cluster, they are still available in the bundle.
Because support bundles are configurable, GitGuardian can include exactly the data they need for debugging without relying on manual log collection.
The result is a repeatable starting point for every support case: a complete snapshot of the system at the time of the issue.

Once data collection was standardized, the next step was reducing the effort required to analyze it.
GitGuardian built an internal AI system that integrates with their support workflow. When a support ticket is created and a bundle is uploaded, the system:
One of the key benefits is that the analysis is tied directly to observable data. The system references logs and signals from the bundle to justify its conclusions.
In many cases, this allows support engineers to resolve issues without escalation to the most advanced support tier.

Even with bundles and AI in place, one major source of friction remained: generating the bundle itself.
The existing workflow required:
This introduced several issues:
At the moment when speed matters most, the process still depended on manual steps.
To remove this friction, GitGuardian moved bundle generation into their product.
They built a one-click workflow in their admin UI that:

This approach removes the need for local tooling and reduces coordination across teams.
It also enables additional controls, such as adjusting the log collection window dynamically. For example, users can limit the bundle to the last hour of logs instead of collecting a full day of data.

Under the hood, the system uses a dedicated pod with two containers:
This keeps the implementation simple and avoids introducing persistent storage complexity.

Creating pods dynamically introduces risk.
If not properly controlled, it could allow an attacker to run arbitrary containers, execute commands, and potentially take over the cluster.
To mitigate this, GitGuardian implemented Kubernetes Validating Admission Policies.

These policies enforce strict rules on pod creation:
This ensures that the application can only create support bundle pods and nothing else.
By separating permissions between the application and the pod, GitGuardian also limits the scope of what each component can do.
GitGuardian’s support system builds in layers:
Each layer addresses a specific source of friction, and together they create a support loop that is faster and more consistent.

A few key ideas stand out from this approach:
As Jérémy put it: “Everything that we can automate, we should automate.”
In environments where access is limited and stakes are high, that principle is not just about efficiency. It is what makes effective support possible.
Want to take a similar approach with your application support workflow? Learn more in Building A Support Bundle Workflow That Meets Your Engineers Where They Already Work.