Improve the error message for usused configMaps

If you run `podman play kube` on a yaml file that only contains
configMaps, podman will fail with the error:

	Error: YAML document does not contain any supported kube kind

This is not strictly true; configMaps are a supported kube kind. The
problem is that configMaps aren't a standalone entity. They have to be
used in a container somewhere, otherwise they don't do anything.

This change adds a new message in the case when there only configMaps
resources. It would be helpful if podman reported which configMaps are
unused on every invocation of kube play. However, even if that feedback
were added, this new error messages still helpfully explains the reason
that podman is not creating any resources.

[NO NEW TESTS NEEDED]

Signed-off-by: Jordan Christiansen <xordspar0@gmail.com>
This commit is contained in:
Jordan Christiansen
2022-02-23 09:59:49 -06:00
parent a234e4e196
commit a7fc8a1460
2 changed files with 9 additions and 7 deletions

View File

@ -72,9 +72,11 @@ disable builds.
`Kubernetes ConfigMap` `Kubernetes ConfigMap`
Kubernetes ConfigMap can be referred as a source of environment variables in Pods or Deployments. Kubernetes ConfigMap can be referred as a source of environment variables or volumes in Pods or Deployments.
ConfigMaps aren't a standalone object in Podman; instead, when a container uses a ConfigMap, Podman will create environment variables or volumes as needed.
For example, the following YAML document defines a ConfigMap and then uses it in a Pod:
For example ConfigMap defined in following YAML:
``` ```
apiVersion: v1 apiVersion: v1
kind: ConfigMap kind: ConfigMap
@ -82,14 +84,11 @@ metadata:
name: foo name: foo
data: data:
FOO: bar FOO: bar
``` ---
can be referred in a Pod in following way:
```
apiVersion: v1 apiVersion: v1
kind: Pod kind: Pod
metadata: metadata:
... name: foobar
spec: spec:
containers: containers:
- command: - command:

View File

@ -128,6 +128,9 @@ func (ic *ContainerEngine) PlayKube(ctx context.Context, path string, options en
} }
if validKinds == 0 { if validKinds == 0 {
if len(configMaps) > 0 {
return nil, fmt.Errorf("ConfigMaps in podman are not a standalone object and must be used in a container")
}
return nil, fmt.Errorf("YAML document does not contain any supported kube kind") return nil, fmt.Errorf("YAML document does not contain any supported kube kind")
} }