Skip to content

Troubleshoot a Big Bang deployment

Use this guide when a Big Bang deployment, upgrade, or package is not healthy.

Big Bang is deployed declaratively through Flux. Find the first resource that is not ready and fix that failure before troubleshooting downstream resources. An earlier reconciliation failure can cause multiple downstream symptoms.

Find the Failing Layer

flowchart TD
    A[Big Bang deployment has a problem] --> B{Is Flux healthy?}

    B -->|No| C[Troubleshoot Flux]
    B -->|Yes| D{Is environment configuration ready?}

    D -->|No| E[Troubleshoot source or Kustomization]
    D -->|Yes| F{Is the Big Bang HelmRelease ready?}

    F -->|No| G[Troubleshoot Big Bang HelmRelease]
    F -->|Yes| H{Are package HelmReleases ready?}

    H -->|No| I[Troubleshoot affected package]
    H -->|Yes| J{Are package workloads healthy?}

    J -->|No| K[Troubleshoot workload or component]
    J -->|Yes| L[Investigate application-specific symptoms]

Work from the highest failing layer downward. Avoid troubleshooting downstream symptoms while an earlier dependency is not ready.

Check Deployment Status

Start by checking Flux and listing resources that are not ready:

flux check
flux get all -A --status-selector ready=false

If you need the complete reconciliation status:

flux get sources all -A
flux get kustomizations -A
flux get helmreleases -A

For a resource that is not ready, inspect its conditions, message, and recent events before moving to the next layer.

Failing layer Continue with
Flux controller or health check Flux
Source or Kustomization Environment configuration
Big Bang HelmRelease Big Bang HelmRelease
Package HelmRelease or workload Package or workload
Upgrade Upgrade problems
Healthy deployment with performance problems Performance troubleshooting

Troubleshoot by Layer

Flux

If flux check reports unhealthy controllers, resolve the Flux problem before troubleshooting Big Bang resources.

For controller health, logs, source failures, and other Flux-specific problems, see the Flux troubleshooting guide.

Environment Configuration

Check the sources and Kustomizations that manage the environment:

flux get sources all -A
flux get kustomizations -A

If a Kustomization is not ready, inspect it:

kubectl describe kustomization <kustomization-name> -n <namespace>

Use the resource conditions and messages to identify source access, manifest build or apply, decryption, or dependency failures.

For detailed troubleshooting, see the Flux troubleshooting guide and Flux Kustomization documentation. For Git repository authentication, certificate, or source-access failures, see Flux GitRepository documentation.

Big Bang HelmRelease

If the Flux resources that manage the environment are ready, check the Big Bang umbrella HelmRelease:

flux get helmrelease bigbang -n bigbang
kubectl describe helmrelease bigbang -n bigbang

Use its conditions, reason, message, and events to identify failures involving Big Bang values, chart or source configuration, dependencies, or install and upgrade reconciliation.

Correct the declarative configuration that caused the failure. For detailed HelmRelease behavior and remediation, see the Flux HelmRelease documentation.

Reconcile after Correcting the Cause

Flux reconciles resources automatically. If you changed values managed by an environment Kustomization, reconcile that Kustomization first so it applies the updated configuration. Use the name and namespace of the Kustomization that owns those values:

flux reconcile kustomization <kustomization-name> -n <namespace> --with-source

After the environment Kustomization finishes successfully, reconcile the Big Bang HelmRelease:

flux reconcile helmrelease bigbang -n bigbang --with-source

The HelmRelease --with-source option reconciles its chart source; it does not apply changed values from the environment repository. See the Flux Kustomization command and HelmRelease command references.

Verify the release:

flux get helmrelease bigbang -n bigbang

Full Reset

Use a full reset only after the failure cannot be corrected through declarative configuration. A full reset is a destructive recovery action that can remove Big Bang-managed workloads and resources. Before proceeding, confirm backup and persistent-data requirements and identify the Kustomization that will recreate the Big Bang HelmRelease.

Delete the Big Bang HelmRelease:

kubectl delete helmrelease bigbang -n bigbang

If namespaces remain stuck in a terminating state, use the remove-ns-finalizer.sh script to remove the remaining finalizers.

After deletion completes, reconcile the Kustomization that manages the Big Bang HelmRelease:

