Skip to content

[RCA] configmap-mount-test/instavote: The deployment configmap-mount-test is unavailable because... #6

Description

@initcron

Root Cause Analysis Report

Resource: configmap-mount-test
Kind: deployments
Namespace: instavote

RCA Report

Resource: deployments/configmap-mount-test
Namespace: instavote
Generated: 30/12/2025, 7:26:58 PM


Symptoms / Initial Diagnosis

The following symptoms triggered this RCA:

  • The deployment is unavailable because the minimum number of replicas are not available. The Available condition is False with reason MinimumReplicasUnavailable.

Root Cause

The deployment configmap-mount-test is unavailable because the pod cannot start due to a missing secret volume.

Confidence: 85%


Evidence

  • The deployment is unavailable because it has fewer replicas than desired.
  • The describe deployment output shows Available: False MinimumReplicasUnavailable.
  • The events show FailedMount: MountVolume.SetUp failed for volume "missing-secret-volume" : secret "missing-secret-does-not-exist" not found, indicating the pod is failing to start because it cannot mount a non-existent secret.

Remediation Options

Option A

Remove or create the missing secret

Low Risk | Quick

Either remove the missing-secret-volume volume mount from the deployment, or create the missing-secret-does-not-exist secret in the instavote namespace.

Command:

kubectl delete secret missing-secret-does-not-exist -n instavote

Analysis Steps

Click to expand step-by-step analysis

[OK] Planning

Plan generated: The deployment is unavailable because the minimum number of replicas are not available, likely due to pod failures or scheduling issues.

[OK] Describe the deployment

Name:                   configmap-mount-test
Namespace:              instavote
CreationTimestamp:      Sun, 07 Dec 2025 15:25:26 +0530
Labels:                 app=configmap-mount-test
Annotations:            deployment.kubernetes.io/revision: 1
Selector:               app=configmap-mount-test
Replicas:               1 desired | 1 updated | 1 total | 0 available | 1 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:  app=configmap-mount-test
  Containers:
   app:
    Image:      busybox:latest
    Port:       <none>
    Host Port:  <none>
    Command:
      sh
      -c
      cat /config/app.properties && sleep 3600
    Limits:
      cpu:     200m
      memory:  64Mi
    Requests:
      cpu:        100m
      memory:     32Mi
    Environment:  <none>
    Mounts:
      /config from config-volume (rw)
      /secrets from missing-secret-volume (rw)
  Volumes:
   config-volume:
    Typ

[OK] Get pods related to the deployment

[
  {
    "apiVersion": "v1",
    "kind": "Pod",
    "metadata": {
      "name": "configmap-mount-test-d449d85b9-xqx2b",
      "namespace": "instavote",
      "uid": "055b7157-e873-461b-bbad-91ae5aae9566",
      "resourceVersion": "2208921",
      "creationTimestamp": "2025-12-07T09:55:26Z",
      "labels": {
        "pod-template-hash": "d449d85b9",
        "app": "configmap-mount-test"
      },
      "annotations": null,
      "ownerReferences": [
        {
          "apiVersion": "apps/v1",
          "kind": "ReplicaSet",
          "name": "configmap-mount-test-d449d85b9",
          "uid": "176a4686-e6a7-4822-946d-ab0ee9f1ee43",
          "controller": true,
          "blockOwnerDeletion": true
        }
      ]
    },
    "spec": {
      "containers": [
        {
          "command": [
            "sh",
            "-c",
            "cat /config/app.properties && sleep 3600"
          ],
          "image": "busybox:latest",
          "imagePullPolicy": "Always",
          "name": "

[OK] Describe any failing pods

Name:                   configmap-mount-test
Namespace:              instavote
CreationTimestamp:      Sun, 07 Dec 2025 15:25:26 +0530
Labels:                 app=configmap-mount-test
Annotations:            deployment.kubernetes.io/revision: 1
Selector:               app=configmap-mount-test
Replicas:               1 desired | 1 updated | 1 total | 0 available | 1 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:  app=configmap-mount-test
  Containers:
   app:
    Image:      busybox:latest
    Port:       <none>
    Host Port:  <none>
    Command:
      sh
      -c
      cat /config/app.properties && sleep 3600
    Limits:
      cpu:     200m
      memory:  64Mi
    Requests:
      cpu:        100m
      memory:     32Mi
    Environment:  <none>
    Mounts:
      /config from config-volume (rw)
      /secrets from missing-secret-volume (rw)
  Volumes:
   config-volume:
    Typ

[OK] Check recent events in the namespace

[Warning] FailedMount: MountVolume.SetUp failed for volume "missing-secret-volume" : secret "missing-secret-does-not-exist" not found
[Normal] Pulling: Pulling image "busybox:latest"
[Warning] BackOff: Back-off restarting failed container crash-app in pod crashloop-test-6968688c54-t2dsz_instavote(8030d689-513d-462c-8e57-fb71316f1a21)
[Normal] Pulled: (combined from similar events): Successfully pulled image "busybox:latest" in 2.094s (2.094s including waiting). Image size: 1913613 bytes.
[Warning] Failed: Failed to pull image "nonexistent-registry.io/fake-app:v1.0.0": failed to pull and unpack image "nonexistent-registry.io/fake-app:v1.0.0": failed to resolve reference "nonexistent-registry.io/fake-app:v1.0.0": failed to do request: Head "https://nonexistent-registry.io/v2/fake-app/manifests/v1.0.0": dial tcp: lookup nonexistent-registry.io on 192.168.65.254:53: no such host
[Normal] BackOff: Back-off pulling image "nonexistent-registry.io/fake-app:v1.0.0"
[Warning] Failed: Error: Imag

[...] Generating Conclusion


Generated by KubeAgentics RCA

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions