Configuration values should provide sensible defaults while remaining adaptable to different environments and deployment contexts. Use conditional assignment and guards to handle variations in runtime environments, deployment tools, and system configurations.
For build configurations, use conditional assignment to allow environment-specific overrides:
# Allow override for different systems (e.g., NixOS)
SHELL ?= /bin/bash
For template configurations, add guards around optional values that may not be available in all contexts:
app.kubernetes.io/name: ztunnel
app.kubernetes.io/managed-by:
This approach ensures configurations work reliably across different deployment methods (helm install, helm template, istioctl) and system environments without requiring manual intervention or causing failures when optional values are missing.
Enter the URL of a public GitHub repository