flux reconcile kustomization <kustomization-name> -n <namespace> --with-source

Verify that the deployment is recreated successfully:

flux get helmrelease bigbang -n bigbang

Warning: Removing namespace finalizers forces deletion to complete. Use the script only for namespaces that remain stuck during the full reset.

Package or workload

After the Big Bang HelmRelease is ready, check the downstream package releases:

flux get helmreleases -A

Inspect a package that is not ready:

kubectl describe helmrelease <package-name> -n <namespace>

If the package release is ready but the application is not functioning, inspect its workloads:

kubectl get pods -n <namespace>
kubectl describe pod <pod-name> -n <namespace>

Use the reported conditions and events to choose the next step.

For package-specific configuration and troubleshooting, see the Big Bang package documentation. Select the affected package for its Big Bang integration guide and package repository.

Problem Continue with
Pod is Pending, fails to start, or repeatedly restarts Kubernetes application debugging
ErrImagePull or ImagePullBackOff Inspect pod events, image references, and pull credentials. See Big Bang registry credentials and Kubernetes private registry authentication. For Registry1 unauthorized: authentication required errors, see Iron Bank robot-account guidance.
DNS failure Kubernetes DNS debugging
Service has no reachable backend Kubernetes Service debugging
NetworkPolicy may be blocking traffic Big Bang Network Policies
Istio routing, mesh, TLS, or authorization problem Istio diagnostic tools
Big Bang authorization problem Big Bang Authorization Policies
Big Bang route problem Big Bang Routes
Kyverno admission or policy failure Kyverno troubleshooting and Big Bang Kyverno Policies exceptions. For other admission controllers, consult the documentation for the controller identified in the error.
Insufficient CPU or memory Kubernetes resource management
Storage or PersistentVolumeClaim problem Kubernetes persistent volumes
Pod scheduling failure Kubernetes scheduling
Kubernetes resources are healthy but the application is not Consult the affected package’s Big Bang integration guide or package repository.
Deployment is healthy but slow or resource constrained Performance troubleshooting

Check Service Connectivity

If the problem involves Service connectivity, confirm that the Service has the expected EndpointSlices:

kubectl get svc <service-name> -n <namespace>
kubectl get endpointslice -n <namespace> -l kubernetes.io/service-name=<service-name>

If the Service is expected to select workloads but has no endpoints, verify its selector and backing workloads.

For CNI, load balancer, or infrastructure failures, use the documentation for the components deployed in your environment.

For cluster networking problems, see Kubernetes Network Plugins and the documentation for your installed CNI.

For external traffic or load-balancer problems, see Kubernetes Service debugging and the documentation for your cluster’s load-balancer implementation.

Warning: Do not disable security policies, add broad allow rules, or manually modify Flux-managed workloads as a standard troubleshooting step. Correct the declarative configuration that caused the failure.

Upgrade Problems

Use the same top-down troubleshooting workflow on this page to find the first resource that is not ready.

For an upgrade failure, also review:

  • Big Bang release notes and upgrade notices for the relevant upgrade path.
  • The affected package’s changelog.
  • Required configuration or value changes.

Correct the desired configuration rather than using a direct helm upgrade, manually editing Flux-managed resources, or performing a direct Helm rollback as the first response.

For upgrade procedures, supported upgrade paths, and post-upgrade verification, see Upgrades.

Verify Recovery

After correcting the failure, check for resources that are still not ready:

flux get all -A --status-selector ready=false

Then verify the affected workloads:

kubectl get pods -n <namespace>

Verify that the original symptom is also resolved. A successful reconciliation does not necessarily mean that the application is functioning correctly.

Escalate the Issue

If you cannot resolve the problem, collect information about the first failing layer.

Include:

  • Big Bang version
  • Affected package and version, if applicable
  • First Flux resource that is not ready
  • Resource condition and error message
  • Relevant events or logs
  • Recent configuration or upgrade changes
  • Steps to reproduce the problem

Useful starting commands are:

flux get all -A --status-selector ready=false
kubectl get events -n <namespace> --sort-by='.lastTimestamp'

Warning: Review diagnostic output before sharing it. Logs, events, and resource information can contain environment-specific or sensitive information.