You are using Flux and need to ensure that specific resources are ignored by the reconciliation process. Which feature should you utilize?
Trap 1: Namespace-level network policies
Network policies govern pod traffic at layer 3/4 and have no bearing on which manifests Flux reconciles. They are tempting because they are a Kubernetes-native mechanism for scoping behaviour, but Flux ignores resources through annotations and field exclusions, not network rules.
Trap 2: Git commit filtering
Flux reconciles the whole Git revision; there is no commit-filtering feature that excludes individual resources from reconciliation. It is tempting because Git is the source of truth, so filtering commits appears to control what is applied, but exclusion is done via ignore annotations or spec.ignore.
Trap 3: ClusterRoleBinding exclusions
RoleBindings are not managed via exclusion lists in this way.
- A
Namespace-level network policies
Why it fails: Network policies govern pod traffic at layer 3/4 and have no bearing on which manifests Flux reconciles. They are tempting because they are a Kubernetes-native mechanism for scoping behaviour, but Flux ignores resources through annotations and field exclusions, not network rules.
- B
Git commit filtering
Why it fails: Flux reconciles the whole Git revision; there is no commit-filtering feature that excludes individual resources from reconciliation. It is tempting because Git is the source of truth, so filtering commits appears to control what is applied, but exclusion is done via ignore annotations or spec.ignore.
- C
Kustomization ignore annotations
Kustomize's `kustomize.toolkit.fluxcd.io/ignore` annotation, applied to a resource, instructs Flux's kustomize-controller to skip reconciling that object entirely. This directly satisfies the requirement to exclude specific resources from reconciliation, unlike `.spec.ignore` on a Kustomization, which only filters paths during build.
- D
ClusterRoleBinding exclusions
Why it fails: RoleBindings are not managed via exclusion lists in this way.