kubernetes / minikube

Run Kubernetes locally
https://minikube.sigs.k8s.io/
Apache License 2.0
29.24k stars 4.87k forks source link

`minikube image rm` Exits with 0 on Failure #19687

Open kon-foo opened 5 days ago

kon-foo commented 5 days ago

What Happened?

Description

When running minikube image rm, the exit code is 0 even though the command fails to remove the image. A failure should result in a non-zero exit code, allowing scripts or CI processes to handle the failure properly.

Steps to reproduce

  1. Load an image and start a pod.

    minikube image load alpine:latest
    kubectl create deployment alpine-deployment --image=alpine:latest -- sleep 3600
  2. Attempt to remove the image while being in use.

    minikube image rm alpine:latest
  3. Check for the error output: You should see an error similar to:

    
    ❗  Failed to remove images for profile minikube error removing images: remove image docker: docker rmi alpine:latest: Process exited with status 1
    stdout:

stderr: Error response from daemon: conflict: unable to remove repository reference "alpine:latest" (must force) - container dc9b6c3f872e is using its referenced image 91ef0af61f39

4. Check the exit code of the minikube command:
```bash
echo $?
# Output: 0

Expected Behavior

When minikube image rm encounters an error (such as an image being in use), it should exit with a non-zero status code (e.g. 1), allowing proper error handling in scripts or pipelines.

Actual Behavior

The command exits with a status code of 0, even though it reports an internal failure, which leads to downstream commands executing when they shouldn't.

Suggested Fix

Ensure that minikube image rm propagates the exit status of the underlying image removal process.\

Environment

Attach the log file

log.txt

Operating System

Ubuntu

Driver

Docker