You push a Git commit, and traffic policies update themselves. That’s the dream. No more “who approved this firewall rule” or late-night SSH rescues. With FluxCD and FortiGate working together, network access becomes code, approvals come from Git, and compliance lives in version history.
FluxCD handles the GitOps side: it continuously reconciles Kubernetes manifests or configs from a repository to your cluster. FortiGate stands guard, managing security policies, VPN, and routing with military precision. Combine them and you get a self-documenting, self-healing infrastructure pipeline that never forgets a rule change.
Here’s the logic. FluxCD syncs a repo that holds FortiGate configuration templates, maybe in Terraform or YAML. When you change a rule in Git, FluxCD detects the commit, pulls it, and applies the update to FortiGate using an operator or API bridge. Every change includes versioning, peer review, and automated rollback. That’s automation meeting network security in a way that auditors actually appreciate.
The integration flow usually looks like this:
- Git stores the desired FortiGate configuration.
- FluxCD monitors that repo for changes.
- On update, FluxCD invokes a pipeline or custom controller that uses FortiManager or direct REST calls to update FortiGate.
- FortiGate enforces the new policies, logs the results, and reports compliance.
No human CLI sessions. No drift. Just traceable, declarative control.
A common snag is secret management. Keep FortiGate API tokens in Kubernetes sealed secrets or managed via HashiCorp Vault. Use RBAC and OIDC with providers like Okta or AWS IAM to restrict who can trigger updates. And keep environment tags consistent so FluxCD can target the right FortiGate instances automatically.