Bootstrap Job Fails: Pod Security Standards Violation
Symptom:helm install completes but the bootstrap job fails with a security policy error, for example:
values.yaml. Clusters enforcing the Kubernetes PSS Restricted or Baseline profiles will reject it.
Fix: Disable the automatic bootstrap job and bootstrap the portal manually:
- Set
global.components.bootstrap: falsein yourvalues.yamland runhelm upgrade. - Wait for the Portal pod to be ready:
- Send the bootstrap request to create the bootstrap admin user:
This is a known limitation in the Helm chart. The bootstrap job template does not yet support security context configuration. Use
global.components.bootstrap: false and bootstrap manually as described above.Portal Pod Crash-Looping
Symptom: The Portal pod restarts repeatedly. Inspect the pod state and logs:Probe Timeouts: Pod Killed Before Startup Completes
Symptom: Kubernetes terminates the pod before it finishes starting. Logs show:/ready endpoint performs a live database ping on every probe check. Short-lived database latency (TLS handshake overhead or connection pool delays) can cause the probe to time out, triggering Kubernetes to restart the pod before it has fully initialized.
Fix: Increase the probe delays and thresholds in your values.yaml:
initialDelaySeconds further (e.g., 300).
PostgreSQL Date Format Mismatch
Symptom: The pod entersCrashLoopBackOff immediately after starting, even though the database is reachable. Logs contain:
DateStyle is not set to ISO.
Fix: Append datestyle and lc_time options to your database.connectionString in values.yaml.
For a DSN-format connection string:
License Key Not Set
If the Portal is started without a valid Tyk license, it logs the following at startup:
Fix: Set the
license field in your values.yaml. If using a Kubernetes secret, confirm the secret contains a DevPortalLicense key and that useSecretName references it:
Environment Variables Not Taking Effect
Symptom: Configuration set viaextraEnvs (such as PORTAL_STORAGE or PORTAL_DATABASE_DIALECT) is not reflected at runtime. The Portal continues using previous values.
Cause: The Helm chart generates environment variables for certain fields (including storage type and database dialect) from its own templated values. Variables passed through extraEnvs may be overridden by these chart-generated values.
Fix: Use the chart’s native fields in values.yaml instead of extraEnvs for these settings:
Reserve
extraEnvs for configuration options that have no direct Helm chart equivalent.