Organisations should migrate when configuration is spread across environment variables, per-instance overrides, or hand-tuned deployment files that are hard to validate. Native Kubernetes resources make intent easier to audit, lint, and standardize. The right trigger is usually when repeated setup work is creating friction, inconsistencies, or upgrade risk across environments.
When controller settings belong in Kubernetes manifests rather than ad hoc overrides
Moving controller configuration into native Kubernetes resources is less about style and more about control. If a setting governs how the controller behaves across deployments, clusters, or upgrade cycles, it is easier to manage when it lives in the same declarative system that already tracks desired state. That improves reviewability, makes drift easier to spot, and reduces the chance that one environment quietly diverges from another. It also helps teams reason about what is intended versus what was changed manually.
For security and operations teams, the practical question is whether the configuration is stable, repeatable, and worth validating as code. Settings that change often, are highly environment-specific, or are still being explored may remain easier to manage outside the manifest until the pattern settles. Native resources become most valuable when the configuration has become part of the platform contract rather than a one-off deployment detail. In practice, many teams only recognise that boundary after upgrade failures or environment drift has already made rollback harder than expected.
How native Kubernetes resources change the configuration lifecycle
Kubernetes-native configuration works best when the controller can express its desired state through objects that are versioned, reviewed, and reconciled by the platform. That usually means using ConfigMaps, Secrets, custom resources, or controller-specific fields in manifests instead of relying on environment variables, local overrides, or hand-edited deployment templates. The benefit is not simply consolidation. It is the ability to make configuration visible to the same controls that already govern change management, access, and rollout.
For organisations deciding when to migrate, the useful test is whether the current configuration path creates avoidable ambiguity. If two teams can deploy the same controller with different hidden defaults, the system is already harder to govern. If a change requires editing multiple files in multiple places, the chance of inconsistent rollout rises. Native resources reduce that fragmentation by making the intent explicit and portable.
- Use native resources when the setting should follow the controller across environments without manual re-entry.
- Prefer manifest-based configuration when review, linting, and policy checks need to see the setting before deployment.
- Keep non-native overrides only when the parameter is temporary, experimental, or tied to a short-lived environment distinction.
- Treat secrets separately from ordinary configuration so that convenience does not override access control.
This approach also improves incident response because operators can inspect what was declared, not just what is currently running. It is especially useful when controller behaviour affects scheduling, admission, autoscaling, routing, or other control-plane decisions that are difficult to debug from runtime state alone. The trade-off is that once configuration becomes native, poor change hygiene becomes more visible too. Teams need stronger review discipline, because a bad manifest can spread faster than a manual fix ever did.
If the controller configuration is still changing every week, or if the team cannot yet describe a stable baseline, the migration is probably premature.
Where the migration decision becomes messy in real deployments
Tighter standardisation usually improves consistency, but it also increases the cost of making exceptions, so organisations need to balance operational convenience against the value of a single source of truth.
Not every controller setting should move at the same pace. Some configuration is genuinely environmental, such as per-cluster storage class choices, ingress targets, or region-specific constraints. Other settings look environmental at first but are actually policy decisions that should be normalised, such as default resource limits, allowed feature flags, or retry behaviour. The difficult cases are the ones where a setting is both operationally important and likely to vary during rollout. Those deserve a transition period rather than an immediate rewrite.
There is also a difference between embedding configuration in a manifest and making it governable. A native object that nobody validates can still drift, and a declarative file that is copied between repositories can still become inconsistent. Good practice is to migrate only when the team can also support review, ownership, and rollback discipline around that object. The organisations that get this right usually standardise the stable core first, then leave genuinely volatile parameters outside until the operating model matures.
OWASP Non-Human Identity Top 10 is useful when controller configuration includes credentials, tokens, or other machine-access material that must be governed separately from ordinary deployment intent. The boundary matters because native placement can improve consistency without automatically solving access control or secret lifecycle issues.
Guidance varies on how much should be normalised up front, but there is broad agreement that repeated manual configuration across environments is a sign that the current pattern is not scaling well.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
OWASP Non-Human Identity Top 10 address the attack and risk surface, while CIS Controls v8 and NIST CSF 2.0 set the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| CIS Controls v8 | 5 — Account Management | Centralising controller config reduces ad hoc admin changes and hidden variance. |
| Recommendation — Standardise controller settings and limit manual overrides that create inconsistent access paths. | ||
| NIST CSF 2.0 | PR.IP — Information Protection Processes and Procedures | The question is about making configuration repeatable, reviewable, and governed as code. |
| CM — Configuration Management | Native Kubernetes resources are a configuration management decision with drift implications. | |
| Recommendation — Apply PR.IP to version, review, and standardise controller configuration changes. Use CM to keep declared controller state aligned with approved operational intent. | ||
| OWASP Non-Human Identity Top 10 | NHI-01 — Inventory and Ownership | Controller config may include secrets or machine credentials needing explicit ownership. |
| NHI-03 — Secrets and Credential Lifecycle | Native manifests often touch credentials, tokens, or keys that need separate handling. | |
| Recommendation — Inventory controller-bound secrets and assign clear ownership before migrating them. Separate secret lifecycle controls from ordinary configuration when moving settings into manifests. | ||
Practitioner Guidance
What to prioritise: Start with the controller settings that are already causing drift, upgrade friction, or repeated operator intervention. Those are the strongest candidates because the business value comes from reducing inconsistency, not from moving configuration for its own sake.
Decision rule: If a setting should be auditable, reproducible, and promoted through the same release path as the controller itself, migrate it into native Kubernetes resources. If it is still being tuned interactively or differs materially by environment, keep it separate until the pattern stabilises.
What to verify: Confirm that the team can validate the new source of truth before cutover. That means understanding how changes will be reviewed, how rollback will work, and whether the new location improves visibility without making exceptions harder to identify.
Common mistake: Teams often move configuration into manifests before they have reduced ambiguity about ownership. The result is a more declarative file that still depends on tribal knowledge, which preserves the original risk in a less obvious form.
Practitioner takeaway: Migrate configuration when the organisation is ready to govern it as part of the platform contract, not merely because Kubernetes can store it.
Related resources from NHI Mgmt Group
- When should organisations prioritise Zero Standing Privilege for non-human identities?
- How should security teams decide whether JIT access is safe for non-human identities?
- How can organisations reduce secret leakage in ServiceNow at scale?
- How do organisations reduce false positives in secret detection pipelines?
Deepen Your Knowledge
Reviewed and updated by the NHIMG editorial team on September 7, 2026.
NHI Mgmt Group — the #1 independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org